Fórum Auto incremento delphi - firebird #456155
22/09/2013
0
Com dbExpress tenho um clientDataSet, usando banco firebird, neste tenho um generator (gen_clientes_id) e uma trigger
as
begin
if (new.id_clientes is null) then
new.id_clientes = gen_id(gen_clientes_id,1);
endPreciso que no meu formulário, seja feito um auto incremento nesse campo, usando justamente a trigger e o generator, ou não...
Desde já agradeço a todos.
Lg Embarcadero
Curtir tópico
+ 0Posts
22/09/2013
Claudio Andrade
procedure seuClientDatasetNewRecord(DataSet: TDataSet);
function GetID(NameGenerators: String): Integer;
var
sqlAutoInc: TSQLQuery;
begin
sqlAutoInc := TSQLQuery.Create(Self);
sqlAutoInc.SQLConnection := SQLConnection1;
sqlAutoInc.SQL.Add('SELECT GEN_ID ('+NameGenerators+', 1) FROM RDB$DATABASE');
sqlAutoInc.Open;
Result := sqlAutoInc.Fields[0].AsInteger;
end;
begin
seuClientDatasetCHAVE_PRIMARIA.AsInteger := GetID('SEU_GENERATOR');
end;
Essa função irá retornar o valor do generator.
Abraço.
Gostei + 0
31/12/2013
Mauro Brondi
Estou vendo uma vídeo-aula do Rodrigo Carreiro Mourão e no Delphi 2007 (com Firebird 2.0) funciona somente com um DataSet.ApplyUpdates(0).
Mas no Delphi XE5 (com FB 2.5) não deu. (ou talvez eu tenha deixado passar alguma coisa...)
Nota: o curso a que me refiro é este: [url:descricao=Curso Rad Studio 2007, DBExpress 4 e Firebird 2.0]https://www.devmedia.com.br/curso/rad-studio-2007-dbx4-e-firebird-2-0-aplicacao-comercial-de-vendas-basico-do-inicio-ao-fim/117[/url]
Um ótimo curso.
Mas de qualquer forma a sua função me salvou. Muito obrigado.
Gostei + 0
19/02/2014
Jonny Moraes
Gostei + 0
19/02/2014
Marco Salles
Pesquise por econcileError para verificar o erro do seu Commit
[]sds
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)