关于查询的问题(用SQL语言(QUERY)查询的时候,她是区分大小写的,怎么样才能不让它区分大小写啊?)! (100分)

  • 主题发起人 主题发起人 流浪者
  • 开始时间 开始时间

流浪者

Unregistered / Unconfirmed
GUEST, unregistred user!
在DELPHI中查询数据表里的内容,如在一个表里查找

姓名为张三的学生,用GOTO(GOTOKEY)语句怎么实现把表中不是
张三的人屏蔽掉??

用SQL语言(QUERY)查询的时候,她是区分大小写的,怎么样才能不让它不区分大小写啊?
 
用 filter:='xingming=zhangsan'
filtered:=true;
 
if table1.active then table1.close;
with table1 do
begin
filtered:=false;
filter:='姓名='+'''张三''';
filtered:=True;
Active:=true;
end;
 
回去试验,可以的话明天给分!
 
同意xf163。
 
用FILTER过滤条件太简单了,不能实现复杂过滤;
参考如下代码:
procedure tform1.button1click(sender:tobject);
begin
try
adodataset1.filtered:=false;
adodataset1.onfilterrecord:=filterrec;
finally
adodataset1.filtered:=true;
end;
end;

procedure tform1.filterrec(dataset:tadodataset;var accept:boolean);
var
name:string;
city:string;
begin
city:=dataset.fieldbyname('city').asstring;
name:=dataset.fieldbyname('name').asstring;
if (name='张三' and city='重庆') then
accept:=true
else
accept:=false;
end;
在这里CITY是我假设的一个字段,因为设置FILTER属性过滤功能实在有限,
比如,你想缩小查找范围;查找重庆的张三。用FILTER就不能实现;
但是上面的代码可以;而且过滤条件可以你自己设定,远不像我上面写的这么简单。
 
table1.close;
with table1 do
begin
filter:='姓名='+'''张三''';
filtered:=True;
Active:=true;
end;
 
To nsj
我没有用adodataset1,用的是Table,能再详细介绍一下吗?还有,就是说,要查找重庆的所有人的
话,怎么才能把不是重庆的人屏蔽掉?要另外创建表吗?
 
不需要另外创建表的
 
有人详细的指点一下吗??

本人不会啊!!
 
执行查询最好用Query,它可以对任意条件进行查询。
如:
procedure TForm1.QuerySql(SqlStr: string);
begin
with Query1 do
begin
Close;
Sql.Clear;
Sql.Add('select * from 表名称 where 姓名=:name');
ParamByName('name').AsString := SqlStr;
Open;
end;
end;
查找姓名是“张三”的,可以调用上面过程:QuerySQl('张三');查“李四”就是:QuerySql('李四');
如果是更复杂的条件查询,可以改写成下面的:
procedure TForm1.QuerySql(sName, sCity: string);
begin
with Query1 do
begin
Close;
Sql.Clear;
Sql.Add('select * from 表名称 where 姓名=''' + sName + ''' and 城市=''' + sCity + '''');
Open;
end;
end;
查找姓名是"张三"并且城市是"重庆"的可以调用:QuerySQl('张三','重庆');
其他你可以依此类推。不管多么复杂的查询你都可以用条件写出来的。
建议找几本Delphi书看看。
 
最好用query组件,这样可以用sql语句查询,这样就方便的多了,
 
你如需找“重庆”的人,只需找AField='重庆'的就可以了,还要过滤什么?
 
不是啊.我用的是文件数据库,用的是DELPHI里的查找语句,不是SQL里的查找啊,
我对SQL可是什么都不会啊,要我现在先去学吗?
这个问题结束了再学,时间来不及了!
 
谢谢以上的各位大虾,
本人现在遇到新问题了,用SQL语言(QUERY)查询的时候,她是区分大小写的,怎么样才能不让
它去分大小写啊??很急的!
 
where upcase(字段名) = upcase("abC")
 
谢谢以上的各位大虾,
本人现在遇到新问题了,用SQL语言(QUERY)查询的时候,她是区分大小写的,怎么样才能不让
它去分大小写啊??很急的!


这是你SQL SERVER设置的问题,
安装时有选项,是不大小写敏感。
 
多人接受答案了。
 

Similar threads

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