6 Comentários

  1. Renan

    Boa Noite Felipe,

    Como te falei esse teu video me ajudou muito, mas eu estou bem enferrujado em delphi como ficaria com mais de uma generator? não me lembro muito bem de como passa por parâmetro desde ja agradeço!
    Obrigado


  2. Fala Renan, boa noite. Pra puxar qualquer generator é só você passar o nome dele como parâmetro. Dá uma olhada nessa função abaixo que criei. Nela estou criando em tempo de execução um componente do tipo TQuery (DBExpress) e passo um SQL que me retorna o valor do generator que eu quiser. Basta passar ele como parâmetro.

    Exemplo:

    function TGeral.ValorGeneratorDBX(pGenerator: String; pConexao: TSQLConnection): Integer;
    var
    Q: TSQLQuery;
    begin
    Q:=TSQLQuery.Create(Nil);
    Q.SQLConnection:=pConexao;
    Q.SQL.Add(‘SELECT GEN_ID(‘+pGenerator+’,1) AS ID_ATUAL FROM RDB$DATABASE’);
    Q.Open;
    Result:=Q.FieldByName(‘ID_ATUAL’).AsInteger;
    Q.Close;
    Q.Free;
    end;

    Como chamar:

    SeuCampo := ValorGenerator(‘NomeDoGenerator’,SuaConexao);

    Parâmetros:

    pGenerator = Nome do generator no seu banco de dados, entre aspas simples.
    pConexão = Nome do componente de conexão que você usou, no exemplo utilizei o SQLConnection (DBExpress).

    Abraços!

  3. Renan Piva

    Boa Tarde Felipe,

    Muito obrigado me salvou aqui desculpa n responder antes estava sem tempo mais uma vez obrigado!

  4. Luis

    Boa Noite Felipe, gostei muito da sua dica, como que faço para fazer esse exemplo nos Items dos Pedidos:
    Exemplo Pedido 00001/2017
    1
    2
    3

    Pedido 00002/2107
    1
    2

    Obs.: Para cada pedido gera o id sequencial


  5. Fala Luis, obrigado pela visita. Pra fazer do jeito que você quer é bem simples. Sempre que der um append ou antes de salvar (testa se está em modo dsInsert) é só você chamar a rotina de novo id e passar para o seu item. Assim nunca irá duplicar.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *