|   |   | 
| 
 | Помогите с запросом к текстовому файлу через 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 перед чтением файла. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |