Как создать динамическое окно данных с помощью хранимой процедуры с параметрами

Мои проблемы: я пытаюсь создать окно данных динамически на основе SP с параметрами. Я мог бы динамически создавать окно данных из SP без параметров, но с параметрами я получаю эту ошибку - «Не удается получить параметры процедуры»

Любые предложения, пожалуйста?

Мой код:

sql_syntax = "execute starsdba.SP_PROVIDER_LIST; as_Sql= From Users"

presentation_str = "style(type=grid)"

presentation_str = &
"style( type=Grid &
Horizontal_spread = 25 &
Header_bottom_margin = 15 &
Header_top_margin = 15 ) &
datawindow( units=2 &
Color= 67108864) &
column( Font.Face='system' &
Font.Height=-10 &
Font.Weight=700) &
text( Font.Face='system' &
Font.Height=-10 &
Font.Weight=700 &
Border=6)"

dwsyntax_str = SQLCA.SyntaxFromSQL(sql_syntax, &
presentation_str, ERRORS)

IF Len(ERRORS) > 0 THEN
MessageBox("Caution", &
"SyntaxFromSQL caused these errors: " + ERRORS)
RETURN

END IF

person user2379643    schedule 28.05.2013    source источник


Ответы (2)


Я не знаю, подойдет ли ваш способ для создания DW. Но в любом случае, чтобы использовать хранимую процедуру в Powerbuilder, вы должны сначала выполнить свой SQL stmt и попробовать, правильно ли он вернет выбор. Я не знаю, будет ли это работать таким образом, поскольку я не пробовал это делать.

Чтобы узнать, как выполнить SQLSTMT, попробуйте эту ссылку http://powerbuilder.hyderabad-colleges.com/Advanced-PowerBuilder-2-15-50.html

чтобы увидеть, как выполнить SP в Powerbuilder.

person Sid    schedule 28.05.2013
comment
Как я упоминал ранее, мой синтаксис работает, когда я не использую никаких параметров для хранимой процедуры, но знаете ли вы синтаксис при выполнении хранимой процедуры с параметрами для динамического окна данных? - person user2379643; 28.05.2013

Ваш синтаксис SQL должен включать ссылку на параметры, указанные парой имя/значение "col_name = :parameter". Я не вижу никаких параметров в примере кода, который вы разместили...

Я нарисовал простой dw для SP в SQL Anywhere sampleDB, и SQLSyntax выглядит следующим образом:
"execute dba.sp_product_info;0 prod_id = :prod_id"

person NoazDad    schedule 28.05.2013
comment
Спасибо Пол за ваше предложение, но я передал параметр следующим образом: sql_syntax = execute starsdba.SP_PROVIDER_LIST; as_Sql= From Users Вот как я передал бы его в строке, я не могу использовать : поскольку я передаю переменную. Пожалуйста, дайте мне знать, как это можно сделать. У вас есть синтаксис для создания окна данных на основе хранимой процедуры, которая будет принимать параметры. Я пробовал отправлять параметры разными способами, но получаю синтаксическую ошибку. Пожалуйста, порекомендуйте. - person user2379643; 28.05.2013