如题
1:是在DBExpress中.
2:用Locate方法得到RecNo,不用SQL Server通信,所以不用Select...Where...
但是我每次返回都是False,不知道谁还遇过这样的问题,说说经验,谢谢啦如果行的话,最好附上关键代码
1:是在DBExpress中.
2:用Locate方法得到RecNo,不用SQL Server通信,所以不用Select...Where...
但是我每次返回都是False,不知道谁还遇过这样的问题,说说经验,谢谢啦如果行的话,最好附上关键代码
SQLDataSet1: TSQLDataSet;是使用得这些组件吗?注意TDateTime在dataset里的数据格式,Locate的时候根据这个格式去查找,应该没有什么问题的
用的是TClientDataset;
ClientDataset1.Locate('ATime', Arrayof([DateTimeValue]), []);
不像是在ADO 中可以用字符串来表示日期,
但是SetRange可以
你不是使用的是clientdataset么,你这样看看
with self.ClientDataSet1 do
begin
Filtered:=False;
Filter:='ATime like '+QuotedStr(FormatdateTime('yyyy-mm-dd',Now));
Filtered:=True;
end;
with self.ClientDataSet1 do
begin
Filtered:=False;
Filter:='ATime like '+QuotedStr('%'+FormatdateTime('yyyy-mm-dd',Now)+'%');
Filtered:=True;
end;
只有Locate才能定位返回到那个符合条件的记录吧?我的程序中关心的不是记录中的内容,而是位置
呜呜.....月亮有QQ吗?如果方便加入QQ聊吧?
如果不方便,麻烦继续看下这个贴,
我现在试试ADO的Locate ,可是我却发现
ADODataSet.Locate('ATime', VarArrayOf([DateTimeValue]), [])却出错:
Could not convert variant of type (Array Variant) into type (OleStr)
麻烦月亮看一下ADO的又怎么写Locate呢?=
极度郁闷中.....
====================不行
if Not ADODataSet1.Locate('ActTime',
VarArrayOf(['2007-9-25']), []) then
Windows.Beep(1000,100);
===================================================不行
if Not ADODataSet1.Locate('ActTime',
'2007-9-25', []) then
Windows.Beep(1000,100);
===============================
苍天啊...
clientdataset.locate('atime','2007/09/29',[])
转成字符串可以了,而且字符串表示日期,随系统环境的变化可能使程序容易出错可是,不能直接用TDateTime类型到底是怎么回事呢???心里真是很不舒服......
直接用TDateTime,在ADO中用Locate 好像也不行,即使用了你的Locate语句,我的是Delphi2007