dataset的filter设置请教(50分)

  • 主题发起人 主题发起人 rabbitfeet
  • 开始时间 开始时间
R

rabbitfeet

Unregistered / Unconfirmed
GUEST, unregistred user!
使用TClientdataset的filter属性:
clientdataset1.filter:='名称='+quotedstr(edit1.text);
运行时所有记录都被过滤掉了
其它字段用同样的方法却可以有效选择
clientdataset1.filter:='时间='+quotedstr(edit1.text);
可以有效选出符合输入的记录
不知为什么名称字段不行
是否我的写法不对
请前辈指教
不胜感激。
 
对于字符串型的字段要加引号,如:
clientdataset1.filter:='名称='''+quotedstr(edit1.text)+'''';
 
对于数字的,可以不用加引号,对于除数字外的其他字段,一定要加上单引号
 
两位的解释rabbitfeet觉得非常正确
不过
改做:clientdataset1.filter:='名称='''+quotedstr(edit1.text)+'''';
结果:Filter Expression incorrectly terminated.
直接:clientdataset1.filter:='名称=''玉米''';
试一下也还是全过滤没了
不知如何是好
我是不是还犯了别的什么错误
请继续指教
 
quotedstr就是加引号的呀!
可能你的字段中有空格。
 
这样试一下:
  clientdataset1.filtered:=false;
clientdataset1.filter:='名称=''玉米''';
clientdataset1.filtered:=true;
 
try this:
clientdataset1.filtered:=false;
clientdataset1.filter:='名称=' + #39 + edit1.text + #39;
clientdataset1.filtered:=true;
 
jian1所说空格问题,写[名称]=''玉米''就行了
plwei和yushaofei两位的filtered的设置我自己已经做了的
问题是名称=''玉米''这样的格式无法把含玉米的记录留下来
直接在clientdataset1`属性的filter里填名称='玉米'
同样所有的记录都过滤掉了
数据库里站名字段的数据类型是nchar不知是否与此有关
请继续指教
谢了
 
我觉得jianl说的有道理,很有可能
如在SQL Server中定义的字段为char(10),而你赋的值是'玉米',哪在数据库中存的是'玉米'
加6个空格。所以...
 
Expert:
DELPHI的help里说如果含有空格要加[]就行了
我加了[]试了试,语法没错但还是没查出来
再说我用的是nchar应该是没有多余空格存在库里的
应该还是有办法实现这样的filter
只是我该怎么做
谢了
 
Server 端的 DataType 要定义成 Varchar。
 
BaKuBaKu:还是没用。
 
请改用模糊查询,写法不是下面的方式:
clientdataset1.filter:='名称 like '''+quotedstr(edit1.text)+'''';
具体写法请用filter检索一下,好象是在dataset中的OnfilterRecord( 好象,时间
长了,记不清了)写一个语句。
精确查询是完全匹配,并且还有有无空格等诸多问题,很难找到记录。
 
yushaofei:
help里没有给出模糊查询的方式
只说有space要加[],又说可以用*号
在dateset的OnFilterRecord里有个example
我就写:
procedure TForm4.cdsSQCKFilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
Accept:= cdsSQCK['名称']=quotedstr(edit3.text);
end;
结果一样没反应
呵呵
 
trim(名称)="玉米"

名称="玉米*"
 
BaKuBaKu说的对
Server的DataType定义成char或varchar才可以
rabbitfeet太粗心了
开始改了没存所以说没用
现在终于可以找到玉米了:
clientdataset1.filter:='名称='+quotedstr(edit1.text+'*');
就可以了
谢谢各位了








 
接受答案了.
 

Similar threads

S
回复
0
查看
695
SUNSTONE的Delphi笔记
S
S
回复
0
查看
656
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部