| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
rvercesi Mestre


Registrado: Segunda-Feira, 29 de Novembro de 2010 Mensagens: 912 Localização: Curitiba / PR
|
Enviada: Qua Mai 04, 2011 11:29 am Assunto: new.id de um generator |
|
|
Pessoal, como faço para pegar o NEW.ID de um generator?
No banco eu sei usar ele, mas como faço para pegar ele e atribuir à uma variável no Delphi?
Desde já agradeço a todos! |
|
| Voltar ao Topo |
|
 |
gilsonnrodrigues Moderador

Registrado: Quinta-Feira, 14 de Abril de 2005 Mensagens: 9009 Localização: Governador Valadares-MG
|
Enviada: Qua Mai 04, 2011 11:57 am Assunto: |
|
|
é firebird?
select GEN_ID(generator, 1) from RDB$Databases |
|
| Voltar ao Topo |
|
 |
rvercesi Mestre


Registrado: Segunda-Feira, 29 de Novembro de 2010 Mensagens: 912 Localização: Curitiba / PR
|
Enviada: Qua Mai 04, 2011 12:54 pm Assunto: |
|
|
Não é o Firebird não, é o PostgreSQL.
Mas fazendo esse select eu não pego algum outro numero se uma pessoa inserir logo após eu dar um insert?
Pois na tabela do FB estará o último numero usado, mas quem garante que foi o meu?
Creio que o mesmo vai valer para o PG, pois ele trabalha bem parecido com o FB neste ponto! Uma tabela para os generators! |
|
| Voltar ao Topo |
|
 |
gilsonnrodrigues Moderador

Registrado: Quinta-Feira, 14 de Abril de 2005 Mensagens: 9009 Localização: Governador Valadares-MG
|
Enviada: Qua Mai 04, 2011 3:22 pm Assunto: |
|
|
mas ai vc vai incrementar e pegar não tem nada a ver com registro q foi inserido.
ah!!! mas pera ai!!!
se eu fizer isso pra dps inserir e ja informado o codigo?
entendeu?
vcs criam esses autoincremento e dps fica se debatendo com eles.
outra maneira é inserir por uma SP q retorne o codigo usado. |
|
| Voltar ao Topo |
|
 |
rvercesi Mestre


Registrado: Segunda-Feira, 29 de Novembro de 2010 Mensagens: 912 Localização: Curitiba / PR
|
Enviada: Qui Mai 05, 2011 10:28 am Assunto: |
|
|
Gilson, não estou me batendo com ele.
É que minha tela está fazendo algo que não consigo entender! Ela está saindo da posição (saindo do registro em que foi dados o POST) e com isso perco o valor gerado pelo banco.
Então estou tentando fazer uma gambiarra já que não consigo resolver de modo algum esse desposicionamento na tabela tentando pegar o NEW.ID direto do banco.
Eu acho que generator é a única maneira 100% segura de não ter números repetidos dentro de uma tabela onde existem muitos usuários utilizando ao mesmo tempo, sem ter que ficar travando tabela ou registro por muito tempo. |
|
| Voltar ao Topo |
|
 |
gilsonnrodrigues Moderador

Registrado: Quinta-Feira, 14 de Abril de 2005 Mensagens: 9009 Localização: Governador Valadares-MG
|
Enviada: Qui Mai 05, 2011 11:48 am Assunto: |
|
|
Generator é bom.
ruim é autoincremento. |
|
| Voltar ao Topo |
|
 |
abagattini Mestre

Registrado: Terça-Feira, 29 de Novembro de 2005 Mensagens: 758 Localização: Porto Alegre/RS
|
Enviada: Qui Mai 05, 2011 1:16 pm Assunto: |
|
|
Verifica o tipo de isolamento que estas usando na transação?
Pelo que entendi do generator ele incrementa sempre mesmo sem ser sido salvo o registro. |
|
| Voltar ao Topo |
|
 |
rvercesi Mestre


Registrado: Segunda-Feira, 29 de Novembro de 2010 Mensagens: 912 Localização: Curitiba / PR
|
Enviada: Qui Mai 05, 2011 2:57 pm Assunto: |
|
|
Isos mesmo! Sempre incrementa!
Por isso não posso fazer um select no banco para saber qual é o numero! Pois outra pessoa pode ter incrementado ele! |
|
| Voltar ao Topo |
|
 |
|