GARANTIR DESCONTO

Fórum O Que há de errado no código??? #38897

23/09/2003

0

Bem, coloquei em numa aplicação teste uma tabela lingada ao Paradox 7(TbAntigo). Coloquei um query ligada a uma database do interbase.
A Intenção é pegar todas os dados da tabela em paradox e colocar na tabela interbase. O banco e as tabelas IB há estão criadas.


procedure TFrmPrincipal.Button2Click(Sender: TObject);
begin
Button2.Enabled := False;
TbAntigo.Open; //Tabela Antiga
TbAntigo.First;
QryVeiculos.Open;
While not TbAntigo.Eof do begin
QryVeiculos.Append;
QryVeiculos.FieldByName(´Codigo´).Value := TbAntigoCodigo.Value;
QryVeiculos.FieldByName(´Descricao´).Value := TbAntigoDescricao.Value;
QryVeiculos.Post;
QryVeiculos.ApplyUpdates;
Transacao.Commit;
TbAntigo.Next;
end;

//Fecha
TbAntigo.Close;
QryVeiculos.Close;
Button2.Enabled := True;
end;


Netosdr

Netosdr

Responder

Posts

24/09/2003

Afarias

1 - não sei o q o ApplyUpdates está fazendo ali!! Vc está usando CachedUpdates?? -- ApplyUpdates só faz sentido com CachedUpdates -- o uso de CachedUpdates com IBX é desnecessário e desaconselhado ... além do mais, é extremamente inútil neste tipo de procedimento -- use apenas o POST!

2 - vc está usando a query como um DataSet (mantendo registros em buffer) -- quando vc dá um COMMIT a query será fechada e vc não erá como continuar a oparação! -- ou vc deixa para dar o commit apenas quando sai do loop WHILE -- ou vc faz melhor e usa um IBQuery (ou IBSQL) com um comando INSERT (o q é muito mais eficiente)!

3 - se não está usando CachedUpdates, e durante o ApplyUpdates vc não recebe nenhum erro --- então, está na hora de atualizar seu IBX


T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar