Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
21.01.2009, 22:45
|
|||
---|---|---|---|
Комрады, вопрос по декларированию процедуры из скрипта ... |
|||
#18+
Стандартная декларация: DECLARE spu_xyz PROCEDURE FOR spu_xyz; EXECUTE spu_xyz; CLOSE spu_xyz; пишу окно в котором название процедуры - переменная т.е. что-то типа такого: string s_procedure_name s_procedure_name = dw_1.getitemstring(dw_1.getrow(), 'procedure_name') вообшем-то уже всё написал используя: .... бла-бла-бла ... DECLARE spu_procedure DYNAMIC PROCEDURE FOR SQLSA ; ... и т.д. всё работает, но внезапно возник вопрос, а можно ли, и если да, шо там за хитрый синтакс, использовать стандартную декларацию процедуры ... типа: DECLARE spu_xyz PROCEDURE FOR :s_procedure_name ; EXECUTE spu_xyz; CLOSE spu_xyz; Если у кого есть настроение ответить, зараннее пасиба. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.01.2009, 00:03
|
|||
---|---|---|---|
|
|||
Комрады, вопрос по декларированию процедуры из скрипта ... |
|||
#18+
voronk а можно ли, и если да, шо там за хитрый синтакс, использовать стандартную декларацию процедуры ... типа: DECLARE spu_xyz PROCEDURE FOR :s_procedure_name ; EXECUTE spu_xyz; CLOSE spu_xyz; Через ":" можно объявлять только параметры процедуры (если они есть). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.01.2009, 00:32
|
|||
---|---|---|---|
Комрады, вопрос по декларированию процедуры из скрипта ... |
|||
#18+
Если я Вас правильно понял, то Вы динамически хотите менять название процедуры? Если да, то была у меня аналогичная проблема. В общем я сделал процедуру заглушку, обьявил ее стандартным способом и туда передавал имя реальной процедуры. Уж не знаю, хорошо это было или плохо. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.01.2009, 10:26
|
|||
---|---|---|---|
Комрады, вопрос по декларированию процедуры из скрипта ... |
|||
#18+
я в некоторых случаях делаю создание datastore на процедуре Код: plaintext 1. 2. 3. 4.
можно и любую процедуру подцепить и запрос любой подпихнуть ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.01.2009, 17:40
|
|||
---|---|---|---|
Комрады, вопрос по декларированию процедуры из скрипта ... |
|||
#18+
edmikecaЕсли я Вас правильно понял, то Вы динамически хотите менять название процедуры? Если да, то была у меня аналогичная проблема. В общем я сделал процедуру заглушку, обьявил ее стандартным способом и туда передавал имя реальной процедуры. Уж не знаю, хорошо это было или плохо. 1. можно на ты и с маленькой буквы ... 2. спасибо за мысль. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.01.2009, 17:45
|
|||
---|---|---|---|
Комрады, вопрос по декларированию процедуры из скрипта ... |
|||
#18+
VanoRя в некоторых случаях делаю создание datastore на процедуре Код: plaintext 1. 2. 3. 4.
можно и любую процедуру подцепить и запрос любой подпихнуть Ну дык это когда надо больше чем один рекорд придащить обратно, мне retrieve() не требуетса, у меня обратно возврашаетса int и string: 1, 'Всё впорядке, кол-во рекордов:35' или 0, 'Краткое объяснение в чё проблема' ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.01.2009, 17:55
|
|||
---|---|---|---|
Комрады, вопрос по декларированию процедуры из скрипта ... |
|||
#18+
Вообщем 'Война окончена - всем спасибо.' Спасибо ребята что поучаствовали, оставлю так как написал с начала, вот, может кому пригодиЦЦа: l_row = dw_1.getrow() s_procedure_name = dw_1.getitemstring(l_row, 'procedure_name') l_import_batch = dw_1.getitemstring(l_row, 'import_batch') s_file_name = dw_1.getitemstring(l_row, 'file_name') /* Процедура имеет 3 параметра их и пассую ... */ s_sql = 'execute ' + s_procedure_name + ' @user_name=' + '?' + ',' + ' @import_batch=' + '?' + ',' + ' @file_name=' + '?' PREPARE SQLSA FROM :s_sql using sqlca; DESCRIBE SQLSA INTO SQLDA ; DECLARE spu_procedure DYNAMIC PROCEDURE FOR SQLSA ; i_rc = SQLDA.SetDynamicParm(1, s_user_name) i_rc = SQLDA.SetDynamicParm(2, l_import_batch) i_rc = SQLDA.SetDynamicParm(3, s_file_name) EXECUTE DYNAMIC spu_procedure USING DESCRIPTOR SQLDA ; IF sqlca.Sqlcode <> 0 THEN Messagebox('Error', 'Error Code: ' + String(Sqlca.Sqlcode) + '~nError Text: ' + sqlca.sqlerrtext, exclamation!) ELSE FETCH spu_procedure INTO :i_res, :s_msg; IF sqlca.Sqlcode <> 0 THEN Messagebox('Error', 'Error Code: ' + String(Sqlca.Sqlcode) + '~nError Text: ' + sqlca.sqlerrtext, exclamation!) END IF END IF CLOSE spu_procedure; ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=15&mobile=1&tid=1336405]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 161ms |
0 / 0 |