ADOQuery连接SQL Sever数据库的简单问题(100分)

  • 主题发起人 主题发起人 BlackHawk
  • 开始时间 开始时间
var
strsql:string; //sql语句
strname:string; //名称
with ADOQuery do
begin
close;
prepared:=False;
sql.clear;
strsql:='select * from table where name='+''''+edit1.text+'''';
sql.add(strsql)
prepared:=True;
open;
if recrodcount<=0 then exit; ///在這里加多一句就好
strname:=adoquery.filedbyname('name').asstring;
close;
 
程序没错,打补丁:专业版和企业版的补丁不尽相同,
  DELPHI中有说明:http://info.borland.com/devsupport/delphi/mdac26.html
 
非常明显
strname:=adoquery1.fieldbyname('客户名称').asstring;
错误,没有结果当然出错,加判断即可。
 
strname:=adoquery1.fieldbyname('客户名称').asstring
BOF或EOF中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前记录
你自己仔细想想这两句话之间的关系!!!!

如果没有数据,何来的fieldbyname('客户名称'),自然就出错。
drc2100的说法是对的,对数据控件操作,if not eof是很重要的条件来的。


 
'select * from table where name='+''''+edit1.text+'''';
'select * from table where name='+#39+edit1.text+#39;
 
确实需要打补丁,我打了三个补丁之后,情况一切正常了,谢谢大家!
后来者如果看到这次的讨论,直接去打补丁吧!
 
多人接受答案了。
 
后退
顶部