Среда, 13.12.2017, 15:48
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Основной » Проблемные ситуации » Некорректная работа консоли запросов в режиме ADO
Некорректная работа консоли запросов в режиме ADO
1cykuДата: Вторник, 22.08.2017, 10:17 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 3
Репутация: 2
Статус: Оффлайн
ОС: Windows x86 version 6.1 Service Pack 1 (Build 7601)
Платформа: 8.3.10.2375
Конфигурация: 1С:ERP Управление предприятием 2 (2.2.4.19)
Режим БД: клиент-серверный
Приложение: Обычное приложение 32б
От имени администратора Windows: Нет
Режим совместимости: Версия8_3_8
Инструменты разработчика: Портативные 4.13.1p

На версии 4.20p поведение аналогично (проверял на другом ПК).

Консоль запросов, режим ADO. Делаем запрос к "таблица FoxPro ч/з OLEDB", GameWithFire - не использовать. Получаем сообщение об ошибке:

Код
{ВнешняяОбработка.ирОбщий.МодульОбъекта(12199)}: Метод объекта не обнаружен (ВOF)
        Если РезультатRecordset.EOF() = 0 И РезультатRecordset.ВOF() = 0 Тогда


Если убрать код

Код
И РезультатRecordset.ВOF() = 0


то далее будет ошибка при выполнении обработчика строки результата

Код
{ВнешняяОбработка.ирКонсольЗапросов.Форма.Форма.Форма(2351)}: Поле объекта не обнаружено (Count)
            КоличествоОбщее = мРезультатЗапроса.Count;


Меняем на такой код

Код
Попытка
                КоличествоОбщее = мРезультатЗапроса.Count;
            Исключение
                КоличествоОбщее = мРезультатЗапроса.RecordCount;
            КонецПопытки


Далее опять ошибка

Код
{ВнешняяОбработка.ирКонсольЗапросов.Форма.Форма.Форма(2393)}: Итератор для значения не определен
            Для Каждого СтрокаРезультата Из мВыборкаРезультата Цикл


Аналогичная ошибка при исполнении обработчика результата.

Добавлено (22.08.2017, 10:17)
---------------------------------------------
Лечится примерно так (хотя, по хорошему, нужно где-то ранее преобразовывать результат в ТЗ):

Код
ИначеЕсли ТипЗнч(мРезультатЗапроса) = Тип("COMОбъект") Тогда
            СтрокаРезультата = Новый Структура;
            мВыборкаРезультата.moveFirst();            
            Для й = 0 по мВыборкаРезультата.RecordCount - 1 Цикл
                Для ы = 0 по мВыборкаРезультата.Fields.Count - 1 Цикл
                    СтрокаРезультата.Вставить(мВыборкаРезультата.Fields.Item(ы).Name, мВыборкаРезультата.Fields.Item(ы).Value);
                КонецЦикла;
                
                НомерСтроки = НомерСтроки + 1;
                ирОбщий.ОбработатьИндикаторЛкс(Индикатор);
                Попытка
                    ирОбщий.ВыполнитьАлгоритм(ТекстДляВыполнения, ,, СтруктураПараметров, СтрокаРезультата, НомерСтроки = 1, НомерСтроки = РазмерРезультата);
                Исключение
                    Если Не флПропускатьОшибки Тогда
                        ВызватьИсключение
                    КонецЕсли;
                    ирОбщий.СообщитьСУчетомМодальностиЛкс("Строка результата №" + (мВыборкаРезультата.ItemIndex(СтрокаРезультата) + 1) + ": " + ОписаниеОшибки(), МодальныйРежим);
                КонецПопытки;
                мВыборкаРезультата.moveNext();
            КонецЦикла;


Результат в виде измененных модулей
http://rgho.st/6K5jbqXPp
 
tormozitДата: Вторник, 22.08.2017, 22:15 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 1672
Репутация: 20
Статус: Оффлайн
Попытался воспроизвести, но получил ошибку.

Ошибки при подключении к источнику данных ADO:
1) Ошибка инициализации подключения:
{Обработка.ирКонсольЗапросов.МодульОбъекта(695)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (ADODB.Connection): Не удается найти указанный поставщик. Вероятно, он установлен неправильно.
Фактическая строка соединения с базой:
Provider=VFPOLEDB.1; DSN=""; SourceType=DBC; Data Source="D:\1C\v6\f12\1SBCONS.DBF"; User ID=""; Password="***"; Mask Password=False; Extended Properties=""; Exclusive=No; Mode=ReadWrite; Collating Sequence=machine;

Я так понимаю мне придется установить драйвер VisualFoxPro? Какой ты использовал? Где скачать?
 
1cykuДата: Среда, 23.08.2017, 09:54 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 3
Репутация: 2
Статус: Оффлайн
https://www.microsoft.com/en-us/download/details.aspx?id=14839
 
tormozitДата: Среда, 23.08.2017, 23:08 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 1672
Репутация: 20
Статус: Оффлайн
Спасибо. Ошибки воспроизвел.
Режим без использования библиотеки GameWithFire довольно медленный, поэтому в реальности я его почти не применял. Но ошибки эти исправлю.
 
tormozitДата: Пятница, 25.08.2017, 01:03 | Сообщение # 5
Генералиссимус
Группа: Администраторы
Сообщений: 1672
Репутация: 20
Статус: Оффлайн
Исправлено в 4.24
 
Форум » Основной » Проблемные ситуации » Некорректная работа консоли запросов в режиме ADO
Страница 1 из 11
Поиск: