powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Запрос с параметрами для datawindow
25 сообщений из 60, страница 2 из 3
Запрос с параметрами для datawindow
    #35986855
Лампочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
очень тяжело, когда не знаешь:)
даже не представляете как)))
а еще очень забавно смотреть, как разные умные люди заявляют совершенно противоположные вещи)))
всем спасибо за помощь, думаю - разберусь!
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35986943
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лампочкаочень тяжело, когда не знаешь:)
даже не представляете как)))
Всем поначалу тяжело с PB - справитесь.

Лампочкаа еще очень забавно смотреть, как разные умные люди заявляют совершенно противоположные вещи)))
Ну, например утверждение, что электроны - и частицы и волны, тоже на первый взгляд выглядит забавно :)
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35987172
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛампочкаВ хелпе нашла только то, что можно передать в retrieve параметры, если они определены у datawindow. Никак по-другому нельзя? У меня уже много форм с datawindow, а теперь посредством параметризованных запросов надо фильтры накладывать..Попробуйте использовать такой подход .

Если это Вам не подходит, то можно в Вашем предке, от которого унаследованы DW в проекте (у Вас ведь есть общий предок для всех DW? ;), перехватывать событие SQLPreview, в котором просто можно модифицировать запрос примерно таким способом (если синтаксис поддерживается сервером):

Код: plaintext
1.
2.
3.
if sqltype = PreviewSelect!	then
this.modify("DataWindow.table.select='SELECT * FROM (" + SQLSyntax	+ ") WHERE " + <ВАШИ УСЛОВИЯ ФИЛЬТРАЦИИ> + " ' ")
end if
Разумеется, надо не забыть правильно экранировать кавычки, о чем сказал Анатолий Московский
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35988947
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PL99,

Ещё проще написать в datawindow SQLе
Код: plaintext
1.
2.
SELECT	...
  FROM	...
  WHERE  1 = 1 
а потом просто ANDать и всё :-)
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35989227
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ФилиппPL99,

Ещё проще написать в datawindow SQLе
Код: plaintext
1.
2.
SELECT	...
  FROM	...
  WHERE  1 = 1 
а потом просто ANDать и всё :-)
Мне кажется, что однозначно надо ORать...
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35989232
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyЛампочкаочень тяжело, когда не знаешь:)
даже не представляете как)))
Всем поначалу тяжело с PB - справитесь.
Лампочка , поверьте
РВ - это действительно самое легкое из того, что можно осилить до "глубоких интимных отношений" с БД.
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35989298
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyВсем поначалу тяжело с PB
Если с эхотагом тяжело, то с чем же тогда будет легко ;)?
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35989343
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim2000Anatoly MoskovskyВсем поначалу тяжело с PB
Если с эхотагом тяжело, то с чем же тогда будет легко ;)?
Многие новички пытаются программировать в PB как с 3GL. А на этом уровне PB предоставляет мало средств по сравнению с другими языками общего назначения, да и со скоростью проблемы.
Опыт достаточный для эффективного использования 4GL возможностей PB появляется далеко не сразу.
(См. какой разброс решений был в теме про уникальность в массиве, пока не пришел Филипп и не привел решение из двух элементарных операций)

Кроме того, как известно, люди незнакомые с системой, постоянно натыкаются на ее баги (а я думаю излишне рассказывать про баги в PB), пока подсознание не научится рефлекторно избегать скользких мест :)
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35992314
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky пишет:

> Многие новички пытаются программировать в PB как с 3GL.

А это применимо для любого языка и СУБД: не нужно программировать на
языке X, как будто это язык Y (например, не стоит писать на Delphi, как
на PB).
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35992334
Лампочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в этом форуме был совет модифицировать datawindow.table.select.
Я попытала счастья, ничего не вышло, потом прочитала в хелпе про retrieval arguments, что они "Not settable in PowerScript" (это правда?:))
Получается, что все-таки остается "экранировать кавычки" и дописывать sqlselect для каждого случая, как у меня и было сделано.
Ну либо пересоздать datawindow, заранее определив параметры.
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35992432
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лампочка пишет:

> retrieval arguments, что они "Not settable in PowerScript"

Я об этом написал во втором сообщении топика ;).

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

Именно так. Точнее, не "пересоздать", а просто добавить где надо параметры.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35992443
Лампочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim2000,
пожалуйста, объясни, что ты подразумеваешь под "добавить, где надо, параметры?"
Когда у меня datawindow содержит retrieval arguments и я пытаюсь добавить туда еще, PB уже предлагает сохранить окно как query..
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35992466
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лампочка пишет:

> пожалуйста, объясни, что ты подразумеваешь под "добавить, где надо,
> параметры?"

Зайти в DW, открыть SQL-запрос, Design -> Retrieval arguments, добавить
аргументов по вкусу, закрыть форму, добавить аргументы в запрос,
сохранить DW.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35992641
_Лампочка/_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо:)
я неправильно одну штуку делала, поэтому никак и не доходило.
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35993465
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ФилиппPL99,

Ещё проще написать в datawindow SQLе
Код: plaintext
1.
2.
SELECT	...
  FROM	...
  WHERE  1 = 1 
а потом просто ANDать и всё :-)К сожалению, так можно сделать только в простейших случаях. Даже тривиальный UNION уже требует применять специальные техники. Кроме того, сомневаюсь, что у топикстартера большинство DW содержат запрос в синтакс-моде. Перехватывание же события SQLpreview позволяет обойти большинство проблем, связанных с переделыванием имеющихся DW.
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35994979
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PL99ФилиппPL99,

Ещё проще написать в datawindow SQLе
Код: plaintext
1.
2.
SELECT	...
  FROM	...
  WHERE  1 = 1 
а потом просто ANDать и всё :-)К сожалению, так можно сделать только в простейших случаях.
Чепуха...
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35996020
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ФилиппPL99К сожалению, так можно сделать только в простейших случаях.
Чепуха...Аргументированно, ничего не скажешь.

Куда прикажете подставить дополнительное условие в запрос вида
Код: plaintext
1.
2.
3.
select ...
from table
where  1 = 1 
order by field

А в чуть более сложный?
Код: plaintext
1.
2.
3.
select ...
from table1, table2
where table1.f1=table2.f1
order by field

Еще чуть-чуть экстрима:
Код: plaintext
1.
2.
3.
4.
select ...
from table1, table2
where table1.f1=table2.f1
and table2.f2 in (select table3.f2 from table3 where table3.f3 = value)
order by field

Разборщик написать? Несколько трудозатратное решение, isn't it?
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35997515
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PL99,
Я не понял вы о чём кричите. Ищется строка where 1=1 и добавляется нужное AND (CLAUSE) ...
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35997628
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ФилиппPL99,
Я не понял вы о чём кричите. Ищется строка where 1=1 и добавляется нужное AND (CLAUSE) ...Спокойнее, Филипп, я не кричу.
Вот это
PL99Попробуйте использовать такой подход .не то же самое, что предлагаете Вы?

Речь, всего навсего, идет о том, чтобы перехватывать не подготовленный заранее запрос, оборачивая его в запрос верхнего уровня.
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35997780
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ФилиппPL99,
Я не понял вы о чём кричите. Ищется строка where 1=1 и добавляется нужное AND (CLAUSE) ...
Код: plaintext
1.
select 'where 1=1'
where  1 = 1 
?
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35998171
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, ладно вам, девушке ведь все-равно:)
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35998382
Лампочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не то чтобы всё равно, но столько новых вопросов и задач..:)
а в datawindow я решила добавить retrieval arguments.
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35999286
Лампочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и все-таки я не успокоилась:)
и ответ найти не могу.
значит, либо я пишу запрос в setsqlselect, формируя его добавлением "and <условие>",
либо я меняю describe и пересоздаю datawindow с новыми аргументами, что, по-моему, совсем плохо делать для каждого фильтра.
либо я завожу у datawindow retrieval arguments, но вот тут у меня вопрос:
условия фильтра будут вида <либо поле = параметру, либо параметр не передан>, где второе "либо" должно выдавать все значения. Когда я пишу в WHERE:
column1 = :param1 or isNull(:param1), второе условие отказывается сохраняться, оно просто исчезает.
Как быть?
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35999328
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛампочкаКогда я пишу в WHERE:
column1 = :param1 or isNull(:param1), второе условие отказывается сохраняться, оно просто исчезает.
Как быть?
В SQL нету IsNull(:param1), там есть :param1 IS NULL
...
Рейтинг: 0 / 0
Запрос с параметрами для datawindow
    #35999427
Лампочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а у Вас это работает?
я пробовала оба варианта - при выходе из where условие на NULL не сохраняется.
Опять что-то не так делаю?
...
Рейтинг: 0 / 0
25 сообщений из 60, страница 2 из 3
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Запрос с параметрами для datawindow
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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