Welder 0 Denunciar post Postado Abril 27, 2009 Estou importando um txt para fdb usando dbexpress e clientdataset, uso o código: procedure TfrmPrincipal.BitBtn1Click(Sender: TObject); var Txt: Textfile; Terceiro: string; begin BitBtn1.Enabled:= false; if OpenDialog1.Execute then begin dmImportar.cdsTerceiros.Open; AssignFile(Txt,(OpenDialog1.FileName));//{ NOME do arquivo texto} Animate1.Visible:= true; Animate1.Active:= true; Reset(Txt); While not Eoln(Txt) do begin Readln(Txt,Terceiro); dmImportar.cdsTerceiros.Insert; dmImportar.cdsTerceiros.FieldByName('TIPO').Value:= Copy(Terceiro,01,03); dmImportar.cdsTerceiros.FieldByName('ORDEM').Value:= Copy(Terceiro,04,05); dmImportar.cdsTerceiros.FieldByName('FILLER1').Value:= StrToInt(Copy(Terceiro,09,02)); dmImportar.cdsTerceiros.FieldByName('PERSONALIDADE').Value:= Copy(Terceiro,11,01); dmImportar.cdsTerceiros.FieldByName('Tipo_Envio').Value:= StrToInt(Copy(Terceiro,17,01)); dmImportar.cdsTerceiros.FieldByName('Matricula').Value:= Copy(Terceiro,18,10); dmImportar.cdsTerceiros.FieldByName('Nome').Value:= Copy(Terceiro,28,60); dmImportar.cdsTerceiros.FieldByName('CPF').Value:= Copy(Terceiro,88,11); dmImportar.cdsTerceiros.FieldByName('Sexo').Value:= Copy(Terceiro,99,01); dmImportar.cdsTerceiros.FieldByName('Data_Nascimento').Value:= Copy(Terceiro,100,10); dmImportar.cdsTerceiros.FieldByName('Data_Admissao').Value:= Copy(Terceiro,110,10); dmImportar.cdsTerceiros.FieldByName('Tipo_Servidor').Value:= Copy(Terceiro,120,01); dmImportar.cdsTerceiros.FieldByName('Codigo_Cargo_Funcional').Value:= Copy(Terceiro,121,10); dmImportar.cdsTerceiros.FieldByName('Codigo_Lotacao').Value:= Copy(Terceiro,131,10); dmImportar.cdsTerceiros.FieldByName('Salario_Base').Value:= Copy(Terceiro,141,11); dmImportar.cdsTerceiros.FieldByName('Total_Vencimento').Value:= Copy(Terceiro,152,11); dmImportar.cdsTerceiros.Post; Label1.Caption:= 'Importando, aguarde... '+ IntToStr(dmImportar.cdsTerceiros.RecordCount); if dmImportar.cdsTerceiros.ApplyUpdates(0) <> 0 then dmImportar.cdsTerceiros.CancelUpdates; end; CloseFile(Txt); Label1.Caption:= 'Importação realizado com sucesso...'; BitBtn1.Enabled:= true; frmPrincipal.Height:= 404; frmPrincipal.ClientHeight:= 377; BitBtn2.Kind:= bkClose; Label1.Caption := 'Foi Importado um total de '+ IntToStr(dmImportar.cdsTerceiros.RecordCount)+' registros com sucesso'; end; end; e ocorre o erro: cannot open avi, ao selecionar o arquivo na caixa abrir do OpenDialog como corrigir este erro, ou como posso usar DirectoryListBox com FileListBox? Obrigado a todos. Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Abril 27, 2009 Esta área não se destina a tópicos de dúvidas. Tópico movido. iMasters Fóruns » Programação » Delphi » Artigos, Tutoriais e Matérias (Delphi) >> iMasters Fóruns » Programação » Delphi Compartilhar este post Link para o post Compartilhar em outros sites
Welder 0 Denunciar post Postado Abril 30, 2009 resolvido o problema do erro, que por sua vez não era na importação (OpenDialog) e sim no Animate que esqueci de informar a propriedade CammonAvi. Aproveitando o assunto de importação. Como criar e usar algo que faça uma verificação na tabela e se no arquivo de importação constar CPF/CNPF que já exista na tabela o sistema informar que já existe e não fazer a importação desta linha, mas continua com o processo. outra coisa é verificar no arquivo texto se tem mais de um CPF/CNPJ e importar só o primeiro encontrado, ignorando e informando ao ususário os repetidos. Lembrando que o CPF/CNPJ seria a chave primária. Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites