powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / динамически создать datawindow
13 сообщений из 13, страница 1 из 1
динамически создать datawindow
    #32774618
Фотография Deosfen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую всех!
Есть такой вопрос, есть куча таблиц, для которых один стиль grid, как динамически построить datawindow если у меня есть SQL запрос.
...
Рейтинг: 0 / 0
динамически создать datawindow
    #32774647
Guest_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
смотрите в Help'e:
transaction.SyntaxFromSQL ( sqlselect, presentation, err )
integer dwcontrol.Create ( string syntax {, string errorbuffer } )
...
Рейтинг: 0 / 0
динамически создать datawindow
    #32774960
dGrichine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторtransaction.SyntaxFromSQL ( sqlselect, presentation, err )

как динамически получить описание синтаксиса datawindow из SQL выражения с retrieve аргументами?
кто-нибудь нашел решение?
...
Рейтинг: 0 / 0
динамически создать datawindow
    #32775072
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
string ls_temp

ls_syntax = dw_1.Describe("DataWindow.Syntax")

//Здесь меняем что нужно в ls_syntax

dw_1.Create(ls_syntax)
...
Рейтинг: 0 / 0
динамически создать datawindow
    #32775262
Guest_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторкак динамически получить описание синтаксиса datawindow из SQL выражения с retrieve аргументами? кто-нибудь нашел решение?
А зачем Вам, собственно говоря, retrieve аргументы?
Формируя SQL-запрос, подставляете в него необходимые аргументы, динамически формируете dataWindow, с помощью modify(...) донастраиваете DW, как Вам нужно и выбираете данные, с помощью retrieve(), совершенно безо всяких retrieve аргументов.

PS. Или я Вас как-то не правильно понял.
...
Рейтинг: 0 / 0
динамически создать datawindow
    #32776034
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guest_2А зачем Вам, собственно говоря, retrieve аргументы?
Формируя SQL-запрос, подставляете в него необходимые аргументы, динамически формируете dataWindow, с помощью modify(...) донастраиваете DW, как Вам нужно и выбираете данные, с помощью retrieve(), совершенно безо всяких retrieve аргументов.


Это плохая практика. При интенсивной работе с разными подставляемыми значениями кэш скомпилированных запросов СУБД будет забиваться запросами, которые скорее всего никогда не будут повторно использоваться.
А аргументы в DW - это честные bind-переменные (если не включен DisableBind)
...
Рейтинг: 0 / 0
динамически создать datawindow
    #32776288
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky Guest_2А зачем Вам, собственно говоря, retrieve аргументы?
Формируя SQL-запрос, подставляете в него необходимые аргументы, динамически формируете dataWindow, с помощью modify(...) донастраиваете DW, как Вам нужно и выбираете данные, с помощью retrieve(), совершенно безо всяких retrieve аргументов.


Это плохая практика. При интенсивной работе с разными подставляемыми значениями кэш скомпилированных запросов СУБД будет забиваться запросами, которые скорее всего никогда не будут повторно использоваться.
А аргументы в DW - это честные bind-переменные (если не включен DisableBind)

Ерунда это. Именно как Guest_2А написал и надо делать. Если динамически формируете SQL-запрос и из него динамически же делаете datawindow, то зачем с аргументами возиться. WHERE clause подправил и вперёд...
...
Рейтинг: 0 / 0
динамически создать datawindow
    #32776355
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филипп,
при всем уважении, ты не прав.
Anatoly Moskovsky совершенно корректно указал на негативный аспект.
Если не лень - можно аргументированно возразить...
А так бросил свысока "Ерунда все это." и гордо удалился.
То ли сам не врубился, то ли знает что-то такое чего мы не знаем.
...
Рейтинг: 0 / 0
динамически создать datawindow
    #32776370
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗоринАндрейФилипп,
при всем уважении, ты не прав.
Anatoly Moskovsky совершенно корректно указал на негативный аспект.
Если не лень - можно аргументированно возразить...
А так бросил свысока "Ерунда все это." и гордо удалился.
То ли сам не врубился, то ли знает что-то такое чего мы не знаем.


Просто нельзя одной жопой на 2х стульях сидеть:
- Хошь динамически создать datawindow с помощью SyntaxFromSQL - правь WHERE clause и забудь про retrieve аргументов.
- Хошь retrieve аргументов - забудь про SyntaxFromSQL.

А насчет ерунды, так это я насчёт вот этого безапелляционного утверждения- авторЭто плохая практика
будет кэш СУБД забиваться запросами, которые скорее всего никогда не будут повторно использоваться , ну и дальше что. У нас ВСЕ поисковые окна в продукте сделаны с правкой WHERE clause, вариаций уйма, и ничего с несчастным кэш не стало...
...
Рейтинг: 0 / 0
динамически создать datawindow
    #32776453
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже давно все оптимизаторы современных СУБД при компиляции запросов смотрят на использованные в нем константы и не принимают запрос за другой. В той же ASA динамический SQL летает на ура и естественно биндами в WatcomSQL и не пахнет. Единственное, где пока прихрамывает динамический SQL и бинды ускоряют процесс насколько мне известно - MSSQL и то, возможно в Юконе это дело поправят.
...
Рейтинг: 0 / 0
динамически создать datawindow
    #32776467
Фотография Deosfen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем, я использовал совет Guest_2
...
Рейтинг: 0 / 0
динамически создать datawindow
    #32777043
dGrichine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_2А зачем Вам, собственно говоря, retrieve аргументы?
Как правильно сказали Anatoly Moskovsky и ЗоринАндрей, хотелось бы избавиться от возможных негативных последствий от неиспользования bind переменных в динамических запросах...

на сегодняшний момент динамические запросы формируются путем простого изменения WHERE clause... и до сего момента считал, что отсутствие bind переменных является существенным недостатком, от которого, со временем, хотелось бы избавиться... время пришло :), поэтому я и вернулся к этой теме...

Но, после высказываний ASCRUS о возможностях современных баз данных обходить литералы в запросе и заменять их bind переменными в момент разбора и после дополнительного изучения статей по возможностям Oracle 9i пришел к выводу, что пока стоит отложить этот вопрос до лучших времен...
не такой уж это недостаток... тем более у меня система больше похожа на DSS, а не OLTP...

Спасибо
...
Рейтинг: 0 / 0
динамически создать datawindow
    #32777741
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSЕдинственное, где пока прихрамывает динамический SQL и бинды ускоряют процесс насколько мне известно - MSSQL и то, возможно в Юконе это дело поправят.
Кстати, все это, как говорится, палка о двух концах. Дело в том, что при генерации плана запроса с параметрами оптимизатор принимает некое их "усредненное" значение. Поэтому имея
Код: plaintext
SELECT * FROM R WHERE R.A >= :a and R.A <= :b
и не зная точных значений :a и :b мы не можем точно оценить размер выборки (возможны значения от 0 до select count(*) from R). Соответственно, если еще соединять R с парой таблиц, то мы не сможем выбрать оптимальный порядок соединения для конкретных значений :a и :b (а, между прочим, можем очень сильно проиграть по скорости).
dGrichineтем более у меня система больше похожа на DSS, а не OLTP
...которые характеризуются значительно большими объемами данных, по сравнению с OLTP, соответственно, если мы промахнемся с планом запроса, то можем ооооочень долго ждать...
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / динамически создать datawindow
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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