Exportar Dados de Txt e Excel para Sql Server
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...,,,
Curtidas 0
Respostas
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
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
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
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;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;GOSTEI 0