|
|
|
Как получить из СП выходной параметр
|
|||
|---|---|---|---|
|
#18+
Привет Никак не могу получить на VB6 из хранимой процедуры параметр На сервере созда SP: 1 входной и 1 выходной параметр через SQL Query Analyzer Все работает ок а вот из кода на VB никак не могу получить выходной параметр пример кода Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. надо получить значение в параметр pintbb Помогите утопающему.В доке ничего толком не нашел как работать с выходными параметрами через VB C уважением ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2002, 18:22:48 |
|
||
|
Как получить из СП выходной параметр
|
|||
|---|---|---|---|
|
#18+
Set cmd = New ADODB.Command cmd.CommandText = "MySP" cmd.CommandType = adCmdStoredProc cmd.Parameters.Append cmd.CreateParameter("@aa", adVarChar, adParamInput, 255, pstrAA) cmd.Parameters.Append cmd.CreateParameter("@bb", adInteger, adParamOutput, , pintBB) Set conn = New ADODB.Connection conn.Open "......" Set cmd.ActiveConnection = conn cmd.Execute Я обычно делаю так, dim SqlStr as string SqlStr="declare @r int " & _(например) "exec @r=MySp 'text1',10 " & _ "select @r as result " dim rs as adodb.recordset set rs=conn.execute StrSql rs!result - искомый параметр... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2002, 18:28:40 |
|
||
|
Как получить из СП выходной параметр
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. Не нужно напрямую указывать переменную в которую получаете выходной параметр в Append cmd.CreateParameter ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2002, 18:29:33 |
|
||
|
Как получить из СП выходной параметр
|
|||
|---|---|---|---|
|
#18+
Проще надо! ADO само разберётся. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2002, 18:42:44 |
|
||
|
Как получить из СП выходной параметр
|
|||
|---|---|---|---|
|
#18+
когда адо само разбирается происходит лишнее обращение к серверу.... иэх..давненькоя я на вб не писал..... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2002, 18:53:29 |
|
||
|
Как получить из СП выходной параметр
|
|||
|---|---|---|---|
|
#18+
да если он и входной и выходной - adParamInputOutput ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2002, 18:59:47 |
|
||
|
Как получить из СП выходной параметр
|
|||
|---|---|---|---|
|
#18+
Спасибо за советы - но через cmd.parameters("pintbb").value - возвращает пусто :-( пока проблему решил через возвращения значения в рекордсете (примерно как советовал Denisco) - но это не красиво как-то.. :-( Однако повторяю - в Query Analyzer все работает ок? может глюк ADO какой? с уважением ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2002, 19:20:36 |
|
||
|
Как получить из СП выходной параметр
|
|||
|---|---|---|---|
|
#18+
Обнаружил такую зависимость если сделать так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Все работает ОК Т.е. ввел фиктивное получение рекордсета и потом закрыл его Странно - это как-то всё... С уважением ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2002, 06:21:21 |
|
||
|
Как получить из СП выходной параметр
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Шо так не работает?????????? Неверю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2002, 10:25:50 |
|
||
|
Как получить из СП выходной параметр
|
|||
|---|---|---|---|
|
#18+
> Т.е. ввел фиктивное получение рекордсета и потом закрыл его Странного - ничего. Значит, sp возвращает рекордсет (рекодсет может быть пустым). А чтение возвращаемых параметров возможно только после закрытия всех наборов данных. Предположу смелое - процедура возвращает пустой рекордсет в качестве RowAffected от какого-нибудь промежуточного insert/update/delete. В этом услучае SET NOCOUNT ON в начале процедуры должно помочь. Ну, а уж если там возвращается настоящий рекордсет, тады ой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2002, 10:48:20 |
|
||
|
Как получить из СП выходной параметр
|
|||
|---|---|---|---|
|
#18+
Именно как написал Maxx и работает, т.е. когда добавил Код: plaintext 1. процедура никакой рекордсет не возвращает просто значение, точнее после команды insert - возвращаю значение identity проблема в принципе решилась - спасибо всем за советы вот тока странное поведение adodb с уважением ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2002, 12:29:39 |
|
||
|
Как получить из СП выходной параметр
|
|||
|---|---|---|---|
|
#18+
если нет возвращаемого рекордсета то ... rs=cmd.Execute Options:=adExecuteNoRecords ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2002, 15:17:09 |
|
||
|
Как получить из СП выходной параметр
|
|||
|---|---|---|---|
|
#18+
Спасибо MiCe за подсказку с Options рабочий вариант выглядит так (без всяких левых рекордсетов): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2002, 16:46:03 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32044501&tid=1820949]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
48ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 306ms |

| 0 / 0 |
