Имя: Пароль:
1C
1С v8
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
http://msdn.microsoft.com/en-us/library/windows/desktop/ms675318(v=vs.85).aspx
Параметр точно 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() этой коллекции отыскивает информацию параметров для хранимой процедуры или параметрического запроса
Без него никак
http://www.script-coding.com/ADO.html#CommandObject
9 DmitrO
 
18.01.12
12:47
(8)Я всегда пишу без него. Поверь, написал много.
Однако, в чем проблема вызывающая исключение пока сказать не могу..
Размер параметра передается 100, а ЗнПарам чему равно?
10 DERL
 
18.01.12
12:52
(9) обычный текст, в хранимке параметр стоит как varchar(100)