|
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)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |