powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Запрос с параметрами для datawindow
25 сообщений из 60, страница 1 из 3
Запрос с параметрами для datawindow
    #35985778
Лампочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В хелпе нашла только то, что можно передать в retrieve параметры, если они определены у datawindow. Никак по-другому нельзя? У меня уже много форм с datawindow, а теперь посредством параметризованных запросов надо фильтры накладывать..
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35985785
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лампочка пишет:

> В хелпе нашла только то, что можно передать в retrieve параметры, если
> они определены у datawindow. Никак по-другому нельзя?

Нет.

> форм с datawindow, а теперь посредством параметризованных запросов надо
> фильтры накладывать..

Нужно было думать раньше. Теперь - переделывать.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35985981
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛампочкаВ хелпе нашла только то, что можно передать в retrieve параметры, если они определены у datawindow. Никак по-другому нельзя? У меня уже много форм с datawindow, а теперь посредством параметризованных запросов надо фильтры накладывать..
самому формировать запрос и SetSQLSelect
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35985991
Лампочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я формирую, допустим, setsqlselect с параметрами, присваиваю его datawindow, а как дальше передать параметры?
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35986022
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сразу вписать в select
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35986044
Лампочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я во всем этом новичок, но уже знаю, что это подвесит сервер - это раз, а кроме того, параметры есть стринговые - как обходить все заковырки вроде кавычки в строке или апострофа?
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35986120
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лампочка пишет:

> я во всем этом новичок, но уже знаю, что это подвесит сервер - это раз,
> а кроме того, параметры есть стринговые - как обходить все заковырки
> вроде кавычки в строке или апострофа?

Поэтому я сразу сказал "нет". Не лезь в то, что ты не осилишь.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35986138
Лампочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда я не совсем понимаю, что значит "нет" - что "нельзя" или что "не осилю"?:)
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35986162
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
например вместо ретрайва с параметром
Код: plaintext
dw_1.retrieve(sle_1.text)

пишите в скрипте у себя
Код: plaintext
1.
2.
3.
string ls_sql
ls_sql = 'select col_1, col_2 from table where col_3 = ' + sle_1.text
dw_1.SetSQLSelect(ls_sql)
dw_1.retrieve()
ну и конечно dw должна быть без параметров, или по ходу сделать ее без параметров
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35986195
Лампочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот-вот-вот, вот тогда он на кавычке и вывалится)
ну не понимаю я, как же так - почему нельзя передавать параметры в DW по ходу дела, не определяя их заранее??
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35986239
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VanoRнапример вместо ретрайва с параметром
Код: plaintext
dw_1.retrieve(sle_1.text)

пишите в скрипте у себя
Код: plaintext
1.
2.
3.
string ls_sql
ls_sql = 'select col_1, col_2 from table where col_3 = ' + sle_1.text
dw_1.SetSQLSelect(ls_sql)
dw_1.retrieve()
ну и конечно dw должна быть без параметров, или по ходу сделать ее без параметров
Лучше так
Код: plaintext
ls_sql = dw_1.GetSQLSelect() + 'where ' + sle_1.text
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35986260
Лампочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не понимаете вы меня..а те, которые поняли, говорят, что нельзя уже ничего сделать)
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35986331
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лампочкавот-вот-вот, вот тогда он на кавычке и вывалится)
ну не понимаю я, как же так - почему нельзя передавать параметры в DW по ходу дела, не определяя их заранее??
не пойму... на какой кавычке?
перед ковычкой можно поставить ~

и, если параметры уже определены в dw, то
сделать dw.Describe("DataWindow.Syntax"), найти там arguments=, поудалять все, и подставить свой select
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35986336
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VanoR найти там arguments=, поудалять все, и подставить свой select
или, если уж так хочется, новые аргументы вставить
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35986337
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лампочкане понимаете вы меня..а те, которые поняли, говорят, что нельзя уже ничего сделать)
А-а так Вы про это? ;)
А может всё-таки разъясните про что? В смысле - что не выходит?
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35986345
altero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лампочка,

dw.Describe("DataWindow.Table.Select") - получить оригинальный синтаксис запроса
и добавлять или отсекать свои параметры через WHERE
далее по help-у.
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35986421
Лампочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ладно, пишу еще раз..может, это я вас не понимаю?:)
у меня dw построено на sql select и нет у него никаких параметров (я просто выбирала в powerbuildere столбцы таблицы).
а теперь необходимо наложить фильтр.
значения для фильтрации задаются пользователем, соответственно - нужно передать в dw запрос, в котором уже будут параметры.
я так поняла, что если нужны параметры - их надо при создании dw определять как retrieval arguments, но у меня уже куча dw, для которых я ничего не определяла.
вопрос в том, можно ли сейчас как-то без пересоздания dw передать им запросы с параметрами (то, что должны быть параметры - это, можно сказать, прописано в ТЗ)?
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35986438
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alteroЛампочка,
dw.Describe("DataWindow.Table.Select") - получить оригинальный синтаксис запроса
и добавлять или отсекать свои параметры через WHERE
далее по help-у.
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35986566
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лампочкане понимаете вы меня..а те, которые поняли, говорят, что нельзя уже ничего сделать)
Перед подстановкой текста литерала в SQL запрос, его надо экранировать - заменить символы имеющие специальное значение на эквивалентные, но безопасные комбинации символов.
В общем случае эта операция зависит от используемой СУБД.
Но если ограничиться кавычками ('), то в большинстве случаев достаточно заменить все кавычки на пары кавычек ('', это не двойная кавычка, а две одиночных)

Для этого у меня например есть специальная функция для квотирования литералов для передачи в Oracle SQL. Она строки берет в кавычки, экранирует внутренние кавычки, в числах заменяет "," на "." чтобы не зависело от региональных настроек, время и дату представляет в нужном формате.
Можете ее доработать для вашей СУБД.
Использовать ее просто:

ls_sql = "select ... where name = " + to_ora(" строка с 'кавычками' ")
на выходе получится
select ... where name = ' строка с ''кавычками'' '
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35986664
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лампочка
Попробуйте оставить всё как есть с DW, а введите фильтр до события dw_1.Retrieve(), например так:
Код: plaintext
dw_1.Object.DataWindow.Table.Filter = "column = 'abc'"
в этом случае в DataWindow после Retrieve() должны попасть только отфильтрованные строки, т.е. такой фильтр работает до попадания строк в DataWindow (в отличии от тандема функций SetFilter() и Filter(), которые фильтруют данные уже находящиеся в DataWindow).
Если для данного DataWindow надо изменить условие фильтра, то придется снова вызвать Retrieve().
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35986675
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AISЛампочка
Попробуйте оставить всё как есть с DW, а введите фильтр до события dw_1.Retrieve(), например так:
Код: plaintext
dw_1.Object.DataWindow.Table.Filter = "column = 'abc'"
в этом случае в DataWindow после Retrieve() должны попасть только отфильтрованные строки, т.е. такой фильтр работает до попадания строк в DataWindow (в отличии от тандема функций SetFilter() и Filter(), которые фильтруют данные уже находящиеся в DataWindow).
Если для данного DataWindow надо изменить условие фильтра, то придется снова вызвать Retrieve().
А это что за бред? ВЕСЬ Result Set попадёт в DataWindow, а то что не удовлетворяет условия фильтра переместится в Filter Buffer. Если преследуется цель ограничить Result Set, то ваше предложение - танцы с бубном ...
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35986715
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филипп
А это что за бред? ...
Это цитата из Help:
Код: plaintext
1.
2.
The Table.Filter property filters the data before it is retrieved.
To filter data already in the DataWindow's buffers,
use the Filter property or the SetFilter and Filter methods.
Я не правильно перевёл?
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35986785
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перевели может и правильно, но сами то пробовали?
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35986802
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ФилиппПеревели может и правильно, но сами то пробовали?
Когда-то пробывал, когда читал Help, но если честно, то в Filter Buffer не заглядывал. 8(
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35986841
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филипп прав, весь резалтсет будет получен и только после этого отфильтрован.
Глупо получать 100 тысяч ради одной строки
Лампочкая во всем этом новичок, но уже знаю, что это подвесит сервер - это раз
Да уж тяжело когда не знаешь....
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
25 сообщений из 60, страница 1 из 3
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Запрос с параметрами для datawindow
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]