Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Parameter object is improperly defined. Inconsistent or incomplete information...  [new]
dr.Azon
Member

Откуда:
Сообщений: 1
Всем привет!

В продолжении темы [url=]https://www.sql.ru/forum/16204/parameter-object-is-improperly-defined-inconsistent-or-incomplete-information[/url]

Уже всю голову сломал - код запускается через 1С, работает на 32 битной платформе 1С, на стороне клиента, на стороне сервера 64 битной платформы ошибка: {ОбщийМодуль.РаботаСЭлектронойПочтой.Модуль(290)}: Ошибка при вызове метода контекста (Append)
по причине:
Произошла исключительная ситуация (ADODB.Parameters): Parameter object is improperly defined. Inconsistent or incomplete information was provided.

Ругается на Param.Size = Data.GetLength() + 1; Прописывал максимальный размер файла - не помогло.
Пробовал переставить AccessDatabaseEngine - не помогло. Помогите решить проблему.

Вот код:

//IKRUGLOV 04/04/2013
//загружаем вложения в Command.Parameters
НомерПараметра=0;


StreamIn = Новый COMОбъект("ADODB.Stream");
StreamIn.Type = 1; //adTypeBinary

StreamIn.Open();
// StreamIn.LoadFromFile(Attachment.FullPath);
StreamIn.LoadFromFile(СокрЛП(ЭтаФорма.ИмяФайла));

Data = StreamIn.Read(); //у переменной Data тип COMSafeArray, это массив байтов
StreamIn.Close();

Param =Command.CreateParameter("AttachmentData"+НомерПараметра);
Param.Type =205; //Indicates a long binary value
Param.Direction =1; //Default. Indicates that the parameter represents an input parameter.
Param.Size = Data.GetLength() + 1;
Param.Value = Data;
Command.Parameters.Append(Param);

НомерПараметра=НомерПараметра+1;;


В Command хранится коннекшен :

ADODBConnection = Новый COMОбъект("ADODB.Connection");
ADODBCommand = Новый COMОбъект("ADODB.Command");

ADODBConnection.ConnectionTimeOut = ConnectionTimeOut;
ADODBConnection.CursorLocation = CursorLocation;

Попытка

ADODBConnection.Provider = "sqloledb";
ADODBConnection.Properties("Data Source").Value = Строка(ИмяСервера);
ADODBConnection.Properties("Initial Catalog").Value = Строка(ИмяБазы);
ADODBConnection.Properties("User ID").Value = ИмяПользователя;
ADODBConnection.Properties("Password").Value = Пароль;

ADODBConnection.Open();
Исключение
29 июл 14, 11:33    [16370081]     Ответить | Цитировать Сообщить модератору
 Re: Parameter object is improperly defined. Inconsistent or incomplete information...  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
dr.Azon
Data = StreamIn.Read(); //у переменной Data тип COMSafeArray, это массив байтов

Вообще етот метод возращет Variant и без приведения,там COMSafeArray, скорее всего не будет
Ну и дальше смотрите что возращает ваше
автор
Data.GetLength()
29 июл 14, 11:52    [16370282]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить