Array
(
)

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

Marcusbraga
   - 25 mar 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....


#Código


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;



Camilo
   - 25 mar 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


Aroldo Zanela
   - 26 mar 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:

#Código

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



Aroldo Zanela
   - 26 mar 2006

Colega,

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


Marcusbraga
   - 26 mar 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...


Paulocesar1301
   - 28 mar 2006

Pergunta Idiota :

Se eu tiver mais de um campo para atualizar eu uso assim ?

#Código


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



Paulocesar1301
   - 28 mar 2006

Estou perguntando pq estou fazendo isso e simplesmente o sistema trava na linha do execute

#Código


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