|
ADODB.Command не работает CreateParameter на сервере |
☑ |
0
DERL
18.01.12
✎
11:42
|
На сервере не работает метод CreateParameter объекта ADODB.Command
выскакивает ошибка:
Ошибка при вызове метода контекста (CreateParameter)
по причине:
Плохой тип переменной
а на клиенте работает нормально (всмысле когда у себя в файловом варианте проверяю)
помогите что делать? на клиента не могу пересадить, т.к. процедура вызывается при проведении документа в модуле объекта
ЗЫ. Серверная ОС - 2008, скуль - 2008 R2
вот кусочек кода
Conn = Новый COMОбъект("ADODB.Connection");
Conn.ConnectionString = "driver={SQL Server};server=APSERVER,1434;uid=sa;pwd=;";
Conn.Open();
Conn.DefaultDatabase = "TEST";
Comm = Новый COMОбъект("ADODB.Command");
Comm.ActiveConnection = Conn;
Comm.CommandText = "Finances.spAISP_CtII_SetPaidTrancheAppPayment";
Comm.CommandType = 4;
Prm = Новый COMОбъект("ADODB.Parameter");
Prm = Comm.CreateParameter("rowguid",200,1,100,ЗнПарам); // вот тут и вываливается
|
|
1
acsent
18.01.12
✎
11:43
|
значение параметра не так передается
|
|
2
DERL
18.01.12
✎
11:50
|
(1) а как же еще?
всегда такой метод использовал
|
|
3
Стальная Крыса
18.01.12
✎
12:11
|
всегда так использовал (пример реального кода VB):
SQL = "INSERT INTO MyTable VALUES (?, ?)"
ACommand.CommandText = SQL
ACommand.Parameters.Refresh
ACommand.Parameters.Item(0).Value = 1
ACommand.Parameters.Item(1).Value = 2
|
|
4
Стальная Крыса
18.01.12
✎
12:12
|
+3 т.е. по индексу позиции параметра
|
|
5
Иде я?
модератор
18.01.12
✎
12:26
|
Параметр точно adVarChar
200
Indicates a string value.
?
|
|
6
DmitrO
18.01.12
✎
12:34
|
(0)
Вот эта строка:
Prm = Новый COMОбъект("ADODB.Parameter");
попросту, лишняя.
(4)это не эффективный способ, т.к. при Refresh будет лишнее обращение к серверу.
|
|
7
DERL
18.01.12
✎
12:35
|
(3) Спасибо ваш метод меня спас
странно, но и на 7ке раньше всегда работало через CreateParameter и в файловом варианте на 8ке работает, а почему на сервере не захотело работать не понял, может из-за того что на сервере не MDAC, а WDAC???
|
|
8
DERL
18.01.12
✎
12:41
|
(6) Использование метода Refresh() этой коллекции отыскивает информацию параметров для хранимой процедуры или параметрического запроса
Без него никак
|
|
9
DmitrO
18.01.12
✎
12:47
|
(8)Я всегда пишу без него. Поверь, написал много.
Однако, в чем проблема вызывающая исключение пока сказать не могу..
Размер параметра передается 100, а ЗнПарам чему равно?
|
|
10
DERL
18.01.12
✎
12:52
|
(9) обычный текст, в хранимке параметр стоит как varchar(100)
|
|