Porque não grava a atualização? Tabela DBF

25/03/2006

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....


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

Respostas

25/03/2006

Camilo

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


Responder Citar

26/03/2006

Aroldo Zanela

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:

query1.sql.text := ´update estoque set qtd_atual = :qtd where codigo = :codigo ´; 



Responder Citar

26/03/2006

Aroldo Zanela

Colega,

A propósito, substitua query1.edit por query1.close;


Responder Citar

26/03/2006

Marcusbraga

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...


Responder Citar

28/03/2006

Paulocesar1301

Pergunta Idiota :

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 ´;



Responder Citar

28/03/2006

Paulocesar1301

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´&93; := AjustaAcento(Trim(FRMAjustaDados.EditNome.Text));
adoSalvaAlteracoes.Parameters.ParamValues&91;´Supervisor´&93; := AjustaAcento(Trim(FRMAjustaDados.EditSupervisor.Text));
adoSalvaAlteracoes.Parameters.ParamValues&91;´Login´&93; := AjustaAcento(Trim(FRMAjustaDados.EditLogin.Text));
adoSalvaAlteracoes.Parameters.ParamValues&91;´Turno´&93; := AjustaAcento(Trim(FRMAjustaDados.EditTurno.Text));
adoSalvaAlteracoes.Parameters.ParamValues&91;´Matricula´&93; := AjustaAcento(Trim(FRMAjustaDados.EditMatricula.Text));



Responder Citar