aki, 

ja abri o arquivo Access, e ta la que os campos são do 
tipo 'texto'. Eu realmente nao sei o que há de errado ...
 

abaixo o meu codigo .. 


procedure TFrmCriarBase.btnBaseClick(Sender: TObject);
var
    x: integer;
    bloco1, caminho, base, comando: string;

begin
// no codigo eu defino meu banco de dados, que no caso é em Access
 
// defino o diretório onde ele ficará
 
  caminho := 'K:\Dm\TXT2MDB\MDB\tabela.mdb';
 
// crio a tabela de nome arquivo contendo nomes de ate 8 caracteres
 
  if FrmCriarTabelas.CloseQuery then
   begin
 
// nao sei se essa parte ajudaria, mas quando eu tiro ela, da erro, 
falando que ele ja existe, (pq no meu outro codigo (que nao tem 
problema nenhum) eu tb crio o arquivo MDB, para que este codigo possa 
compilar)
 
   if FileExists('K:\Dm\TXT2MDB\MDB\tabela.mdb') then
    DeleteFile('K:\Dm\TXT2MDB\MDB\tabela.mdb');
 
 
      if FileExists('K:\Dm\TXT2MDB\MDB\tabela.mdb')
        then
          if comando = 'CREATE TABLE ARQUIVO (ARQ_NOME TEXT(8))'
           then
              ShowMessage('Tabela já existe')
           else
             begin
 
// aki é no caso de ela nao existir, eu crio o arquivo Access e a 
tabela ARQUIVO

               { definindo a base de dados }
                base := 'Provider=Microsoft.Jet.OLEDB.4.0' + ';Data 
Source=' + caminho + ';Persist Security Info=False';
               ADOConnection1.ConnectionString := base;
 
               { Criando a tabela }
               {>>> Arquivos <<<}
                comando := 'CREATE TABLE ARQUIVO (ARQ_NOME TEXT(8))';
               ADOCommand1.CommandText := comando;
               ADOCommand1.Execute;
               ADOCommand1.Cancel;
 
// aki é onde importa do TXT que está os nomes para o Memo1

Memo1.Lines.LoadFromFile('K:\Dm\TXT2MDB\Lista\lista.txt');
 
// aki, ele conta la as linha e fica repetindo até nao existir mais 
coisas escrita (esse codigo peguei da net)
 
for x:=0 to Memo1.Lines.Count - 1 do
    begin
 
// a variavel bloco1 recebe os primeiros 8 caracteres de cada linha

    bloco1:=copy(Memo1.Lines.Strings[x],1,8);
 
// nesse ShowMessage ele mostra na tela o nome e nele tem o Zero na 
frente

    ShowMessage(bloco1);
 
// aki é que é feita o INSERT do conteudo que está dentro da variavel 
bloco1 para a tabela ARQUIVO
 
    comando := 'INSERT INTO ARQUIVO(ARQ_NOME) VALUES(' + bloco1 + ')';
    ADOCommand2.CommandText := comando;
    ADOCommand2.Execute;
    
close;

end;
end;
end;
end;
end.
 
 
[]'s a todos,
 
Felipe Milagres



Responder a