Запрос к 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 назад нарыл эту инфу в нете.
Ксати, а почему так не прокатывает?
Программист всегда исправляет последнюю ошибку.