Fórum problema com autoincrement no bde #36368
08/04/2003
0
Já estou ficando meio estressado com esse probleminha, não sei se é pq meu delphi é velho mas no momento não posso fazer o upgrade e imagino que solução há, só não a conheço quem sabe alguém aqui pode me ajudar nisso...
Obrigado.
Anonymous
Curtir tópico
+ 0Posts
08/04/2003
Afarias
Desta forma, vc não poderá conhecer o valor gerado antes de fechar e executar novamente a Query. E, para q funcione, vc tem q configurar a propriedade Required to TField (q representa sua chave) para FALSE!
Caso vc precise saber o código gerado NA INCLUSÃO (antes ou durante) vc deve pedir este código ao IB e coloca-lo via código no programa.
Ex:
Crie uma query com o SQL:
SELECT GEN_ID(NOME_GENERATOR, 1) FROM RDB$DATABASE
sempre no evento OnNewRecord ou BeforePost execute esta query, pegue seu valor de retorno e jogue no campo chave!
Se vc usar IBX, basta usar a propriedade GENERATORFIELD e configurar para POST ou APPEND
Abraço.
Gostei + 0
08/04/2003
Anonymous
Só uma dúvida, eu estou criando os generators pelo IBexpert, e esse comando GEN_ID ele no caso incrementa sozinho ou eu preciso ter uma trigger e uma storedprocedure pra cada autoincrement? Pois no caso se o comando for autosuficiente então significa que eu posso apagar a trigger e a storedproc?
Desculpa o mal jeito, comecei faz pouco tempo no interbase se puder me esclarecer um pouco mais... é que eu gostaria de entender e não só copiar e colar os códigos.
Gostei + 0
08/04/2003
Afarias
Como vc vai ´pedir´ os IDs pelo cliente, realmente NÃO precisa das Triggers ou StoredProcs!
Algumas pessoas mantem as triggers más com o seguinte código:
if (campo_chave is null) then
campo_chave = gen_id(nome_generator, 1);
só em caso de em processos onde não for preenchido o campo_chave no lado cliente, o servidor faz o papel! -- más acho q em geral não é o caso!
Abraço
PS: Não se preocupe! querer entender é um DIFERENCIAL!
Gostei + 0
08/04/2003
Anonymous
Acho que também um pouco da culpa é do paradox, o jeito é reaprender a programar usando arquitetura client/server e estudando seus macetes.
Mais uma vez obrigado.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)