sql的送分题!(40分)

  • 主题发起人 主题发起人 毛毛虫
  • 开始时间 开始时间

毛毛虫

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个edit框,我有如下语句为什么不行呢?
……
query1.clear;
……
Query1.sql.add('select * form 表 where 字段名 like '+'"edit1.text"')
……
可是它为什么把edit1.text 作为一个字符串来处理呢??
请告诉解决的办法
 

Query1.sql.add('select * from 表 where 字段名 like "'+edit1.text+'"');
 
你写错了,不是双引号,是单引号
Query1.Add('select * from 表 where 字段名 like '''+edit1.text'''');
 
Query1.SQL.Add('select * from 表 where 字段名 like :Value');
Query1.ParamByName('Value').AsString := Edit1.Text;
Query1.Open;
 
Query1.Add('select * from 表 where 字段名 like '+''''+edit1.text+'''');
 
参数查询,妙用无穷!很多东西不用参数查询是不行的,例如整数型、浮点型、日期型
的查询就不能用字串拼接,而要用参数查询才行。
 
Query1.SQL.Clear;
Query1.SQL.Add('select * from 表 where 字段名 like :V_param');
Query1.ParamByName('V_param').AsString := Edit1.Text;
Query1.Open;
 
补充一点: "like" 只能用于字符型字段的查询。
 
agree with dedman
 
如果是模糊查询呢?
Query1.sql.add('select * form 表 where 字段名 like '+'"edit1.text_"')
我该怎么办呢?



 
如果是模糊查询:
Query1.sql.add('select * form 表 where 字段名 like :Value_Name');
Query1.Params[0].Value :='%'+Edit1.Text+'%';
 
请问如何使 TQuery.SQL 的操作立即保存呢?
 
把RequestLive设为True ;
 
应该是
Query1.sql.add('select * form 表 where 字段名 like '+edit1.text)
 
to zengr
>>你写错了,不是双引号,是单引号

可以用双引号,
而且用双引号将使程序更好读



 
接受答案了.
 
后退
顶部