Имя: Пароль:
1C
 
Запрос к access через ADO
0 nbIx
 
30.10.07
12:45
Никак не видит параметр. Без параметра DateOFEvents работает все нормально, при установке параметра и включение его в текст запроса выдает ошибку: (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

Запарился уже, и так пробовал и сяк.

Текст:

Команда = Новый COMОбъект("ADODB.Command");
   Команда.ActiveConnection=Соединение;
   
   Команда.NamedParameters = Истина;
   //Команда.CommandType = 2;
   ТекстЗапроса =
   "SELECT
   |    EVENTS.EVENT_TIME,
   |    EVENTS.EVENT_TYPE_ID,
   |    USERS.KEY_NUMBER
   |FROM EVENTS  
   |LEFT JOIN USERS ON (USERS.SID = EVENTS.USER_SID)  
   |WHERE
   |    (EVENTS.EVENT_TYPE_ID = 101 OR EVENTS.EVENT_TYPE_ID = 102) AND EVENTS.EVENT_TIME >= DateOFEvents  
   |";

   Команда.CommandText=ТекстЗапроса;
   //Команда.Parameters.Refresh();
   DateOFEvents = Команда.CreateParameter("DateOFEvents", 7, 1, 8, ДатаНачала);   //7 - тип дата, //1 - входной параметр //
   Команда.Parameters.Append(DateOFEvents);    
   
   НаборЗаписей = Новый COMОбъект("ADODB.RecordSet");
   
   Попытка
       НаборЗаписей=Команда.Execute();
   Исключение
       Сообщить("Ошибка запроса:"+ОписаниеОшибки());
       Возврат;
   КонецПопытки;
1 ТелепатБот
 
гуру
30.10.07
12:45
2 nbIx
 
30.10.07
13:11
Up
3 774816
 
30.10.07
13:21
если задавать имена параметрам не объязательно то воспользуйся вопросительным знаком
ТекстЗапроса =
   "SELECT
   |    EVENTS.EVENT_TIME,
   |    EVENTS.EVENT_TYPE_ID,
   |    USERS.KEY_NUMBER
   |FROM EVENTS  
   |LEFT JOIN USERS ON (USERS.SID = EVENTS.USER_SID)  
   |WHERE
   |    (EVENTS.EVENT_TYPE_ID = 101 OR EVENTS.EVENT_TYPE_ID = 102) AND EVENTS.EVENT_TIME >= ?  
   |";
4 nbIx
 
30.10.07
13:26
(3) Спасибо, правда я сам минут 5 назад нарыл эту инфу в нете.

Ксати, а почему так не прокатывает?
Программист всегда исправляет последнюю ошибку.