Форум: "Базы";
Текущий архив: 2002.08.19;
Скачать: [xml.tar.bz2];
ВнизПередача параметров ADO запросу Найти похожие ветки
← →
EugeneP (2002-07-26 14:34) [0]В MS Accesse написан запрос, который имеет некоторые параметры (т.е. неопределенные
значения которые аксесс спрашивает перед выполнением этого запроса).
К аксесовской базе подключаюсь из Дельфей с помощью ADO.
У компонента ADOQuery прописываю в свойствах эти параметры (с теми же именами)
присваиваю им в программе значения
а при открытии запроса выдается сообщение что данные параметры не определены
по умолчанию
(т.е. в аксес их значения не передались)
в связи с вышесказанным вопрос - как правильно передать параметры в аксесовский
запрос.
← →
LordOfSilence (2002-07-26 15:08) [1]А Вы типы этих параметров правильно определяете?
Целое - целое, строка - строка...
Я когда-то делал то же самое, все работало, точно помню.
Причем в двух вариантах:
1. Прописывал весь текст запроса в свойстве SQL.
2. Прописывал только "Select * from MyAccessQuery".
MyAccessQuery - это то, как Вы его назвали в Access.
Проверьте еще раз все параметры.
← →
EugeneP (2002-07-26 15:12) [2]SELECT SUM(US) AS ResExp
FROM Vec
WHERE (Vec.Type="по предъявлении") AND
(MONTH(DateVip)=ParMonth)
AND (YEAR(DateVip)=ParYear);
вот аксесовский запрос
ParMonth и ParYear параметры
где в аксесе можно определить их тип????
в дельфе присвоил им целый тип
а выборку я хочу делать как в вашем втором случае - то есть просто select * from MyQuery
← →
LordOfSilence (2002-07-26 15:27) [3]Позвольте с Вами не согласиться. В Access можно
определить тип параметров. В режиме конструктора
запроса, меню Запрос, команда Параметры. В этом
режиме устанавливаются имя параметра и его тип.
← →
EugeneP (2002-07-26 16:01) [4]Я не утвеждал
я спрашивал
Спасибо. Буду пробовать.
← →
LordOfSilence (2002-07-26 16:38) [5]Евгений, только что смоделировал Вашу ситуацию у себя
на компе. Все как бы и работает...
Если Вас все еще интересуют подробности, откликнитесь.
Я попробую пошагово описать свои действия.
← →
LordOfSilence (2002-07-26 16:57) [6]Кстати, вот текст моего "смоделированного" запроса:
PARAMETERS ParDate Long;
SELECT Vec.Summa, Vec.Type, Vec.DateVip
FROM Vec
WHERE (((Vec.Type)="по предъявлении") AND ((Month([DateVip]))>[ParDate]));
Есть различия. Я имею ввиду не имена полей/параметров
непосредственно. Вы, кстати, все же откуда взяли текст
этого запроса? Непосредственно из Access, таким, каким
он сам его создал? У Вас какой Access? У меня 2000.
Обратите внимание на объявление PARAMETERS.
Двойный и одинарный кавычки, круглые и квадратные скобки...
← →
Mike Kouzmine (2002-07-26 19:29) [7]А у меня только со ADOStoredProc получается :{
← →
aus (2002-07-26 23:53) [8]можно еще так запрос составить (TADOQuery)
execute s p1, p2, p3...
где s - имя сохраненного запроса с параметрами, а p1, p2 - значения параметров.
← →
ЮЮ (2002-07-29 04:03) [9]lf!
← →
USE (2002-07-30 06:57) [10]/*Посмотри текст программы как у меня*/
CONECT_STR="Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;"+{Data Source=D:\ExBd\ТЕРМО\Bd0.mdb;}
"Data Source=%s; Mode=Read|Write|Share Deny None;Extended Properties="";"+
"Locale Identifier=1049;Persist Security Info=True;Jet OLEDB:System database="";"+
"Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=4;"+
"Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;"+
"Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";"+
"Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;"+
"Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False";
function TdmR3.GetCountForPeriod(LastDate: TDateTime; IsPlan: boolean): Integer;
var qu: TADOQuery;
S: String;
begin
qu:=TADOQuery.Create(nil);
try
S:=FormatDateTime("dd.mm.yy",LastDate);
qu.ConnectionString:=WideString(Format(CONECT_STR,[db_file]));
qu.SQL.Text:="select count(*) from DecadaVal as d where d.LastDate=:LastDate and IsPlan=:IsPlan";
qu.Parameters[0].Value:=LastDate;
qu.Parameters[1].Value:=IsPlan;
qu.Open;
Result:=qu.Fields[0].AsInteger;
finally
qu.Free;
end;
end;
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.08.19;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c