Динамическое формирование sql-запроса
Re: Динамическое формирование sql-запроса
2юрий
а это выход
просто как-то техподдержка страшно предостерегла меня от попыток напрямую обновлять данные. Я человек впечатлительный, поэтому задушила саму мысль на корню. Но, созданием своей таблички, я вряд ли нанесу большой урон.
спасибо
гениальное все просто
а это выход
просто как-то техподдержка страшно предостерегла меня от попыток напрямую обновлять данные. Я человек впечатлительный, поэтому задушила саму мысль на корню. Но, созданием своей таблички, я вряд ли нанесу большой урон.
спасибо
гениальное все просто
- Александр
- Активный участник
- Сообщения: 1658
- Зарегистрирован: 24 авг 2006, 08:06
- Используемое ПО: Lotsia PDM PLUS
- Откуда: 55.745578,37.665825
Re: Динамическое формирование sql-запроса
остановитесь!
и подумайте еще раз - нужно ли засорять базу своими структурами
напугал???
лучше все же найти другой подход







лучше все же найти другой подход



Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный
-
- Активный участник
- Сообщения: 239
- Зарегистрирован: 13 янв 2005, 14:30
- Используемое ПО: Lotsia PDM PLUS LT
- Откуда: Украина, Донецк
- Контактная информация:
Re: Динамическое формирование sql-запроса
Кто говорит о постоянных таблицах?
Временные таблицы - это таблицы типа #имя.
Они существуют только для конкретного сеанса подключения
к базе данных и если сеанс закрывается таблица автоматически уничтожается.
Тесть никакого засорения базы.

Временные таблицы - это таблицы типа #имя.
Они существуют только для конкретного сеанса подключения
к базе данных и если сеанс закрывается таблица автоматически уничтожается.
Тесть никакого засорения базы.
Re: Динамическое формирование sql-запроса
здОрово! пойду почитаю про временные таблицы
Re: Динамическое формирование sql-запроса
[quote="Юрий"]Временные таблицы - это таблицы типа #имя.
quote]
а как же тогда имя таблицы подставить в запрос отчета? параметром? а съест ли?
quote]
а как же тогда имя таблицы подставить в запрос отчета? параметром? а съест ли?
-
- Активный участник
- Сообщения: 239
- Зарегистрирован: 13 янв 2005, 14:30
- Используемое ПО: Lotsia PDM PLUS LT
- Откуда: Украина, Донецк
- Контактная информация:
Re: Динамическое формирование sql-запроса
Если речь идет о пользовательском отчете, то я нашел хитрый ход! 
Может кому еще пригодится.
Зная что лоция не закрывает соединение с базой можно смело использовать
временные таблицы но не забывать их чистить!
И так процесс Создаем первый отчет, который будет производить разные действия,
ставим в параметрах "Пользовательский" затем переходим в вкладку отчет, там загорается надпись
"SQL запрос", если нет нажимаем кнопку "SQL" в верху.
далее в этом окне пишем наши действия:
Первая и последняя строки нужны для "дурения" проверщика Лоции.
между ними можно производить любые действия по наполнению временной таблицы #tmp2
Далее нажимаем кнопку "SQL" и наш скрипт отрабатывает и у нас есть временная таблица.
Далее создаем другой отчет, который и будет производить отрисовку данных
Выставляем его в режим "Пользовательский", переходим на вкладку "Отчет"
И пишем в "SQL запрос":
Затем нажимаем кнопку "SQL" и разрисовываем этот отчет.
Затем возвращаемся в первый отчет становимся на вкладку "Свойства" и выбираем наш второй отчет
в поле "Связанный отчет" Сохраняем и запускаем.
Получаем наш хитрый отчет с временной таблицей!
P.S.: Надо быть предельно внимательным при написании скрипта, потому что на этапе проверки он
выполняется. Поэтому нужно создать скрипт отдельно, например в квери аналайзере, а затем уже переносить
в отчет.
Интересно узнать Ваше мнение об этом?

Может кому еще пригодится.

Зная что лоция не закрывает соединение с базой можно смело использовать
временные таблицы но не забывать их чистить!
И так процесс Создаем первый отчет, который будет производить разные действия,
ставим в параметрах "Пользовательский" затем переходим в вкладку отчет, там загорается надпись
"SQL запрос", если нет нажимаем кнопку "SQL" в верху.
далее в этом окне пишем наши действия:
Код: Выделить всё
select * from LSDBO.our_dummy
create table #tmp2 (ii int)
delete #tmp2
insert into #tmp2 (ii) values (2)
insert into #tmp2 (ii) values (3)
select * from LSDBO.our_dummy
между ними можно производить любые действия по наполнению временной таблицы #tmp2
Далее нажимаем кнопку "SQL" и наш скрипт отрабатывает и у нас есть временная таблица.
Далее создаем другой отчет, который и будет производить отрисовку данных
Выставляем его в режим "Пользовательский", переходим на вкладку "Отчет"
И пишем в "SQL запрос":
Код: Выделить всё
select * from #tmp2
Затем возвращаемся в первый отчет становимся на вкладку "Свойства" и выбираем наш второй отчет
в поле "Связанный отчет" Сохраняем и запускаем.
Получаем наш хитрый отчет с временной таблицей!


P.S.: Надо быть предельно внимательным при написании скрипта, потому что на этапе проверки он
выполняется. Поэтому нужно создать скрипт отдельно, например в квери аналайзере, а затем уже переносить
в отчет.
Интересно узнать Ваше мнение об этом?

Re: Динамическое формирование sql-запроса
если это работает! тогда просто обалдеть!
надо пробовать
мне пару дней надо, чтобы закрыть текучку. потом обязательно проверю. мне кажется, это решение.
Юрий, спасибо - это не то слово

надо пробовать
мне пару дней надо, чтобы закрыть текучку. потом обязательно проверю. мне кажется, это решение.
Юрий, спасибо - это не то слово

- Старик Крупский
- Активный участник
- Сообщения: 803
- Зарегистрирован: 27 июл 2006, 22:17
- Откуда: Москва
Re: Динамическое формирование sql-запроса
Сейчас точно не вспомню. Может быть это вообще было в f_ExecSQLSelect. Хотя... В понедельник на работе попробую
"Лучше меньше, да лучше" (C)
- Старик Крупский
- Активный участник
- Сообщения: 803
- Зарегистрирован: 27 июл 2006, 22:17
- Откуда: Москва
Re: Динамическое формирование sql-запроса
Вот таким образом у меня все работает:
f_EmbeddedSQLSelect ( this , select1 + select2 , '' , 'string_arr' )
+ f_RetrieveForm ( this , '' , 'string_arr' )
+ f_FormDataToArray ( this , 'string_arr' )
f_EmbeddedSQLSelect ( this , select1 + select2 , '' , 'string_arr' )
+ f_RetrieveForm ( this , '' , 'string_arr' )
+ f_FormDataToArray ( this , 'string_arr' )
"Лучше меньше, да лучше" (C)
Re: Динамическое формирование sql-запроса
Старик Крупский, а это, пардон, в какое место? у меня возникла ассоциация с формами в workflow. хотя... возможно, виной понедельник
- Anderyt
- Активный участник
- Сообщения: 777
- Зарегистрирован: 15 июл 2004, 13:15
- Используемое ПО: Lotsia PDM PLUS
- Откуда: Тюмень
- Контактная информация:
Re: Динамическое формирование sql-запроса
это уже мы начали говорить о докобороте?
select1 и select2 - это как раз куски запросов, да?
и что, можно в зависимости от значений каких то параметров включать и выключать определенные куски в итоговом запросе, так что ли?
select1 и select2 - это как раз куски запросов, да?
и что, можно в зависимости от значений каких то параметров включать и выключать определенные куски в итоговом запросе, так что ли?
лучше день потерять, потом за пять минут долететь!
- Старик Крупский
- Активный участник
- Сообщения: 803
- Зарегистрирован: 27 июл 2006, 22:17
- Откуда: Москва
Re: Динамическое формирование sql-запроса
to gali:
to Anderyt:
Ну да, вроде. Меня gali попросила вспомить, как из кусков запрос слепить, вот я и вспомнил. Теперь получается, что на твой вопрос положительный ответ.
Кстати, здесь сильно помогло то, что Лоция отключила проверку запросов в редакторе выражений. Раньше проверяли и что-то там не срасталось. Переменные на момент проверки были без значений и запрос определялся как ошибочный. Сейчас стало удобнее. Проверить запрос ведь можно и другими средствами.
Это я к этому. Ну и ессно в формы докоборота...и я попыталась втолкнуть часть запроса в параметр. Понимаю, глупо, но так нужно!
to Anderyt:
Ну да, вроде. Меня gali попросила вспомить, как из кусков запрос слепить, вот я и вспомнил. Теперь получается, что на твой вопрос положительный ответ.
Кстати, здесь сильно помогло то, что Лоция отключила проверку запросов в редакторе выражений. Раньше проверяли и что-то там не срасталось. Переменные на момент проверки были без значений и запрос определялся как ошибочный. Сейчас стало удобнее. Проверить запрос ведь можно и другими средствами.
"Лучше меньше, да лучше" (C)
- Anderyt
- Активный участник
- Сообщения: 777
- Зарегистрирован: 15 июл 2004, 13:15
- Используемое ПО: Lotsia PDM PLUS
- Откуда: Тюмень
- Контактная информация:
Re: Динамическое формирование sql-запроса
хе-хе, ну это тоже очень хорошо, что в докобороте можно 
а у меня проблема была в отчетах.. есть отчеты для поиска каких-либо объектов с помощью запроса, и вот надо было при построении запроса учитывать, какие аргументы заданы..
я так понимаю, f_EmbeddedSQLSelect для отчетов не подойдет?..

а у меня проблема была в отчетах.. есть отчеты для поиска каких-либо объектов с помощью запроса, и вот надо было при построении запроса учитывать, какие аргументы заданы..
я так понимаю, f_EmbeddedSQLSelect для отчетов не подойдет?..
лучше день потерять, потом за пять минут долететь!
Re: Динамическое формирование sql-запроса
2Anderyt
а ты не обратил внимание на совет Юрия? Мне кажется, это выход. Я просто не могу сейчас попробовать, буквально еще день
а ты не обратил внимание на совет Юрия? Мне кажется, это выход. Я просто не могу сейчас попробовать, буквально еще день
- Anderyt
- Активный участник
- Сообщения: 777
- Зарегистрирован: 15 июл 2004, 13:15
- Используемое ПО: Lotsia PDM PLUS
- Откуда: Тюмень
- Контактная информация:
Re: Динамическое формирование sql-запроса
нет, не обратил.. то ли просто не понял, о чем речь (реально не понял, кстати), то ли не понял, как это может помочь решить мою задачу...
лучше день потерять, потом за пять минут долететь!