Fórum comando de importaçao de dados com problema #364575

02/10/2008

0

salve comunidade, vida de iniciante e foda
Estou importando dados de uma tabela paradox para firebird, e como vai ser de varios clientes mais com o mesmo sistema resolvi crear uma rotina
que segue:
rocedure Tfrmorigem.Button1Click(Sender: TObject);
begin
tblClienteBDE.Open;
tblClienteBDE.First;
cdsClienteFB.Open;
While not tblClienteBDE.EOF do
begin
cdsClienteFB.Insert;
cdsClienteFB.FieldByName(´FILIAL´).AsString := ´1´;
cdsClienteFB.FieldByName(´IDCOD´).AsString := tblClienteBDE.FieldByName(´CODIGO´).AsString;
cdsClienteFB.FieldByName(´TIPO_CLI´).AsString := ´J´;
cdsClienteFB.FieldByName(´CODIGO´).AsString := tblClienteBDE.FieldByName(´CODIGO´).AsString;
cdsClienteFB.FieldByName(´NOME´).AsString := tblClienteBDE.FieldByName(´NOME´).AsString;
cdsClienteFB.FieldByName(´CPF_CNPJ´).AsString := tblClienteBDE.FieldByName(´CGC´).AsString;
cdsClienteFB.FieldByName(´ENDERECO´).AsString := tblClienteBDE.FieldByName(´ENDERECO´).AsString;
cdsClienteFB.FieldByName(´BAIRRO´).AsString := tblClienteBDE.FieldByName(´BAIRRO´).AsString;
cdsClienteFB.FieldByName(´CEP´).AsString := tblClienteBDE.FieldByName(´CEP´).AsString;
cdsClienteFB.FieldByName(´FONE´).AsString := tblClienteBDE.FieldByName(´FONE´).AsString;
cdsClienteFB.FieldByName(´FAX´).AsString := tblClienteBDE.FieldByName(´FAX´).AsString;
cdsClienteFB.FieldByName(´CONTATO´).AsString := tblClienteBDE.FieldByName(´CONTATO´).AsString;
cdsClienteFB.FieldByName(´RG_IE´).AsString := tblClienteBDE.FieldByName(´INSCRICAO´).AsString;
cdsClienteFB.FieldByName(´DATA´).AsString := tblClienteBDE.FieldByName(´DATA_FICHA´).AsString;
cdsClienteFB.FieldByName(´RG_IE´).AsString := tblClienteBDE.FieldByName(´CI´).AsString;
cdsClienteFB.FieldByName(´CPF_CNPJ´).AsString := tblClienteBDE.FieldByName(´CPF´).AsString;
cdsClienteFB.FieldByName(´TIT_ELEIT´).AsString := tblClienteBDE.FieldByName(´TIT_ELEITOR´).AsString;
cdsClienteFB.FieldByName(´DT_NASC´).AsString := tblClienteBDE.FieldByName(´DATA_NASC´).AsString;
cdsClienteFB.FieldByName(´SEXO´).AsString := tblClienteBDE.FieldByName(´SEXO´).AsString;
cdsClienteFB.FieldByName(´E_CIVIL´).AsString := tblClienteBDE.FieldByName(´EST_CIVIL´).AsString;
cdsClienteFB.FieldByName(´NATURALIDADE´).AsString := tblClienteBDE.FieldByName(´NATURAL´).AsString;
cdsClienteFB.FieldByName(´NOME_PAI´).AsString := tblClienteBDE.FieldByName(´PAI´).AsString;
cdsClienteFB.FieldByName(´NOME_MAE´).AsString := tblClienteBDE.FieldByName(´MAE´).AsString;
cdsClienteFB.FieldByName(´NOME_CONJUGE´).AsString := tblClienteBDE.FieldByName(´CONJUGE´).AsString;
cdsClienteFB.FieldByName(´VL_ALUGUEL´).AsString := tblClienteBDE.FieldByName(´VAL_ALUGUEL´).AsString;
cdsClienteFB.FieldByName(´T_RESID´).AsString := tblClienteBDE.FieldByName(´TEMP_RESID´).AsString;
cdsClienteFB.FieldByName(´DE_EMPRESA´).AsString := tblClienteBDE.FieldByName(´NOME_EMPRESA´).AsString;
cdsClienteFB.FieldByName(´DE_FONE´).AsString := tblClienteBDE.FieldByName(´FONE_EMPR´).AsString;
cdsClienteFB.FieldByName(´ADMISSAO´).AsString := tblClienteBDE.FieldByName(´ADMISSAO´).AsString;
cdsClienteFB.Post;
tblClienteBDE.Next;
end;
end;

até ae tudo bem so que os dados não grava na tabela destino, coloquei um dbgride pra ver e os dados importa mais não grava, eu seja importa tudo quando saio da aplicação os dados perdem.
Estou precisando de uma ajuda nessa
No aguardo
abraço a todos


F4rr3ll

F4rr3ll

Responder

Posts

02/10/2008

Facc

no evento onpost do clientdataset coloque o applyupdates


Responder

Gostei + 0

02/10/2008

F4rr3ll

Facc, Desculpe se não achei o evento
Mais no meu clientedataset aqui num tem este evento não tem o onpost
tem o beforepost, afterpost, onposterror, mais o onpost não.
Pode ser que fiz algo errado aqui
Abraço


Responder

Gostei + 0

02/10/2008

Joaoshi

O evento é [b:d26cd457a3]AfterPost[/b:d26cd457a3]


Responder

Gostei + 0

02/10/2008

Paullsoftware

O evento é [b:2a8075ae1e]AfterPost[/b:2a8075ae1e]
Falou e disse, mais tente executar o ApplyUpdates somente no final da importação..

cdsClienteFB.FieldByName(´DE_FONE´).AsString := tblClienteBDE.FieldByName(´FONE_EMPR´).AsString; 
cdsClienteFB.FieldByName(´ADMISSAO´).AsString := tblClienteBDE.FieldByName(´ADMISSAO´).AsString; 
cdsClienteFB.Post; 
tblClienteBDE.Next; 
end; 
....
cdsClientesFB.ApplyUpdates(-1);
end;
espero ter ajudado! :wink:


Responder

Gostei + 0

02/10/2008

F4rr3ll

Vlw dmais galera, importando dados em alta velocidade
meus agradecimentos a todos pelas dicas e em especial para o paullsoftware que foi desisivo na sua dica
Abraço a todos


Responder

Gostei + 0

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

Aceitar