三级数据库查询出错,求救!
我的查询代码:
begin
if edit1.Text='' then
showmessage('请入图书证号')
else
begin
F_DM.Cds_clsoder.Close;
F_DM.Cds_clsoder.CommandText:='select * from clsoder where class_master='+edit1.Text;
F_DM.Cds_clsoder.Execute;
F_DM.Cds_clsoder.Open;
F_DM.Cds_clsoder.Refresh;
end;
end;
查询结果出错提示:project client.exe raise exception class EOleException with message '列名'11225'无效'。process stop....
无法查到当图书证号为:11225时所有的对应记录。请高手指点。谢谢!
问题点数:70、回复次数:14Top
1 楼lovend(颓废之吻)回复于 2005-06-30 09:06:38 得分 0
F_DM.Cds_clsoder是 clientdataset吗?
F_DM.Cds_clsoder.Execute;
F_DM.Cds_clsoder.Open;
只用下面那句就可以了吧 。
Top
2 楼bhamy()回复于 2005-06-30 09:33:52 得分 0
对的。F_DM.Cds_clsoder是 clientdataset
我要求是当在Edit1.text中输入图书证号时,在DBgrid中显示出与图书证号相对应的所有记录。
F_DM.Cds_clsoder.Execute;
F_DM.Cds_clsoder.Open;
也一样出错,怎么办?十分感谢!Top
3 楼fbincrazy(全职流氓@改)回复于 2005-06-30 09:34:28 得分 0
用open么 用execute干什么Top
4 楼bhamy()回复于 2005-06-30 09:38:31 得分 0
execute是执行commandText用的,我去掉F_DM.Cds_clsoder.Execute;或去掉 F_DM.Cds_clsoder.Refresh;或两句都去掉都试过,调试结果出现同样的错误。很怪!
Top
5 楼madyak(无天)回复于 2005-06-30 09:47:49 得分 0
双击Cds_clsoder控件,看看是不是有静态字段,而有一个字段名是11225,表格中正好没有与之对应的字段,导致查询出错Top
6 楼bhamy()回复于 2005-06-30 09:58:53 得分 0
11225不是字段名,它是字段bookNo里的一个记录。双击Cds_clsoder控件,里面是空的。怎么办?Top
7 楼bhamy()回复于 2005-06-30 10:39:50 得分 0
各位高手,请出出主意吧。我的问题还没解决呢Top
8 楼enjoymyself(你快乐所以我快乐)回复于 2005-06-30 11:21:05 得分 0
class_master是什么类型?如果是字符型,那这样写试一下
F_DM.Cds_clsoder.CommandText:='select * from clsoder where class_master='
+ QuotedStr(edit1.Text);Top
9 楼madyak(无天)回复于 2005-06-30 11:52:41 得分 60
是不是少了引号
F_DM.Cds_clsoder.CommandText:='select * from clsoder where class_master='''+edit1.Text+'''';
Top
10 楼bhamy()回复于 2005-06-30 12:05:35 得分 0
madyak说对了!我的问题解决了。非常感谢楼上的各位朋友。一个引号,烦得我快疯了,编程真苦!!Top
11 楼MudLib(Alan)回复于 2005-07-06 20:52:45 得分 0
没关系 ,习惯就好了!Top
12 楼hqhhh(枫叶)回复于 2005-07-06 20:55:59 得分 0
来晚了Top
13 楼hzwmjl(永远)回复于 2005-07-06 20:58:27 得分 0
大家来加入DELPHI程序群1805366 一起进步Top
14 楼jozosoft(水灵灵的乌兰诺娃)回复于 2005-07-07 08:31:02 得分 10
是少了引號.
F_DM.Cds_clsoder.CommandText:='select * from clsoder where class_master='
+ '''' + edit1.Text + '''' ;Top




