faint,你的order by 和where 搞倒了 ADOQuery1.SQL.Add('SELECT * FROM 测试表 WHERE 姓名 like %'+Edit4.Text+'% ORDER BY 编号 ');
对,这条语句我是把order by 和where 搞倒了,但改后还是不对啊。 估计是LIKE那一块不对,谁给改改啊。
Delphi+数据库编程 数据库最好不要用中文要不死得..........还有这里错了: 该成: ADOQuery1.SQL.Add('SELECT * FROM 测试 WHERE 姓名 like %'''+Edit4.Text+'''% ORDER BY 编号')。 '''+Edit4.Text+'''
ADOQuery1.SQL.Add('SELECT * FROM 测试 WHERE 姓名 like '+'%'+''''+Edit4.Text+''''+'% ORDER BY 编号'
ADOQuery1.SQL.Add('SELECT * FROM 测试 WHERE 姓名 like %'+''''+Edit4.Text+''''+'% ORDER BY 编号');
我的代码,可以用的: with diaryAdoQuery do begin close; sql.clear; sql.add('select * from '); sql.add(iTableName); sql.add(' where 名称=:名称'); if dateOk then sql.add(' and 日期 between :startDate and :stopDate'); if vipOk then sql.add(' and ok =:ok'); if keyOk then sql.add(' and 内容 like ''%'+keyEdit.text+'%'''); if dateOk then begin parameters.paramByName('startDate').value :=startDateTimePicker.DateTime ; parameters.paramByName('stopDate').value :=stopDateTimePicker.DateTime ; end; if vipOk then parameters.paramByName('ok').value :=true ; parameters.paramByName('名称').value :=iCaption; open; Last ; end;
ADOQuery1.SQL.Add('SELECT * FROM 测试表 WHERE 姓名 like %'+Edit4.Text+'% ORDER BY 编号 ');
估计是LIKE那一块不对,谁给改改啊。
数据库最好不要用中文要不死得..........还有这里错了:
该成:
ADOQuery1.SQL.Add('SELECT * FROM 测试 WHERE 姓名 like %'''+Edit4.Text+'''% ORDER BY 编号')。
'''+Edit4.Text+'''
with diaryAdoQuery do begin
close;
sql.clear;
sql.add('select * from ');
sql.add(iTableName);
sql.add(' where 名称=:名称');
if dateOk then sql.add(' and 日期 between :startDate and :stopDate');
if vipOk then sql.add(' and ok =:ok');
if keyOk then sql.add(' and 内容 like ''%'+keyEdit.text+'%''');
if dateOk then begin
parameters.paramByName('startDate').value :=startDateTimePicker.DateTime ;
parameters.paramByName('stopDate').value :=stopDateTimePicker.DateTime ;
end;
if vipOk then
parameters.paramByName('ok').value :=true ;
parameters.paramByName('名称').value :=iCaption;
open;
Last ;
end;