|
|
|
Получение значиния out-параметра хранимой процедуры...
|
|||
|---|---|---|---|
|
#18+
Как в коде получить значение out-параметра хранимой процедуры? А именно, дано: PowerBuilder 9.0, Adaptive Server Anywhere 8.0.2 Хранимая процедура имеет следующий вид: create procedure dbo.Test(in ad_base numeric(15), out ad_newPK numeric(15)) begin set ad_newPK = ad_base + 1; end; Вопрос - как вызвать данную хранимую процедуру из Билдера с воможностью получения ad_newPK? Вариант, типа, "SUBROUTINE dbo.Test (decimal ad_base, REF decimal ad_newPK) RPCFUNC" не подходит... Найденый в хелпе вариант declare&execute для ASA не привнес ясности: DECLARE logical_procedure_name PROCEDURE FOR {@rv = } SQL_Server_procedure_name @Param1 = value1, @Param2 = value2 , ... {USING transaction_object}; Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2006, 16:42 |
|
||
|
Получение значиния out-параметра хранимой процедуры...
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2006, 16:50 |
|
||
|
Получение значиния out-параметра хранимой процедуры...
|
|||
|---|---|---|---|
|
#18+
Antoxa Вариант, типа, "SUBROUTINE dbo.Test (decimal ad_base, REF decimal ad_newPK) RPCFUNC" не подходит... Почему? Самый лучший вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2006, 20:29 |
|
||
|
Получение значиния out-параметра хранимой процедуры...
|
|||
|---|---|---|---|
|
#18+
Филипп wrote: > Почему? Самый лучший вариант. Российская традиция: делать через зад всё, кроме клизмы . Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2006, 20:58 |
|
||
|
Получение значиния out-параметра хранимой процедуры...
|
|||
|---|---|---|---|
|
#18+
Филипп Antoxa Вариант, типа, "SUBROUTINE dbo.Test (decimal ad_base, REF decimal ad_newPK) RPCFUNC" не подходит... Почему? Самый лучший вариант. Приложение работает должно работать с тремя СУБД (ASA, Oracle, MSSQL). Упомянутая хранимая процедура присутствует только в ASA. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2006, 15:20 |
|
||
|
Получение значиния out-параметра хранимой процедуры...
|
|||
|---|---|---|---|
|
#18+
А изменить процедуру и не использовать OUT параметры? Код: plaintext 1. 2. 3. 4. И соответственно получать значение через FETCH или DS. Будет работать универсально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2006, 15:31 |
|
||
|
Получение значиния out-параметра хранимой процедуры...
|
|||
|---|---|---|---|
|
#18+
Локшин Марк Код: plaintext 1. 2. 3. 4. 5. 6. Предложенный вариант подходит для MSSQL, но не для ASA. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2006, 15:47 |
|
||
|
Получение значиния out-параметра хранимой процедуры...
|
|||
|---|---|---|---|
|
#18+
EstetsА изменить процедуру и не использовать OUT параметры? Код: plaintext 1. 2. 3. 4. И соответственно получать значение через FETCH или DS. Будет работать универсально. Допустим, изменение процедуры невозможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2006, 15:57 |
|
||
|
Получение значиния out-параметра хранимой процедуры...
|
|||
|---|---|---|---|
|
#18+
Antoxa Филипп Antoxa Вариант, типа, "SUBROUTINE dbo.Test (decimal ad_base, REF decimal ad_newPK) RPCFUNC" не подходит... Почему? Самый лучший вариант. Приложение работает должно работать с тремя СУБД (ASA, Oracle, MSSQL). Упомянутая хранимая процедура присутствует только в ASA. Ну и что? Почему при этом нельзя использовать RPC? Сделать три transaction object и объявить в каждом соответствующие RPC. Сделать все три transaction object наследниками одного универсального. Создавать один из трех объектов в зависимости от СУБД и замещать SQLCA. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2006, 16:01 |
|
||
|
Получение значиния out-параметра хранимой процедуры...
|
|||
|---|---|---|---|
|
#18+
ЗоринАндрей Antoxa Филипп Antoxa Вариант, типа, "SUBROUTINE dbo.Test (decimal ad_base, REF decimal ad_newPK) RPCFUNC" не подходит... Почему? Самый лучший вариант. Приложение работает должно работать с тремя СУБД (ASA, Oracle, MSSQL). Упомянутая хранимая процедура присутствует только в ASA. Ну и что? Почему при этом нельзя использовать RPC? Сделать три transaction object и объявить в каждом соответствующие RPC. Сделать все три transaction object наследниками одного универсального. Создавать один из трех объектов в зависимости от СУБД и замещать SQLCA. Меня не интересуют "обходные маневры". Меня интересует ответ по существу на поставленный вопрос. Неужели никто никогда не пробовал достучаться до out-параметра хранимой процедуры через DECLARE/EXECUTE на ASA?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2006, 16:28 |
|
||
|
Получение значиния out-параметра хранимой процедуры...
|
|||
|---|---|---|---|
|
#18+
AntoxaНеужели никто никогда не пробовал достучаться до out-параметра хранимой процедуры через DECLARE/EXECUTE на ASA?! А смысл? На MS, ORACLE, Sybase невохможно использовать один серверный скрипт, соответственно и клиентская часть будет отличаться. И попытаться найти универсальное решение только из академического интереса... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2006, 16:33 |
|
||
|
Получение значиния out-параметра хранимой процедуры...
|
|||
|---|---|---|---|
|
#18+
PBNew SPInvocation Ответ по существу на поставленный вопрос: Embedded SQL это зло. Пытаться заставить его работать - это и есть "обходные маневры". Все можно сделать через datawindow, RPC и stored procedures. На клиенте SQL-кода должно быть минимум. В идеале - только stored proc для DW и DS select, stored proc для DW Update и stored proc через RPC для всего остального. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2006, 16:44 |
|
||
|
Получение значиния out-параметра хранимой процедуры...
|
|||
|---|---|---|---|
|
#18+
AntoxaНеужели никто никогда не пробовал достучаться до out-параметра хранимой процедуры через DECLARE/EXECUTE на ASA?! PowerBuilder HelpODBC EXECUTE Database stored procedures that perform only updates and do not return a result set are handled in much the same way as procedures that return a result set. The only difference is that after the EXECUTE procedure_name statement executes, no result set is pending, so a CLOSE statement is not required. ...... Example 2 This example illustrates how to pass parameters to a database stored procedure. It assumes the default transaction object (SQLCA) has been assigned valid values and a successful CONNECT has been executed. Emp_id_var was set to 691 elsewhere. // get_employee is a database stored procedure. // Declare the procedure. DECLARE get_emp_proc PROCEDURE FOR get_employee @emp_id_parm = :emp_id_var; // Declare a destination variable for emp_name. string emp_name_var // Execute the stored procedure using the // current value for emp_id_var. EXECUTE get_emp_proc; // Test return code to see if it worked. if SQLCA.sqlcode = 0 then // Since we got a row, fetch it and display it. FETCH get_emp_proc INTO :emp_name_var; // Display the employee name. MessageBox("Got my employee!",emp_name_var) // You are all done, so close the procedure. CLOSE Get_emp_proc; end if Antoxa ЗоринАндрейСоздавать один из трех объектов в зависимости от СУБД и замещать SQLCA. Меня не интересуют "обходные маневры". Меня интересует ответ по существу на поставленный вопрос.Вам дали грамотныей совет по проектированию Вашей системы, почему бы Вам к нему не прислушаться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2006, 16:44 |
|
||
|
Получение значиния out-параметра хранимой процедуры...
|
|||
|---|---|---|---|
|
#18+
AntoxaНайденый в хелпе вариант declare&execute для ASA не привнес ясности: DECLARE logical_procedure_name PROCEDURE FOR {@rv = } SQL_Server_procedure_name @Param1 = value1, @Param2 = value2 , ... {USING transaction_object}; Приведен фрагмент не для ASA, а для Sybase Adaptive Server Enterprise AntoxaСпасибо.На здоровье ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2006, 16:50 |
|
||
|
Получение значиния out-параметра хранимой процедуры...
|
|||
|---|---|---|---|
|
#18+
PL99 Antoxa ЗоринАндрейСоздавать один из трех объектов в зависимости от СУБД и замещать SQLCA. Меня не интересуют "обходные маневры". Меня интересует ответ по существу на поставленный вопрос.Вам дали грамотныей совет по проектированию Вашей системы, почему бы Вам к нему не прислушаться? Я не занимаюсь проектированием системы и, соответственно, не могу воспользоваться данным советом. PL99Приведен фрагмент не для ASA, а для Sybase Adaptive Server Enterprise Виноват, был невнимателен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2006, 17:06 |
|
||
|
Получение значиния out-параметра хранимой процедуры...
|
|||
|---|---|---|---|
|
#18+
ЗоринАндрей PBNew SPInvocation Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2006, 17:20 |
|
||
|
Получение значиния out-параметра хранимой процедуры...
|
|||
|---|---|---|---|
|
#18+
Antoxa wrote: > Неужели никто никогда не пробовал достучаться до out-параметра хранимой > процедуры через DECLARE/EXECUTE на ASA?! Не пробовали, потому что непонятен смысл данного изврата. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2006, 17:27 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=34044968&tid=1337573]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
179ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
74ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 533ms |

| 0 / 0 |
