如何在delphi中正确使用sql语言?(100分)

  • 主题发起人 主题发起人 鹅卵石
  • 开始时间 开始时间

鹅卵石

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠,我目前在作一个固定资产的管理软件,在使用adoquery控件遇到几个问题,请指教:(数据库为access,windows 2000 prefessional)
1。在使用select语句作查询的时候,如果数据库中没有相应纪录的话,
则报“数据集中BOF或EOF为真,或当前纪录已经被删除,当前纪录不能为空!”的错误,
请指教该如何做。
2.在使用SELECT,UPDATE等SQL语句时,该语句中的条件设置中有“日期”字段,
如果语句写成“SELECT……WHEN … 日期='''+MYDATE+'''…”这样的形式的话,则报“应用程序数据类型不匹配”的错误,
如果语句写成“SELECT……WHEN … 日期='+MYDATE+'…”这样的形式的话,则不报错,但是查询不到该记录(数据库该记录确实存在),请指教。
求救谢谢好心人解答!
 
2.SELECT……WHEN … 日期='''+MYDATE+'
你可以 where rq=:rq

parambyname('rq').asdate:=mydate
1.query.recordcount>0
 
可以看出,你使用Delphi5,没有升级pack,你计算机上应该安装了SQL Server2000(有Ado2.6了)
呵呵,下载Delphi5的升级补丁吧。
 
噢,Windows 2000,它自动已经是Ado2.6了。
 
win2000还是要安升级包!
 
ugvanxk:用query.recordcount>0的办法我试过了,不行啊!
请问Delphi5的升级补丁在哪里有下?
 
给你一个比较传统的写法:
with Query1 do
begin
Close;
Sql.Clear;
Sql.Add('select * from table1 where 日期>=:dt');
ParamByName('dt').asdatetime:=strtodatetime('1980-10-01');
Open;
if (RecordCount > 0 )
Begin
//你要操作的动作
...
end
...
end;
去试一试吧
 
ChenXian,这样的写法同样试用于update语句吗?
 
多人接受答案了。
 
后退
顶部