Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Предложение по развитию. (число прочтений - 2171 )
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Предложение по развитию.
31. Октября 2006 :: 07:34
Печать  
Не нашел такой ветки. Поскольку предложение касательно прямого доступа, то решил разместить здесь.

Предлагаю сделать при ODBCRecordSet.Отладка(2) - показывать релаьный запрос, который уходит на SQL-сервер (включая подзапросы, которые формируют виртуальные таблицы в понятии 1С++), дабы не запускать профайлер и отслеживать реальные запросы (надо для теста, потому как иногда 1С++ работает не совсем так как хотелось бы и как работает реальный запрос в QA).

Также, есть предложение сделать функцию УложитьСписок() который будет укладывать любые данные 1С в временную таблицу. Это кнечно можно решить средствами саомй 1С (создавать таблицу с колонкой VAL требуемого значения и построчно делать INSERT желаемго значения).
  
Наверх
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Предложение по развитию.
Ответ #1 - 31. Октября 2006 :: 10:42
Печать  
Не вполне понятно. Если включена отладка, то в окно сообщений вываливаются те самые запросы которые уходят на сервер и реализацию виртуальных таблиц и виртуальных значений там видно.

Цитата:
иногда 1С++ работает не совсем так как хотелось бы и как работает реальный запрос в QA

Они работают одинаково, с той разницей что QA получает все результаты, а 1с++ результат первой инструкции (mulistatement batch).

Цитата:
Также, есть предложение сделать функцию УложитьСписок() который будет укладывать любые данные 1С в временную таблицу. Это кнечно можно решить средствами саомй 1С (создавать таблицу с колонкой VAL
требуемого значения и построчно делать INSERT желаемго значения).

Для решения можно применить ВыполнитьSQL_ИзТЗ(). Если реализовать в наследнике от ODBCRecordset - будет красиво. (с) кавказец из фильма Олигарх
« Последняя редакция: 31. Октября 2006 :: 14:06 - DmitrO »  
Наверх
ICQ  
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Предложение по развитию.
Ответ #2 - 31. Октября 2006 :: 12:12
Печать  
DmitrO писал(а) 31. Октября 2006 :: 10:42:
Не вполне понятно. Если включена отладка, то в окно сообщений вываливаются те самые запросы которые уходят на сервер и реализацию виртуальных таблиц и виртуальных значений там видно.

Код
Выбрать все
иногда 1С++ работает не совсем так как хотелось бы и как работает реальный запрос в QA 


Они работают одинаково, с той разницей что QA получает все результаты, а 1с++ результат первой инструкции (mulistatement batch).

Код
Выбрать все
Также, есть предложение сделать функцию УложитьСписок() который будет укладывать любые данные 1С в временную таблицу. Это кнечно можно решить средствами саомй 1С (создавать таблицу с колонкой VAL
требуемого значения и построчно делать INSERT желаемго значения). 


Для решения можно применить ВыполнитьSQL_ИзТЗ(). Если реализовать в наследнике от ODBCRecordset - будет красиво. (с) кавказец из фильма Олигарх


Не совсем так. Вот к примеру такой запрос:
Код
Выбрать все
	|FROM
	|    $РегистрОстаткиОбороты.Остатки(:НачДата, :КонДата~, Документ, ДвиженияИГраницыПериода,
	|										 ,,
	|										(Склад,ТМЦ,Партия), (Кво,СуммаБезНДС)) as Рег
 


Так при отладке никак нельзя получить как форvируется временная таблица (кроме профайлера).

По поводу не так работает как в QA - скорее всего хотелось сказать о обработчике ошибок. Понятно что он возращает то что пишет в ответ ODBC, но очень часто приходится перерабатывать текси запроса в QA и  только тогда лишь кое как видно где глюк.

По поводу УложитьСписок - согласен, Сенкс.
  
Наверх
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Предложение по развитию.
Ответ #3 - 31. Октября 2006 :: 13:15
Печать  
Реализация этой ВТ это:
1)запрос для получения остатков;
2)запрос для получения оборотов;
3)создание временной таблицы;
4)merge перебор результатов тех двух запросов с расчетом текущего остатка и формирование записей временной таблицы;
5)подстановка имени временной таблицы в исходный текст запроса.
Как видно, реализация этой ВТ это не только текст запроса, а еще и алгоритмическая обработка результатов, выполнение параметризированных запросов, - что выходит за рамки задач которые можно решить с помощью QA копируя в него тексты запросов из окна сообщений; кроме того тексты запросов для получения остатков и оборотов строятся также как и аналогичные ВТ.
С учетом того, что запросы всегда можно посмотреть в профайлере, протоколирование этих запросов небыло реализовано.
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать