Erro ao validar tabela
08/12/2005
0
Boa tarde.
Estou enfrentando um problema no sistema de estoque que estou desenvolvendo. Em uma das rotinas de saída preciso validar três tabelas em um evento OnExit. (CDSCadstr, CDSEstoq, CDSEsGer)
Eu informo o código no DBEdit1.text e então no evento OnExit tenho o seguinte código:
O problema ocorre quando eu digito um código que não é encontrado na segunda tabela (CDSEstoq); aí me retorna o seguinte erro: [color=darkred:6aad62528a]Expression expected but nothing found.[/color:6aad62528a]
Não sei como tratar esse erro. O que o sistema deveria fazer se não encontrar o código na segunda tabela é retornar ao dbedit1 e aguardar a digitação de um novo código.
Se alguém puder me ajudar, agradeceria.
(O sistema está sendo desenvolvido em Delphi 7, plataforma CLX e o banco de dados utilizado é o Interbase 6.)
Estou enfrentando um problema no sistema de estoque que estou desenvolvendo. Em uma das rotinas de saída preciso validar três tabelas em um evento OnExit. (CDSCadstr, CDSEstoq, CDSEsGer)
Eu informo o código no DBEdit1.text e então no evento OnExit tenho o seguinte código:
if DBEdit1.Text <> ´´ then begin if Valida(DMEst.CDSCadstr,´CODIGO´,DBEdit1.Text,´Código ´) then begin DMEst.CDSSaiDESCRI.AsString:=DMEst.CDSCadstrDESCRICAO.AsString; DMEst.CDSSaiCOMPLE.AsString:=DMEst.CDSCadstrDESCCOMP.AsString; DMEst.CDSSaiUNIDADE.AsString:=DMEst.CDSCadstrUNIDADE.AsString; DMEst.CDSSaiCLASFISC.AsString:=DMEst.CDSCadstrCLASFISC.AsString; DMEst.CDSSaiCLASCON.AsString:=DMEst.CDSCadstrCLASCON.AsString; DMEst.CDSSaiIPI.AsString:=DMEst.CDSCadstrIPI.AsString; if Valida(DMEst.CDSEstoq,´CODIGO´,DBEdit1.Text,´Código ´) then begin if DMEst.CDSEstoqQTDEEFET.AsFloat=0 then begin ShowMessage(´Não há material em estoque. Digite outro código!´); DBEdit1.Clear; DBEdit1.SetFocus; end else begin DMEst.CDSSaiQTDE_EFET.AsFloat:=DMEst.CDSEstoqQTDEEFET.AsFloat; DMEst.CDSSaiGONDO.AsString:=DMEst.CDSEstoqGONDOLA.AsString; end; end else begin DBEdit1.Clear; // Depois de mostrar a mensagem da função DBEdit2.Clear; // valida, deveria executar esta parte DBEdit3.Clear; // mas não é isso que ocorre, e sim o erro! DBEdit4.Clear; DBEdit41.Clear; DBEdit42.Clear; DBEdit43.Clear; DBEdit1.SetFocus; end; if DMEst.CDSEsGer.Locate(´CODIGO´,DBEdit1.Text,[loPartialKey,loCaseInsensitive]) then DMEst.CDSSaiEST_MINIMO.AsFloat:=DMEst.CDSEsGerESTMINIMO.AsFloat else DMEst.CDSSaiEST_MINIMO.AsFloat:=0; DBEdit5.SetFocus; end else begin BitBtn1.Click; DBEdit5.SetFocus; end; end; end;
O problema ocorre quando eu digito um código que não é encontrado na segunda tabela (CDSEstoq); aí me retorna o seguinte erro: [color=darkred:6aad62528a]Expression expected but nothing found.[/color:6aad62528a]
Não sei como tratar esse erro. O que o sistema deveria fazer se não encontrar o código na segunda tabela é retornar ao dbedit1 e aguardar a digitação de um novo código.
Se alguém puder me ajudar, agradeceria.
(O sistema está sendo desenvolvido em Delphi 7, plataforma CLX e o banco de dados utilizado é o Interbase 6.)
Eliane Dorr
Curtir tópico
+ 0
Responder
Posts
09/12/2005
Marlon Spiess
Olá,
não sei ao certo o q sua função valida faz, mas aparentemete faz um findkey ou locate, até ai ótimo, mas faça a validação de existência de todas as tables antes de qualquer coisa. Pelo q pude ver é só a lógica dentro do bloco.
Espero ter ajudado
não sei ao certo o q sua função valida faz, mas aparentemete faz um findkey ou locate, até ai ótimo, mas faça a validação de existência de todas as tables antes de qualquer coisa. Pelo q pude ver é só a lógica dentro do bloco.
Espero ter ajudado
Responder
09/12/2005
Eliane Dorr
Muito obrigada por sua dica Marlon. Mudei a forma de validação dos dados como vc sugeriu e funcionou certinho.
Valeu. :wink:
Valeu. :wink:
Responder
Clique aqui para fazer login e interagir na Comunidade :)