2013-06-09 4 views
0

Я новичок в PowerBuilder 10.5, поэтому у меня есть вопрос ... Я создал график DataWindow. Это обычная модель графа с простым кодом SQL.Граф PowerBuilder DataWindow

SELECT data1, data2 FROM table1, table2; 

Теперь мне нужно попасть в мой «СТАРТ» командной кнопке щелкнул события и написать такое заявление, в котором назвал бы мой DataWindow при простом условии:

WHERE key1=key2. 

Любые советы? Я пытаюсь с инструкциями «SETsql»?

+0

HI. Не совсем понятно, что вы имеете в виду. Вы хотите получить запись с идентификатором, чем вам нужен аргумент поиска. Или что вам нужно. Не могли бы вы объяснить это более подробно? – DARKinVADER

+0

Мне нужно получить простой график x-y. Значение Y - количество продуктов, x город, где они происходят. Я вызываю два значения в синтаксисе SQL моего окна данных. Теперь в powerbuilder в событии cb_start мне нужно что-то вроде ... «dw_name.SetSqlSelect()» и «GetSqlSelect», и где-то в этой строке мне нужно добавить условие для исходного оператора SQL. Нет, у меня нет аргументов поиска. –

+0

Привет, мне все еще не совсем понятно (что это значит: вызов имеет два значения в синтаксисе SQL моего окна данных), но если вы хотите добавить критерии «где» к вашему окну данных, вы можете использовать SetSQLSlecet, но если эти аргументы являются обязательными, вы должны использовать аргументы Retrieval, потому что использование этого гораздо проще, чем ручная модификация оператора sql. – DARKinVADER

ответ

1

Если приведенный выше код является истинным, проблема в том, что вы переписываете переменную ls_sql с критериями where. Ls_sql должен содержать всю инструкцию sql, включая select * from xytable, где key = 1 . Таким образом, вы должны ПРИЛОЖИТЬ критерии (но я думаю, что вам следует искать аргументы, это проще)

+0

Да, вы правы, «select *» должен был быть включен. Большое спасибо!! –

0

Существует более простой способ, чем использование инструкции SetSQL(), потому что SetSQL должен соответствовать столбцам, определенным в DW (вы можете создавать их динамически, но поскольку вы заявляете, что являетесь новым для PB, я пропущу эту возможность):

  • Если ваш SQL оператор всегда одинакова и не нужен ключ, предоставленный код или пользователем, вы можете просто определить SELECT непосредственно в художнике DW (меню Design/Data source, то в вашем cb_start.clicked() вы только звонок your_dw.retrieve()

  • , если вам нужен ключ, который может меняться, определите его в Retrieval arguments DW, когда в data source view: выберите тип данных и имя (например, thing) и в синтаксисе DW SELECT вы можете сказать WHERE key1=:thing (обратите внимание на двоеточие), а в коде pbscript в событии clicked() добавить значение аргумента в аргументы извлечения your_dw.retrieve("42"). Очевидно, вы можете заменить литерал на переменную правильного типа, которая может быть определена и заполнена ранее в коде. Если вы не указали значение возвращаемых аргументов через оператор retrieve(), DW попросит его (или их) в диалоговом окне в начале извлечения.

+0

Спасибо за ответ, к сожалению, я был вынужден использовать SetSQL. Вы многое помогли в другой части моего задания, ты :) –

+0

Хотя, я должен сказать, что не могу понять, почему можно использовать инструкцию «SetSQL», когда гораздо проще просто написать весь код SQL в источнике данных DataWindow и получить его. –

Смежные вопросы