0
qwerty
08.11.15
✎
09:23
|
Столкнулся с непонятным поведением 1С при передаче строковых параметров в запрос. Вот этот код выводит в окно сообщений "z" вместо "zzzz":
Соединение = Новый COMОбъект("ADODB.Connection");
Соединение.ConnectionString = "Provider=SQLOLEDB.1;Password=1;Persist Security Info=True;User ID=sa;Initial Catalog=ait_hr_new;Data Source=PHENOMB55";
Соединение.Open();
Команда = Новый COMОбъект("ADODB.Command");
Команда.ActiveConnection = Соединение;
Команда.CommandText = "SELECT ? AS test";
// adBSTR = 8
// adParamInput = 1
Параметр = Команда.CreateParameter(, 8, 1);
Параметр.Value = "zzzz";
Команда.Parameters.Append(Параметр);
НаборЗаписей = Команда.Execute();
КоличествоЗаписей = НаборЗаписей.RecordCount;
Пока Не НаборЗаписей.EOF Цикл
Сообщить(НаборЗаписей.Fields.Item(0).Value);
НаборЗаписей.MoveNext();
КонецЦикла;
НаборЗаписей.Close();
Соединение.Close();
С другим провайдером (FoxProOleDB) все работает как нужно. Как заставить правильно работать провайдер MSSQL?
|
|