Duvida em Campo autoincremento

Delphi

28/08/2006

Estou utilizando FB e Dbexpress, criei um generator e uma trigger para gerar codigo autoincremento, faço o Insert no ClientDataset, depois Post e ApplyUpdates(0):

1) No campo Codigo nao aparece o novo codigo.
2) Se eu, logo em seguinda for alterar o registro retorna erro que o registro nao foi encontrado ou esta sendo usado por outro usuario.

Como posso resolver isso? Utilizar esse mecanisco de gerar autoincremento é a melhor solucao?

Sei que se eu fizer um reflesh logo em seguida ao ApplyUpdate, resolve em parte, porem estarei fazendo nova consulta a tabela e isso eu nao queria fazer.

Abs


Felipeiw

Felipeiw

Curtidas 0

Respostas

Emrinfo

Emrinfo

28/08/2006

Voce pode gerar um generator no banco, e Clientdataset no evento OnNewRecord voce coloca o codigo:

var
ResultSet : TCustomSQLDataSet;
SqlStmt : String;


begin

SqlStmt := ´select gen_id(Gen_clientes_id,1) ´+
´as valor from RDB$DATABASE;´;
ResultSet := nil;
Try
FrmDm.SQLConnection1.Execute(SqlStmt, nil, @resultSet);
If Assigned(ResultSet) then
cds_ClienteId_Codigo_cli.asInteger := ResultSet.fieldByName(´Valor´).asInteger;
Finally
resultSet.Free;
end;

Espero que seja isto.


GOSTEI 0
POSTAR