Страница 1 из 1
Dsql query to string collection
Добавлено: 08 июн 2015, 18:56
mwoland
Добрый день. Галактика 910. Я динамически формирую сложный dsql запрос с помощью функций sqladdstr. При этом добавляю к результирующей строке запроса другие строки запросов с типами string, longint и sql query. Подскажите, пожалуйста, существует ли возможность получить коллекцию строк результирующего запроса? Другими словами, мне нужно проверить текст результирующего запроса. Inb4 "используй систему логирования"
Re: Dsql query to string collection
Добавлено: 09 июн 2015, 00:56
LaaLaa
Записывайте протоколы "Сервис | Утилиты | Система логирования | Запуск логирования" в SIL-формате. И смотрите их через Smartinspect Redistributabe Console.
Возможность доступна в Атлантисе 5.5.21
Re: Dsql query to string collection
Добавлено: 09 июн 2015, 01:00
LaaLaa
В более ранних поствках Атлантис есть текстовая версия протокола protocol которую формируют специалные сборки ora90drv.dll и ms70drv.dll
Re: Dsql query to string collection
Добавлено: 09 июн 2015, 02:29
mwoland
Да, спасибо, я знаю об этом функционале, очень полезная вещь. Собственно им и пользуюсь для контроля, но это не совсем подходит: я хотел свои объекты, которые генерят и декорируют запросы покрыть юнит тестами и в случае провала теста вываливать в лог текст запроса, но, видимо, не судьба, попробую через инъекцию.
Re: Dsql query to string collection
Добавлено: 09 июн 2015, 10:21
edward_K
я вместо sqladdstr вызываю свою функцию в которой пишу в том числе в лог в out зверя. Получается готовый запрос. который можно выполнить в сапорте с SQL. Туда же пишу и результат выполнения - так что сразу все видно если что. Сапорт уже скажет в какой именно строке косяк. Раньше в 810 в ms70drv выводился целиком запрос и причина ошибки - было чуть проще. Опять же - можно через профайлер посмотреть, но это чутка сложнее - вычлинить нужный запрос БД.
Ну еще вариант сложные запросы выполнить в SQL в хранимке, а результат поместить в какую нибудь темповую таблицу галактики(лучше не временную а разделить по UserName или UserID.