Que erro é esse Access to table disabled because of previous
Amigos estou tentando sincronizar 2 tabelas 1 em firebird e outra com extenção DBF
pra fazer uma contagem de estoque..
Meu cliente usa um certo programa suas tabelas tem extenção .DBF
importo todos os dados da tabela Estoque.DBF para o meu banco de dados com o estoque = 0;
até aqui ta tudo perfeito.
ai faço a contagem pelo meu programa. Depois da contagem quero fazer a exportação somente do campo ´quantidade´ para a tabela estoque.DBF
A que quero atualizar é a DBF.
A primeira vez deu certo mas na segunda ta me dando esse erro
´Access to table disabled because of previous error.´
Alguem pode me dizer o que estou fazendo de errado?
desde ja agradeço
delphi 7.0 e firebird 1.5
pra fazer uma contagem de estoque..
Meu cliente usa um certo programa suas tabelas tem extenção .DBF
importo todos os dados da tabela Estoque.DBF para o meu banco de dados com o estoque = 0;
até aqui ta tudo perfeito.
ai faço a contagem pelo meu programa. Depois da contagem quero fazer a exportação somente do campo ´quantidade´ para a tabela estoque.DBF
A que quero atualizar é a DBF.
A primeira vez deu certo mas na segunda ta me dando esse erro
´Access to table disabled because of previous error.´
Alguem pode me dizer o que estou fazendo de errado?
desde ja agradeço
delphi 7.0 e firebird 1.5
table1.Close; table1.DatabaseName :=Edit1.Text; table1.TableName:= ´Estoque.dbf´; table1.Open; table1.First; with IBQuery1 do begin close; sql.clear; sql.Add(´ Select * from estoquecontagem order by codigo ´); open; end; IBQuery1.Open; IBQuery1.First; while table1.Eof = false do begin if table1CODIGO.text = IBQuery1CODIGO.Text then begin table1.Edit; table1QTD_ATUAL.Text := ´25´;//IBQuery1QTD_ATUAL.text; table1.Post; Application.ProcessMessages; LAbel1.Caption := table1DESCRICAO.Text; end; table1.Next; IBQuery1.Next; end; table1.close; showmessage(´OK´); end; [/list]
Marcusbraga
Curtidas 0
Respostas
Emerson Nascimento
23/03/2006
tente diferente. ao invés de verificar se os registros coincidem, faça a atualização via SQL:
query1.close; query1.sql.text := ´update from ´´Estoque.dbf´´ set qtd_atual = :qtd where codigo = :codigo ´; with IBQuery1 do begin close; sql.text := ´Select * from estoquecontagem order by codigo´; Open; while not Eof do begin query1.parambyame(´codigo´).asstring := fieldbyname(´CODIGO´).asstring; query1.parambyame(´qtd´).asfloat := fieldbyname(´QTD_ATUAL´).asfloat; query1.ExecSQL; Label1.Caption := fieldbyname(´DESCRICAO´).Text; Application.ProcessMessages; Next; end; end; showmessage(´OK´);
GOSTEI 0
Marcusbraga
23/03/2006
Emerson obrigado pela resposta, assim da quase certo apesar de ser um pouco mais lento me parece ser uma atualização mais seguro do que ue tava fazendo, mas ainda tem um problema o banco de dados não esta sendo atualizado corre tudo certo mas o banco de dados .DBF não muda em nada
nao entendo muito de DBE pois trabalho com o firebird, não sei o que teria ainda de errado, estou conectando a query direto no banco de dados, databasename = C:\ESTOQUE é o caminho onde esta o Estoque.dbf eu não teria que ter uma table ou database para editar e gravar o estoque.dbf?
se sim como fazer isso?
Obrigado...
nao entendo muito de DBE pois trabalho com o firebird, não sei o que teria ainda de errado, estou conectando a query direto no banco de dados, databasename = C:\ESTOQUE é o caminho onde esta o Estoque.dbf eu não teria que ter uma table ou database para editar e gravar o estoque.dbf?
se sim como fazer isso?
Obrigado...
GOSTEI 0
Emerson Nascimento
23/03/2006
faz muito temo (muito mesmo) que não trabalho mais com DBFs e acesso via BDE. de qualquer forma, tente alterar a propriedade RequestLive da query para True e veja se funciona.
GOSTEI 0