Fórum delphiXinterbase #163477
29/05/2003
0
amigos me salve .... estou querendo fazer um teste para evitar duplicação de chaves primarias... eu tenho permitir a inserção do codigo pelo usuario, porem faço o teste no evento onposterror já que em livros eles dizem que é a melhor opção. Meu banco de dados é o interbase. vc poderia me dar uma ideia como faço este teste dentro do interbase deixando de lado as rotinas no delphi ou uma saída em delphi mesmo ! a rotina que utilizo é a seguinte
no evento onposterror da tabela
if e.message = ´Key violation.´ then
begin
showmessage(´codigo invalido!´);
abort;
end;
porem não dá certo. :?:
no evento onposterror da tabela
if e.message = ´Key violation.´ then
begin
showmessage(´codigo invalido!´);
abort;
end;
porem não dá certo. :?:
Midas
Curtir tópico
+ 0
Responder
Posts
29/05/2003
Braddockcs
Se eu entendi bem, você está querendo avisar o usuário que o código já existe, bem vejamos:
Se o campo estiver definido como chave primária o interbase não deixará ele gravar em hipótese alguma.
Os gatilhos no interbase somente são ativados quando o registro é confirmado ou excluído no delphi.
Por isso acho interessante você utilizar mais uma query que será executada no evento onexit do dbedit e já avisará o usuário que já existe este código, evitando que ele siga em frente.
Se o campo estiver definido como chave primária o interbase não deixará ele gravar em hipótese alguma.
Os gatilhos no interbase somente são ativados quando o registro é confirmado ou excluído no delphi.
Por isso acho interessante você utilizar mais uma query que será executada no evento onexit do dbedit e já avisará o usuário que já existe este código, evitando que ele siga em frente.
Responder
Gostei + 0
30/05/2003
Midas
caro colega ja pensei nisso o problema como estou usando um dbedit ao inserir um numero no dbedit e no onexit fazer uma pesquisa no banco de dados atraves do findkey ele me retorna que o codigo ja existe, e de fato ja existe pois assim que a tabela entra e inserção ao digitar um valor no dbedit ela ja esta no banco de dados. Assim ao fazer a pesquisa no onexit do dbedit ele vai me avisar que o codigo ja existe. Fui claro ?
if tabela.findkey([dbeditcodigo.text]) then
showmessage(´codigo ja existe!´)
isto acima se refere ao evento onexit do dbedit
if tabela.findkey([dbeditcodigo.text]) then
showmessage(´codigo ja existe!´)
isto acima se refere ao evento onexit do dbedit
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)