Exportar Dados de Txt e Excel para Sql Server

Delphi

25/02/2011

Olá pessoal, sou novato no Sql Server 2005 , e estou desenvolvendo uma sistema usando delphi com sql server , vou migrar diariamente dados de um arquivo txt para uma tabela do sql server, e semanalmente dados de uma planilha em excel para outra tabela do sql server , ambas vao estar na mesma base de dados, e gostaria de saber de vcs alguma dica ou exemplo de como devo montar esta duas rotinas desde já agradeço Américo
Américo Grespan...,,,

Américo Grespan...,,,

Curtidas 0

Respostas

Marco Salles

Marco Salles

25/02/2011

Então , para o arquivo TXT vai uma rotina limpa   Utilize um Padrao no seu Arquivo TXT   Exemplo   Nome=Marco Antonio Salles
Rua=Meu Endereco
Cidade=Muriae Nome=Marco Antonio Salles
Rua=Outro Enderco Cidade=Muriae   Para Salvar os Dados do TXT para sua base de dados faça  
procedure SalvarTXT(DataSet:TDataSet);
conts
NumCampo=3;
var
  Lista:TStrings;
  I: integer;
begin
Lista:=TStringList.Create;
try
  Lista.LoadFromFile('Temp.txt'); // Meu arquivo esta no mesmo diretorio que Aplicação e se Chama 'Temp.txt'
  for I := 0 to Lista.Count - 1 do
    begin
      DataSet.Append;
      for i:=1 to NumCampo do  ///// Aqui entra a sua logica
        DataSet.FieldByName(lista.Names[i]).AsString:=Lista.ValueFromIndex[i];
      DataSet.Post;
    end;
finally
   lista.Free;
end;
end;
  Bem , este   for i:=1 to NumCampo do   vai depender da quantidade de fields que vc vai quere exportar.. No exemplo do meu TXT , que lhe passei são Tres ( Nome , Rua, Cidade ) Nada impede que vc faça algi mais generico , isto é que o método sirva para uma outro Arquivo TXT .. Assim tem várias Opçoes , incluindo passar o NumCampo como Parametro da Procedure ou mesmo fazer uma logica com DataSet.Fields.Count .. A primeira dica é mais simples    
procedure SalvarTXT(DataSet:TDataSet;Const NumCampo:Integer);
var
  Lista:TStrings;
  I: integer;
begin
Lista:=TStringList.Create;
try
  Lista.LoadFromFile('Temp.txt');  // Meu arquivo esta no mesmo diretorio que Aplicação e se Chama 'Temp.txt'
  for I := 0 to Lista.Count - 1 do
    begin
      DataSet.Append;
      for i:=1 to NumCampo do  ///// Aqui entra a sua logica
        DataSet.FieldByName(lista.Names[i]).AsString:=Lista.ValueFromIndex[i];
      DataSet.Post;
    end;
finally
   lista.Free;
end;
end;
  Para usar Façã assim    SalvarTXT(SeuDataSet,NumDeCampos???)      PS) Agora depedendo do padrão do seu Arquivo TXT a codificação altera .. Talves eu me precipitei em fornecer esta solução  ( que funciona e bem ) sem antes perguntar como é o formato do seu Arquivo TXT             
GOSTEI 0
POSTAR