| 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?
 |  |