Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
wsilva7 Novato
Registrado: Quarta-Feira, 9 de Abril de 2008 Mensagens: 70
|
Enviada: Qui Ago 15, 2019 8:22 pm Assunto: Gerar Id automático |
|
|
Boa noite.
Estou tentando usar um código para gerar id automático em um cadastro. Até ai tudo bem, esta funcionando normal. O problema é que o código esta se perdendo por algum motivo, tipo el vai gerando 1, 2, 3 .. mas as vezes ele para por exemplo no 4 e não consigo gerar a sequencia.
Alguém pode me dizer o que pode esta errado nesse código.
procedure TfrmCadTipoDocumento.DBNavigator1Click(Sender: TObject;
Button: TNavigateBtn);
var ulticod : integer;
begin
if DM.DSTIPODOCUMENTO.State in [dsinsert] then
begin
tbauxtipodocumento.Open;
tbauxtipodocumento.Last;
ulticod:=tbauxtipodocumentoTD_ID.Value +1;
DM.TBTIPODOCUMENTOTD_ID.Value:=ulticod;
tbauxtipodocumento.Close;
end;
end;
Grato |
|
Voltar ao Topo |
|
|
johnny-walker Moderador
Registrado: Sábado, 4 de Outubro de 2003 Mensagens: 10653 Localização: Contagem/MG - BRAZIL
|
Enviada: Qua Ago 28, 2019 7:01 am Assunto: |
|
|
Amigo, este tipo de código não pode ser feito desta forma, pois ao utilizá-lo em rede você terá problemas.
Você também não informou o banco de dados, fato importante.
Se você trabalha com o firebird, utilize os generators/sequence.
Se estiver utilizando paradox, access, considere a troca, pois estes bancos não oferecem muitos recursos.
bye _________________ P.O.W.E.R B.Y D.E.L.P.H.I |
|
Voltar ao Topo |
|
|
wsilva7 Novato
Registrado: Quarta-Feira, 9 de Abril de 2008 Mensagens: 70
|
Enviada: Qua Set 18, 2019 10:54 am Assunto: |
|
|
Bom dia johnny-walker, Obrigado pela resposta.
Estou usando Firebird 2.5.
Porem consegui resolver usando Query, mas como você mesmo mencionou estou considerando para os novos projetos usar Triggers e Gernerator.
Obrigado. |
|
Voltar ao Topo |
|
|
netoferreira Novato
Registrado: Sexta-Feira, 19 de Dezembro de 2014 Mensagens: 77 Localização: Macapá - AP
|
Enviada: Seg Out 28, 2019 12:03 pm Assunto: Re: Gerar Id automático |
|
|
wsilva7 escreveu: | Boa noite.
Estou tentando usar um código para gerar id automático em um cadastro. Até ai tudo bem, esta funcionando normal. O problema é que o código esta se perdendo por algum motivo, tipo el vai gerando 1, 2, 3 .. mas as vezes ele para por exemplo no 4 e não consigo gerar a sequencia.
Alguém pode me dizer o que pode esta errado nesse código.
procedure TfrmCadTipoDocumento.DBNavigator1Click(Sender: TObject;
Button: TNavigateBtn);
var ulticod : integer;
begin
if DM.DSTIPODOCUMENTO.State in [dsinsert] then
begin
tbauxtipodocumento.Open;
tbauxtipodocumento.Last;
ulticod:=tbauxtipodocumentoTD_ID.Value +1;
DM.TBTIPODOCUMENTOTD_ID.Value:=ulticod;
tbauxtipodocumento.Close;
end;
end;
Grato |
Uso no MySQL
Código: | function GetId(Campo, Tabela : string) : Integer;
begin
with TMyQuery.Create(nil) do
try
Connection := DmDados.MyConnection;
Sql.Add('SELECT '+Campo+' FROM '+Tabela+' ORDER BY '+Campo+' DESC LIMIT 1');
Open;
Result := Fields[0].AsInteger + 1;
finally
Close;
Free;
end;
end; |
Código: | DmDados.qr_suatabela_id.AsInteger := GetId('id','suatabela'); |
|
|
Voltar ao Topo |
|
|
joemil Moderador
Registrado: Quinta-Feira, 25 de Março de 2004 Mensagens: 9098 Localização: Sinop-MT
|
Enviada: Ter Out 29, 2019 9:03 am Assunto: Re: Gerar Id automático |
|
|
netoferreira escreveu: | wsilva7 escreveu: | Boa noite.
Estou tentando usar um código para gerar id automático em um cadastro. Até ai tudo bem, esta funcionando normal. O problema é que o código esta se perdendo por algum motivo, tipo el vai gerando 1, 2, 3 .. mas as vezes ele para por exemplo no 4 e não consigo gerar a sequencia.
Alguém pode me dizer o que pode esta errado nesse código.
procedure TfrmCadTipoDocumento.DBNavigator1Click(Sender: TObject;
Button: TNavigateBtn);
var ulticod : integer;
begin
if DM.DSTIPODOCUMENTO.State in [dsinsert] then
begin
tbauxtipodocumento.Open;
tbauxtipodocumento.Last;
ulticod:=tbauxtipodocumentoTD_ID.Value +1;
DM.TBTIPODOCUMENTOTD_ID.Value:=ulticod;
tbauxtipodocumento.Close;
end;
end;
Grato |
Uso no MySQL
Código: | function GetId(Campo, Tabela : string) : Integer;
begin
with TMyQuery.Create(nil) do
try
Connection := DmDados.MyConnection;
Sql.Add('SELECT '+Campo+' FROM '+Tabela+' ORDER BY '+Campo+' DESC LIMIT 1');
Open;
Result := Fields[0].AsInteger + 1;
finally
Close;
Free;
end;
end; |
Código: | DmDados.qr_suatabela_id.AsInteger := GetId('id','suatabela'); |
|
MySQL tem auto_increment _________________ <b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/ |
|
Voltar ao Topo |
|
|
|