我在access2000中建了个查询(视图),DELPHI连接这个库后,可以把这个查询当作一个表,但是我想在delphi中给access中的查询传递参数,应
我在access2000中建了个查询(视图),DELPHI连接这个库后,可以把这个查询当作一个表,但是我想在delphi中给access中的查询传递参数,应该怎么做? 问题点数:100、回复次数:17Top
1 楼duanazhu(阿朱)回复于 2004-05-03 12:22:18 得分 0
晕~~~~~~~~~~~你能不能说清楚一点?如果delphi是把那个视图当作一个表,那么就跟普通表的参数传递一样啦Top
2 楼lxftwo(小小人儿)回复于 2004-05-03 12:39:50 得分 0
就是啦,阿朱说得对,同样是表,传递方法也一样。
select * from .....
where field=:pdate
....
Parameters.ParamByName('pdate').Value:=xxxTop
3 楼Jasonn(一万年太久,只争朝夕)回复于 2004-05-03 12:49:03 得分 0
SQL处理上 视图 和 表 没什么区别
传递的参数是不是WHERE的筛选条件,还是其他
把问题具体点呢?Top
4 楼jacbey(从来没怪你)回复于 2004-05-03 13:03:46 得分 0
你把视图 当做 表 一样用就是了,反正写好SQL字符串给数据库就是了Top
5 楼dpbug()回复于 2004-05-03 13:16:33 得分 0
我说清楚点
access中的视图:
视图名称为:查询1
SELECT [编号] FROM 商品 WHERE [日期] > [查询日期:]
其中的[查询日期:]就是我要用Delphi编程传递给它的条件啊
delphi中这样调用的:
ADOQUERY.SQL.TEXT := 'SELECT 名称, 编号 FROM 仓库 INNER JOIN 查询1 WHERE 查询1.编号 = 仓库.编号';
怎样才能把 查询日期 的数值传递给视图呢?
Top
6 楼DebugXP(NULL)回复于 2004-05-03 19:41:37 得分 0
PARAMETERS aa DateTime;
SELECT [编号] FROM 商品 WHERE [日期] > aa ;
日期字段必须为DateTime型
调用时的参数传递和存储过程一样Top
7 楼dpbug()回复于 2004-05-03 22:24:50 得分 0
楼上的兄弟,你给的代码是delphi中的还是access视图中的?Top
8 楼dpbug()回复于 2004-05-03 22:27:50 得分 0
那delphi中怎么传递参数给aa呢Top
9 楼liulangnanhai(流浪男孩)回复于 2004-05-04 14:47:15 得分 0
Adoquery1.close;
adoquery1.sql.text:= 'select * from ViewName where field=: Value '
adoquery1.Open;
....
Parameters.Params[0].Value:='123'
Top
10 楼dpbug()回复于 2004-05-04 17:32:48 得分 0
楼上的不要乱说,明显在糊弄人Top
11 楼youcheng1(晓松)回复于 2004-05-04 17:51:11 得分 0
在VB中是可以给ACCESS中的查询传递参数的,在DELPHI中我还不知道方法,有答案通知我一声。Top
12 楼dpbug()回复于 2004-05-04 18:05:23 得分 0
经过某位大侠提示,
我在access中写了 视图——“查询6”
PARAMETERS aa Long;
SELECT 编号 FROM 商品 WHERE 单位<=aa;
Delphi中代码
begin
ADOStoredProc1.close;
ADOStoredProc1.Parameters.Clear;
ADOStoredProc1.Parameters.CreateParameter('aa',ftinteger,pdinput,0,0);
ADOStoredProc1.Parameters.Items[0].Value:=2;
ADOStoredProc1.ProcedureName := '查询6';
ADOStoredProc1.open;
ADOQuery.SQL.TEXT := 'SELECT * FROM 查询6';
ADOQuery.Open;
end;
其中 ADOStoredProc1.DataSource连接到了Datasource1,datasource1的dataset是adoquery1;ADOStoredProc1和adoquery1通过同一个adoconnecting连接到了access数据库
但是运行后:“系统提示参数aa没有默认值”,怎么回事啊,求助
大概就剩最后一步了
Top
13 楼youcheng1(晓松)回复于 2004-05-04 18:20:28 得分 0
调用成功了,用ADOStoredProc,可以给查询传递参数。
你的ADOStoredProc的parameters属性连接到“查询6”,再设计ADOStoredProc的参数就行了。Top
14 楼youcheng1(晓松)回复于 2004-05-04 18:21:49 得分 0
错了,是ADOStoredProc的procedurename属性连接到“查询6”.Top
15 楼BigQLL()回复于 2004-05-04 21:12:31 得分 100
我把源代码发到你的邮箱里了Top
16 楼dpbug()回复于 2004-05-04 21:14:24 得分 0
我的语句没有错啊,procedurename直接赋值也可以的。
我看看 bigqll的代码再说Top
17 楼dpbug()回复于 2004-05-04 21:18:22 得分 0
运行通过了,只不过你是用静态连接的,我想动态一定也可以吧,感谢bigqll的源代码Top




