Eu tenho 4 formulários: Clientes, Cliente, Lojas e Loja.
Os formulário Clientes e Lojas possuem cada um DBGrid que mostra os registros de suas respecivas tabelas, um botão para inclusão, um pra edição e um de exclusão.
Os formulários Cliente e Loja possuem os DBEdits setados para as tabelas. Quando eu clico no botão Inserir ele chama o formulário com os DBEdits, eu substitui o DBEdit Cod_Cliente e Cod_Loja(chaves primárias) por MaskEdits e faço a seguinte verificação no evento OnExit dele:
if (trim(Maskedit1.text) <> '') and (opcao = 1) then begin
cod := Maskedit1.text;
if DM.TBClientes.FindKey([cod]) then begin
Showmessage('Código de Cliente já cadastrado.');
LimpaTela;
Maskedit1.SetFocus;
end
else begin
DM.TBClientes.Insert;
MaskEdit1.Enabled := false;
end;
end;
end;
Opcao é uma variável q eu criei pra diferenciar inclusão(opcao = 1) de edição (opcao = 2) já que o formulário chamado é o mesmo nas duas opções(Loja ou Cliente)
só q quando o foco sai do maskEdit1 é criado um registro com todos os campos vazios inclusive a chave primária e quando eu clico no botão Inserir do formulário Lojas ou Clientes(o formulário que possui o DBGrid) aparece aquela msg de erro dizendo que a tabela não está em modo de edição ou inclusão, sendo que no código do botão eu já dou o comando de edição ou inserção e quando eu digito no maskedit acusa violação de chave, mesmo eu digitando um número que ainda não foi registrado. O mais estranho de tudo é que eu tenho mais dois formulários, Produtos e Produto, os dois com os mesmos códigos dos outros quatro formulários citados acima só que não apresentam nenhum tipo de erro e tb tenho um outro aplicativo q eu mesmo fiz com os mesmos códigos e tb não aparece esse erro. Alguém poderia me dar uma luz quanto a esse problema, pow erro de BD é chato pra cacete de resolver.
estou usado paradox, não sei se tem alguma coisa haver.
Pergunta
Arlon
Olhem só o q tá contecendo:
Eu tenho 4 formulários: Clientes, Cliente, Lojas e Loja.
Os formulário Clientes e Lojas possuem cada um DBGrid que mostra os registros de suas respecivas tabelas, um botão para inclusão, um pra edição e um de exclusão.
Os formulários Cliente e Loja possuem os DBEdits setados para as tabelas. Quando eu clico no botão Inserir ele chama o formulário com os DBEdits, eu substitui o DBEdit Cod_Cliente e Cod_Loja(chaves primárias) por MaskEdits e faço a seguinte verificação no evento OnExit dele:
if (trim(Maskedit1.text) <> '') and (opcao = 1) then begin
cod := Maskedit1.text;
if DM.TBClientes.FindKey([cod]) then begin
Showmessage('Código de Cliente já cadastrado.');
LimpaTela;
Maskedit1.SetFocus;
end
else begin
DM.TBClientes.Insert;
MaskEdit1.Enabled := false;
end;
end;
end;
Opcao é uma variável q eu criei pra diferenciar inclusão(opcao = 1) de edição (opcao = 2) já que o formulário chamado é o mesmo nas duas opções(Loja ou Cliente)
só q quando o foco sai do maskEdit1 é criado um registro com todos os campos vazios inclusive a chave primária e quando eu clico no botão Inserir do formulário Lojas ou Clientes(o formulário que possui o DBGrid) aparece aquela msg de erro dizendo que a tabela não está em modo de edição ou inclusão, sendo que no código do botão eu já dou o comando de edição ou inserção e quando eu digito no maskedit acusa violação de chave, mesmo eu digitando um número que ainda não foi registrado. O mais estranho de tudo é que eu tenho mais dois formulários, Produtos e Produto, os dois com os mesmos códigos dos outros quatro formulários citados acima só que não apresentam nenhum tipo de erro e tb tenho um outro aplicativo q eu mesmo fiz com os mesmos códigos e tb não aparece esse erro. Alguém poderia me dar uma luz quanto a esse problema, pow erro de BD é chato pra cacete de resolver.
estou usado paradox, não sei se tem alguma coisa haver.
Link para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.