这个sql的写法为什么是就是不能查询?(30分)

  • 主题发起人 主题发起人 hautjie
  • 开始时间 开始时间
H

hautjie

Unregistered / Unconfirmed
GUEST, unregistred user!
我在写一个学生查询的数据库;有一个sql查询语名句如下:
button1为开始查询.数据库为xuesheng.db
procedure TForm1.Button1Click(Sender: TObject);
begin
query1.SQL.Clear;
query1.SQL.Add('select 姓名,年龄');
query1.SQl.Add('FROM xuesheng');{源表}
if(edit1.text<>'')then //查询条件
query1.SQl.Add(' AND 姓名='''+edit1.Text+''''); //只查询姓名
//就是这一句,我想用来设置只查询姓名,为什么不查询时是错误的?
//帮忙看看!:(
try
query1.Prepare;{准备展开query1语句}
query1.Open;
except
showmessage('不好意思,没有找到查询条件!')
end;
请大虾帮忙,这30分虽然少了点,可是我的不多了,呵呵,谢谢了.
 
query1.SQl.Add(' AND 姓名='''+edit1.Text+'''');
->query1.SQl.Add(' where 姓名='''+edit1.Text+'''');
 
写法有问题。给你个例子吧!
var strsql:string;
begin
if(edit1.text<>'')then //查询条件
strsql="select * from.......";//一次写完全部
query1.close;// 这句最好加上
query1.SQL.Clear;
query1.SQL.Add(strsql);
try
query1.Prepare;{准备展开query1语句}
query1.Open;
except
showmessage('不好意思,没有找到查询条件!')
end;

你的问题:是不是多了个and.你把具体的sql打出看看。有何能是语法错
 
少了个WHERE多了个AND
建议你用FORMAT函数生成SQL语句

 
下面是我在程序中用的方法可以参考:
var
s_sql : string;
begin
s_sql := 'select 姓名,年龄 from xuesheng where 1=1';
if edit1.text <> '' then s_sql := s_sql+' and 姓名='''+edit1.text+'''';
with query1 do
beign
close;
sql.clear;
sql.add(s_sql);
open;
end;

 
谢谢各位:问题已经解决.
特别感谢lodgue朋友.
 

if(edit1.text<>'')then //查询条件
之前加入Where子句,如:
query1.SQl.Add(' WHERE (1 = 1)');
这样就没问题了。
 

Similar threads

回复
0
查看
1K
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
504
import
I
后退
顶部