PORTA.ru - on-line магазин ПОРТАтивной техники.PORTA.ru - on-line магазин ПОРТАтивной техники.

Новости
Мои разработки
FAQ
Ссылки
Форум

Включить SQL

Шаров
Обнаружен недокументированный метод ВключитьSQL(<?>). Метод можно использовать для объектов типа Регистр и Запрос, созданных функцией СоздатьОбъект. Метод имеет один необязательный параметр. Англоязычный синоним EnableSQL(<?>). Релиз 7.70.014, 7.70.015. Осталось выяснить что же он делает.
Winter
На самом деле этот метод я знаю (обнаружил его мой друг), ещё с четвёртого релиза. И он включает или выключает обработку запросов, с использыванием SQL технологий или по более простому варианту. По умолчанию SQL технологии используются. Например:
Запрос = СоздатьОбъект("Запрос");
Запрос.ВключитьSQL(1);
Запрос по оборотному регистру на 17-том релизе валится.
-----------------------------------------------------------------
Запрос = СоздатьОбъект("Запрос");
Запрос.ВключитьSQL(0);
А так выполняется. Это хорошее средство против обвалов SQL конфигураций, я его использую очень редко, только в тех случаях, когда не могу поднять нужный мне запрос штатными средствами.
Хочу ещё не много дополнить статистикой. Время выполнения одного и того же запроса.
Запрос.ВключитьSQL(1) -> 5.5 сек.
Запрос.ВключитьSQL(0) -> 49.5 сек.
Borges
А если База ДБФ? Не прокатит ли этот метод для опеределения формата конфы? Например - выполнить запрос с включенным СКЛ-ем и выключенным - и посмотреть что будет - для ДБФ базы, по идее разницы во времени исполнения не должно быть?
Gari
Система сначала проверяет наличие файла DD, если его не находит - смотрит DDS, если и его не находит - спрашивает структуру базы.
Dich
Не слышал, чтобы конфы ДБФ и СКЛ форматом отличались. Борхес, это правда, или послепраздничный синдром?
Тот
Форматом они не отличаются, конечно. Но если конфа использует базу SQL, можно применять всякие егонные приемчики.
Borges
Не-не - просто тогда была эта ветка, и нужно было определить формат ИБ - или ДБФ или СКЛ - метод (5) был признан единственно верным, но не совсем надежным - а с методом (0) открывается новое поле для вождения вилами по воде.
Журавлик
А включать SQL через Попытку?
Borges
Не - так я понимаю, что и на ДБФ-базе (и даже на ДБФ-ехе-шнике) метод должен срабатывать, просто от него толку никакого не будет. А?
Тот
Метод абсолютно надежен. Поскольку если в базе есть dd, под SQL она ни за что не откроется. А интересно, этот флажок когда сбрасывается-устанавливается? Если он действует только в текущем запросе?
Winter
Это же метод конкретного объекта, а не системы.
Запрос = СоздатьОбъект("Запрос");
Запрос.ВключитьSQL(1);
Тот
Да я понял. Хотел уточнить, но промазал по педалям. Вместо "Если" хотел написать "Или".
Шаров
Наименование метода найдено просмотром строковых ресурсов 1crcrus.dll. Дальше я просто применил метод к объектам, позволяющим извлекать данные (Регистр, Регистры, БухгалтерскиеИтоги, Операция, Запрос). Для всех, кроме Регистр и Запрос, была получена ошибка времени исполнения "Поле агрегатного объекта не обнаружено". Есть подозрение, что это тоже методы:
3486 References,Ссылки
3487 MetadataRefs,МетаданныеСсылки
3586 ServiceCell,СлужебнаяЯчейка

Источник: Территория 1С

- Наверх -

В качестве благодарности за решение проблемы, щелкните здесь.
Поддержите развитие сайта.
Спасибо!
Автор и разработчик: Кайгородов Андрей aka mszsuz. mszsuz@online.sinor.ru ICQ#33993114. Дата последнего обновления страницы: Friday 09.04.2004 16:52
1C:TOP-100 Рейтинг ресурсов 1С
Hosted by uCoz