Porque não grava a atualização? Tabela DBF
Amigos estou com um problema que não consego resolver, preciso fazer uma atualização de um banco de dados em firebird para uma tabela DBF,
estou usando esse código.
mas o DBF não atualiza, O que falta ou o q tem de errado?
se alguem puder me ajudar desde ja agradeço....
estou usando esse código.
mas o DBF não atualiza, O que falta ou o q tem de errado?
se alguem puder me ajudar desde ja agradeço....
begin query1.close; Query1.sql.Clear; query1.sql.text := ´update ´+ QuotedStr(´estoque.dbf´) + ´ set qtd_atual = :qtd where codigo = :codigo ´; with IBQuery1 do begin close; sql.text := ´Select * from estoquecontagem order by codigo´; Open; IBQuery1.First; while not Eof do begin query1.Edit; query1.ParamByName(´codigo´).asstring := fieldbyname (´CODIGO´).asstring; query1.ParamByName(´qtd´).asfloat := fieldbyname(´QTD_ATUAL´).asfloat; query1.ExecSQL; Label1.Caption := fieldbyname(´DESCRICAO´).Text; Application.ProcessMessages; Next; end; end; showmessage(´OK´); end;
Marcusbraga
Curtidas 0
Respostas
Camilo
25/03/2006
ainda nuam usei assim, ´ARQUIVO.DBF´ no meio da instrução, aum sei se funciona, trabalho com importações de clipper p fb 1.5 com bde e dbexpress direto aqui, pois temos sistemas em clipper e em delphi tb, o q faço e em DATABASENAME da Query coloco o caminho do DBF, tipo
Query1.DatabaseName := ´C:\sistemas´
Query1.commandtext := ´select * from estoque´;
onde estoque eh .DBF soh q naum digo mais isso na instrução, pode ser isso...
espero ter ajudado
Query1.DatabaseName := ´C:\sistemas´
Query1.commandtext := ´select * from estoque´;
onde estoque eh .DBF soh q naum digo mais isso na instrução, pode ser isso...
espero ter ajudado
GOSTEI 0
Aroldo Zanela
25/03/2006
Colega,
Não precisa especificar a tabela entre aspas e sua extensão, senão, será necessário informar também seu path (salve engano), então:
Não precisa especificar a tabela entre aspas e sua extensão, senão, será necessário informar também seu path (salve engano), então:
query1.sql.text := ´update estoque set qtd_atual = :qtd where codigo = :codigo ´;
GOSTEI 0
Aroldo Zanela
25/03/2006
Colega,
A propósito, substitua query1.edit por query1.close;
A propósito, substitua query1.edit por query1.close;
GOSTEI 0
Marcusbraga
25/03/2006
Obrigado pelas respostas mas se tiro o ´.dbf´
ele me da uma mensagem
estoque does not exist
File or directory is not exist
c:\estoque\estoque.MDX
c:\estoque\estoque.CDX
O que faço...
ele me da uma mensagem
estoque does not exist
File or directory is not exist
c:\estoque\estoque.MDX
c:\estoque\estoque.CDX
O que faço...
GOSTEI 0
Paulocesar1301
25/03/2006
Pergunta Idiota :
Se eu tiver mais de um campo para atualizar eu uso assim ?
Se eu tiver mais de um campo para atualizar eu uso assim ?
query1.sql.text := ´update estoque set qtd_atual = :qtd, qtd_Out = :Out where codigo = :codigo ´;
GOSTEI 0
Paulocesar1301
25/03/2006
Estou perguntando pq estou fazendo isso e simplesmente o sistema trava na linha do execute
adoSalvaAlteracoes.CommandText := ´UPDATE RESULTADOS SET Nome=:Nome, Supervisor=:Supervisor, Login=:Login, Turno=:Turno, Matricula=:Matricula´, Ativo=:Ativo, Status=:Status´; adoSalvaAlteracoes.Parameters.ParamValues[´Nome´] := AjustaAcento(Trim(FRMAjustaDados.EditNome.Text)); adoSalvaAlteracoes.Parameters.ParamValues[´Supervisor´] := AjustaAcento(Trim(FRMAjustaDados.EditSupervisor.Text)); adoSalvaAlteracoes.Parameters.ParamValues[´Login´] := AjustaAcento(Trim(FRMAjustaDados.EditLogin.Text)); adoSalvaAlteracoes.Parameters.ParamValues[´Turno´] := AjustaAcento(Trim(FRMAjustaDados.EditTurno.Text)); adoSalvaAlteracoes.Parameters.ParamValues[´Matricula´] := AjustaAcento(Trim(FRMAjustaDados.EditMatricula.Text));
GOSTEI 0