Delphi与SQL模糊查询(转载)
1.用變量進(jìn)行模糊查詢(xún)??
對(duì)數(shù)據(jù)進(jìn)行模糊查詢(xún)主要用SQL語(yǔ)句LIKE來(lái)實(shí)現(xiàn)。該語(yǔ)句放在Where語(yǔ)句的后面,使用標(biāo)識(shí)符“%”、“_”、“[]”、“[^]”對(duì)數(shù)據(jù)進(jìn)行模糊查詢(xún)。??
例如,對(duì)姓名為“王”,并且姓名為兩個(gè)字的學(xué)生信息。??
Select * FROM MR_Student where 姓名 like '林_'??
例如,查詢(xún)數(shù)學(xué)成績(jī)?cè)?0~79之間的學(xué)生信息。??
Select * FROM MR_Student where 數(shù)學(xué) like '7[0123456789]'??
例如,查詢(xún)除三年級(jí)二班的所有學(xué)生信息。??
Select * FROM MR_Student where 班級(jí) like '三年[^二]_'??
例如,查詢(xún)?nèi)昙?jí)的所有學(xué)生信息。??
Select * FROM MR_Student where 班級(jí)like '三*'??
下面對(duì)姓名進(jìn)行模糊查詢(xún),只要在“姓名”文本框中輸入名字中的任意一個(gè)字,便可以查找相關(guān)人員的信息。??
操作步驟如下:??
(1)運(yùn)行Delphi,在窗體中添加TADOConnection、TADOQuery、TDateTimePicker、TDataSource、TButton和TDBGrid等組件。??
(2)主要程序代碼如下:??
? with ADOQuery1 do??
? begin??
??? close;??
??? SQL.Clear;??
??? SQL.Add('Select * FROM MR_Student where 姓名 like '+''''+'%'+Trim(edit1.Text)+'%'+'''');??
??? open;??
? end;??
上面的SQL語(yǔ)句也可以寫(xiě)成如下形式:??
SQL.Add('Select * FROM MR_Student where 姓名 like ''%'+Trim(edit1.Text)+'%''');??
??
??
2.使用參數(shù)進(jìn)行模糊查詢(xún)??
在Delphi中進(jìn)行模糊查詢(xún)時(shí),可以用TADOQuery組件來(lái)向SQL語(yǔ)句中傳遞參數(shù)。??
其格式為:“Like:參數(shù)名”。??
利用TADOQuery組件的ParamByName方法將值傳遞給參數(shù)。??
* 注意:在Like后面必須加空格。??
下面用TADOQuery組件進(jìn)行參數(shù)傳遞,并對(duì)數(shù)據(jù)進(jìn)行模糊查詢(xún)。??
操作步驟如下:??
(1)運(yùn)行Delphi,在窗體中添加TADOConnection、TADOQuery、TDateTimePicker、TDataSource、TButton和TDBGrid等組件。??
(2)主要程序代碼如下:??
? with ADOQuery1 do??
? begin??
??? close;??
??? SQL.Clear;??
??? SQL.Add('Select * FROM MR_Student where 姓名 like :aa');??
??? Parameters.ParamByName('aa').Value:='%'+trim(Edit1.text)+'%';??
??? open;??
? end;??
????
????
3.復(fù)雜模糊查詢(xún)??
在對(duì)信息進(jìn)行模糊查詢(xún)的時(shí)候,也可以通過(guò)邏輯運(yùn)算符(AND、OR、NOT)插入其他的查詢(xún)條件來(lái)提高查詢(xún)的速度。??
下面是模糊查詢(xún)和其他查詢(xún)方法相結(jié)合而形成的復(fù)雜模糊查詢(xún)。??
操作步驟如下:??
(1)運(yùn)行Delphi,在窗體中添加TADOConnection、TADOQuery、TDateTimePicker、TDataSource、TButton、TComboBox和TDBGrid等組件。??
(2)主要程序代碼如下:??
? if CheckBox1.Checked=true then??
?? Str := ' and 班級(jí)='+''''+ComboBox1.Text+''''??
? else??
?? ComboBox1.Enabled := False;??
? with ADOQuery1 do??
? begin??
?? close;??
?? SQL.Clear;??
?? SQL.Add('Select * FROM MR_Student where 姓名 like ''%'+Trim(edit1.Text)+'%'''+Str);??
?? open;??
? end;
?
轉(zhuǎn)載于:https://www.cnblogs.com/shawnloong/archive/2010/11/11/1874806.html
總結(jié)
以上是生活随笔為你收集整理的Delphi与SQL模糊查询(转载)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: jQuery浏览器版本判断
- 下一篇: .net身份证号码验证