我在access2000中建了个查询(视图),DELPHI连接这个库后,可以把这个查询当作一个表,但是我想在delphi中给access中的查询传递参数,应

dpbug 2004-05-03 10:54:18
我在access2000中建了个查询(视图),DELPHI连接这个库后,可以把这个查询当作一个表,但是我想在delphi中给access中的查询传递参数,应该怎么做?
...全文
182 17 点赞 打赏 收藏 举报
写回复
17 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
dpbug 2004-05-04
运行通过了,只不过你是用静态连接的,我想动态一定也可以吧,感谢bigqll的源代码
  • 打赏
  • 举报
回复
dpbug 2004-05-04
我的语句没有错啊,procedurename直接赋值也可以的。
我看看 bigqll的代码再说
  • 打赏
  • 举报
回复
BigQLL 2004-05-04
我把源代码发到你的邮箱里了
  • 打赏
  • 举报
回复
youcheng1 2004-05-04
错了,是ADOStoredProc的procedurename属性连接到“查询6”.
  • 打赏
  • 举报
回复
youcheng1 2004-05-04
调用成功了,用ADOStoredProc,可以给查询传递参数。
你的ADOStoredProc的parameters属性连接到“查询6”,再设计ADOStoredProc的参数就行了。
  • 打赏
  • 举报
回复
dpbug 2004-05-04
经过某位大侠提示,
我在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没有默认值”,怎么回事啊,求助
大概就剩最后一步了
  • 打赏
  • 举报
回复
youcheng1 2004-05-04
在VB中是可以给ACCESS中的查询传递参数的,在DELPHI中我还不知道方法,有答案通知我一声。
  • 打赏
  • 举报
回复
dpbug 2004-05-04
楼上的不要乱说,明显在糊弄人
  • 打赏
  • 举报
回复
liulangnanhai 2004-05-04
Adoquery1.close;
adoquery1.sql.text:= 'select * from ViewName where field=: Value '
adoquery1.Open;
....
Parameters.Params[0].Value:='123'


  • 打赏
  • 举报
回复
Jasonn 2004-05-03
SQL处理上 视图 和 表 没什么区别

传递的参数是不是WHERE的筛选条件,还是其他

把问题具体点呢?
  • 打赏
  • 举报
回复
lxftwo 2004-05-03
就是啦,阿朱说得对,同样是表,传递方法也一样。

select * from .....
where field=:pdate

....
Parameters.ParamByName('pdate').Value:=xxx
  • 打赏
  • 举报
回复
duanazhu 2004-05-03
晕~~~~~~~~~~~你能不能说清楚一点?如果delphi是把那个视图当作一个表,那么就跟普通表的参数传递一样啦
  • 打赏
  • 举报
回复
dpbug 2004-05-03
那delphi中怎么传递参数给aa呢
  • 打赏
  • 举报
回复
dpbug 2004-05-03
楼上的兄弟,你给的代码是delphi中的还是access视图中的?
  • 打赏
  • 举报
回复
DebugXP 2004-05-03
PARAMETERS aa DateTime;
SELECT [编号] FROM 商品 WHERE [日期] > aa ;

日期字段必须为DateTime型
调用时的参数传递和存储过程一样
  • 打赏
  • 举报
回复
dpbug 2004-05-03
我说清楚点

access中的视图:
视图名称为:查询1
SELECT [编号] FROM 商品 WHERE [日期] > [查询日期:]
其中的[查询日期:]就是我要用Delphi编程传递给它的条件啊

delphi中这样调用的:
ADOQUERY.SQL.TEXT := 'SELECT 名称, 编号 FROM 仓库 INNER JOIN 查询1 WHERE 查询1.编号 = 仓库.编号';

怎样才能把 查询日期 的数值传递给视图呢?
  • 打赏
  • 举报
回复
jacbey 2004-05-03
你把视图 当做 表 一样用就是了,反正写好SQL字符串给数据库就是了
  • 打赏
  • 举报
回复
相关推荐
发帖
数据库相关
加入

2462

社区成员

Delphi 数据库相关
申请成为版主
帖子事件
创建了帖子
2004-05-03 10:54
社区公告
暂无公告