我在做数据库查询时,本来只要按姓名查询,这样写就可以了 query1.sql.add('select * from tela where 姓名=''+edit1.Text+''); (为何按数字查询的语句却这样写: query1.sql.add('select * from tela where 电话号码='+edit2.Text); 上面两句的引号具体是怎么分析的,看不明白,请高手指点。谢谢!)
猪猪的回答完全正确 而且 我也多次回答过同类的问题 我也一直在提醒大家: 做这样的字符串连接最好用 Format 这个非常非常非常好用的函数 如数字: Format('Select * From tela Where 号码=%d',[StrToInt(edit2.txt)]) ; 字符串: Format('Select * From tela Where 串=%s',[Edt.txt]);
如下: procedure ******** var Adoqry : TAdoQuery ; sSql : String ; begin sSql := Format('Select * From ** Where nam=%s%s%s',['',Str,'']) AdoQry := TAdoQuery.Create(nil) ; With AdoQry do begin Connection := dm.AdoConn ; //数据库连接 With Sql do begin Add(sSql) ; end ; Prepared ; Open ; end ; end ; end ;