|
Помогите с запросом к текстовому файлу через ADO | ☑ | ||
---|---|---|---|---|
0
ptiz
26.04.16
✎
12:02
|
Спасите!
Хочу сделать простейший запрос к текстовому файлу. Делаю так: ADOСоединение = Новый COMОбъект("ADODB.Connection"); ADOСоединение.Open("Driver={Microsoft Text Driver (*.txt; *.csv)}; DefaultDir=" + Каталог + ";"); Команда = "SELECT * FROM " + Файл.Имя + " WHERE F1 LIKE '%" + ИщемСтроку + "%'"; AdoCMD = Новый COMОбъект("ADODB.Command"); AdoCMD.ActiveConnection = ADOСоединение; AdoCMD.CommandText = Команда; AdoCMD.CommandType = 1; Result = AdoCMD.Execute(); Получаю ошибку: {Форма.Форма.Форма(109)}: Ошибка при вызове метода контекста (Execute) Result = AdoCMD.Execute(); по причине: Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Драйвер ODBC Текст] Обновление невозможно. База данных или объект доступны только для чтения. К файлу доступ есть, спокойно удаляю и заново копирую. Чего не хватает? |
|||
1
КМ155
26.04.16
✎
12:27
|
(0) используй рекордсет
|
|||
2
Serginio1
26.04.16
✎
12:30
|
Конечно можно использовать и вариант через ADO http://catalog.mista.ru/public/98398/
Например используя Schema.ini для Microsoft.ACE.OLEDB.12.0 http://it-proposition.blogspot.ru/2011/08/schemaini-microsoftaceoledb120.html |
|||
3
ptiz
26.04.16
✎
12:54
|
(1) Как? Буду благодарен за пример.
(2) Спасибо, попробую. Но неужели ошибка от отсутствия schema.ini ? |
|||
4
ptiz
26.04.16
✎
13:00
|
(2) Та же ошибка. Schema.ini ничего не изменило.
|
|||
5
ptiz
26.04.16
✎
13:06
|
Произошла исключительная ситуация (Microsoft JET Database Engine): Обновление невозможно. База данных или объект доступны только для чтения.
блин... |
|||
6
Serginio1
26.04.16
✎
13:10
|
Попробуй не указывать
AdoCMD.CommandType = 1; или поставь 8 |
|||
7
Serginio1
26.04.16
✎
13:12
|
Или попробуй вызов
как http://catalog.mista.ru/public/98398/ Ну и можно вручную http://catalog.mista.ru/public/371887/ |
|||
8
ptiz
26.04.16
✎
13:14
|
(6) Не помогает :(
|
|||
9
ptiz
26.04.16
✎
13:16
|
(7) Скопировал функцию из примера - та же ошибка.
А ЧтениеТекста - слишком просто :) |
|||
10
Serginio1
26.04.16
✎
14:48
|
Сделай запрос попроще. Может не все понимает
|
|||
11
ViSo76
26.04.16
✎
18:05
|
пConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=""" + оФайл.Путь + """;Extended Properties=""Text;FMT=Delimited"""
Попытка пКоннектор = Новый COMОбъект( "ADODB.Connection" ); пКоннектор.ConnectionString = пConnectionString; Попытка пКоннектор.Open(); Исключение пКоннектор = Неопределено; Сообщить( "Не удалось подключиться к источнику." + Символы.ПС + ОписаниеОшибки() ); КонецПопытки; Исключение Сообщить( "Нет драйвера ADODB." + Символы.ПС + ОписаниеОшибки() ); КонецПопытки; Да чтобы работало нужно создавать schema.ini в каталоге где содержится файл для описания заголовков csv перед чтением файла. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |