|
|
|
передача строкового параметра в хранимую процедуру
|
|||
|---|---|---|---|
|
#18+
Помогите если кто сможет, я уже себе весь мозг "стоптал" этой проблемой. Есть сервер на MS SQL 2000, на нем написана куча хранимых процедур, работают они давно и без сбоев. Теперь возникла необходимость вызывать некоторые процедуры из Excel и тут произошел гигантский затык. Если процедура получает числовые параметры(adinteger например) то все работает как часы, если же необходимо передать строковый (advarchar) - то возвращается пустой набор, т.е. нет даже названий столбцов, у объекта recordset.fields всего одно свойство count равное 0. т.е. если с примерами: Dim Cn As New ADODB.Connection Dim Cmd As New ADODB.Command Dim rs As New ADODB.Recordset cn_string = "Строка Подключения" Cn.Open (cn_string) Cmd.ActiveConnection = Cn Cmd.CommandType = adCmdStoredProc Cmd.CommandText = "Имя процедуры 1" Cmd.Parameters.Refresh Cmd.Parameters("@Param_1").Value = 2 Cmd.Parameters("@Param_2").Value = 123456 Set rs = Cmd.Execute Работает отлично, а Dim Cn As New ADODB.Connection Dim Cmd As New ADODB.Command Dim rs As New ADODB.Recordset cn_string = "Строка Подключения" Cn.Open (cn_string) Cmd.ActiveConnection = Cn Cmd.CommandType = adCmdStoredProc Cmd.CommandText = "Имя процедуры 2" Cmd.Parameters.Refresh Cmd.Parameters("@Param_1").Value = "text" Set rs = Cmd.Execute Возвращает пустой набор. Что интересно, если параметру присвоить значение Null - то возвращается тоже пустой набор но со всеми свойствами, т.е. у RecordSet.Fields.item1...itemN есть имена полей и прочие свойства. И свойство count = количеству полей. Вызывать процедуру по разному, задавать параметры и их типы явно, отправлять параметры в Unicode или в другом формате, добавлять различные кавычки, формировать строку символами ASCII я это все пробовал, ситуация не изменяется ни на йоту. Если попробовать передать явно ошибочный параметр - возвращается сообщение об ошибке, если передать Null возвращается нормальная структура и пустой набор, если передать правильный параметр - возвращается пустой набор без структуры. Что делать и в каком направлении копать - идей уже больше нет. Так что вот - взываю о помощи... :) Помогите кто чем сможет. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2010, 14:31 |
|
||
|
передача строкового параметра в хранимую процедуру
|
|||
|---|---|---|---|
|
#18+
Уппсс... Сорри всем. Оказывается три дня ковырял проблему не в ту сторону. С передачей параметра проблем никаких нет, просто процедура оказывается возвращает более одного RecordSet. Так что проблема легко решилась через NextRecordset. Тему можно закрывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2010, 09:53 |
|
||
|
|

start [/forum/topic.php?fid=17&tid=1351476]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
180ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 502ms |

| 0 / 0 |
