Использование поставщика JET OLEDB. Как запросить текстовый файл без заголовка с помощью предложения WHERE?

Это может быть глупый вопрос, но я не могу понять правильный синтаксис или возможно ли это вообще.

У меня есть текстовый файл, который я запрашиваю с помощью поставщика Microsoft.Jet.OLEDB.4.0. Текстовый файл состоит из CSV без заголовка, который выглядит примерно так:

4/11/2012 9:20:19 AM,USERID,GROUPNAME
4/12/2012 9:20:19 AM,USERID2,GROUPNAME3
4/13/2012 10:45:15 AM,USERID3,GROUPNAME2

Я могу запросить весь текстовый файл с помощью SELECT * FROM..., но я хотел бы иметь возможность запрашивать его в одном из столбцов. SELECT * FROM myTextFile.txt WHERE column2='USERID'

Моя проблема в том, как я могу указать столбец, если нет заголовка? Есть ли способ указать второй столбец? Что-то вроде WHERE {1}='USERID'

Спасибо за ответы заранее!


person robbie    schedule 19.04.2012    source источник
comment
Вы используете schema.ini файл? Попробуйте ...WHERE F2 = 'USERID'   -  person onedaywhen    schedule 19.04.2012
comment
@onedaywhen Я не использую файл schema.ini, но я не против этого. Что мне нужно добавить туда, чтобы указать F2 в качестве второго столбца?   -  person robbie    schedule 19.04.2012
comment
Вам нужно включить HDR=No в строку подключения. Следующая статья может оказаться полезной: Много шума из текстовых файлов.   -  person onedaywhen    schedule 19.04.2012


Ответы (1)


По умолчанию поля называются F1, F2, F3 и т. д.

Итак, в вашем случае вы можете сделать строку SQL такой:

SELECT * FROM myTextFile.txt WHERE F2='USERID'

[EDIT] Я только что увидел комментарий от @onedaywhen... Он прав, я использовал это, и это работает.

person Steve Wellens    schedule 19.04.2012