Загрузка текстового файла в ТАБЛИЦУ MS ACCESS с помощью Delphi

#sql #delphi #ms-access

#sql #delphi #ms-access

Вопрос:

У меня возникли некоторые проблемы при попытке загрузить текстовый файл с разделителями табуляции в таблицу базы данных MS ACCESS с использованием Delphi.

До сих пор мне удавалось создать новую базу данных и таблицу Access, но когда я пытаюсь загрузить данные, я получаю исключение EOleException с сообщением:

‘Оператор INSERT INTO содержит следующее неизвестное имя поля: ‘FIELD1_FIELD2_FIELD3_ …’

Мой код выглядит следующим образом:

 cs := 'insert into TABLENAME(FIELD1, FIELD2, FIELD3, FIELD4, FIELD5, FIELD6, FIELD7,      FIELD8, FIELD9, FIELD10, FIELD11, FIELD12, FIELD13, FIELD14, FIELD15) select * from [FILENAME.txt] in "'   EditJobLocation.Text   '"  "Text;HDR=Yes"';
ADOCommand2.CommandText := cs;
try
   ADOCommand2.Execute;
etc...
  

Не уверен, в чем проблема, но я думаю, что это связано с частью ‘select *’, возвращающей все поля в виде одной строки, разделенной подчеркиванием.

Я искал в Google, пытаясь найти некоторые ответы, но пока ничего не нашел.

Любая помощь будет принята с благодарностью.

Комментарии:

1. Если проблема с «select *» кажется проблемой, возникает очевидный вопрос: вы уже пробовали «выбрать field1, field2, … » вместо этого?

2. Не изучая содержимое FILENAME.txt , в первых 2-3 строках, будет трудно помочь.

Ответ №1:

Предложение: попробуйте удалить insert часть, оставив только select * from... часть, например

 cs := 'select * from [FILENAME.txt] in "'   EditJobLocation.Text   '"  "Text;HDR=Yes"';
  

Используйте этот пересмотренный оператор SQL для открытия объекта набора записей. Если это удастся, проверьте коллекцию набора Fields записей: т. Е. Сколько возвращенных столбцов, их имена, порядковые позиции и т. Д.

Надеюсь, это позволит определить, связана ли проблема с извлечением данных из текстового файла или с действием вставки.

p.s. если вы этого еще не сделали, рассмотрите возможность использования schema.ini файла, чтобы получить лучший контроль над тем, как Access «видит» данные текстового файла в терминах столбцов и их типов данных.