sql.add 具体应该怎么使用?(10分)

  • 主题发起人 主题发起人 zhuifeng
  • 开始时间 开始时间
Z

zhuifeng

Unregistered / Unconfirmed
GUEST, unregistred user!
addressid是int类型的字段。
为什么 sql.add('select * from addresses where addressid=strtoint(edit1.text)')
在运行时就抱错。
修改为sql.add('select * from addresses where addressid='+edit1.text)
在运行时就可以了,为什么需要这么修改呢?
sql.add需要什么样的输入格式呢?
 
兄弟!
sql.add('select * from addresses where addressid=strtoint(edit1.text)')
这里EDIT1。TEXT是DLEPHI的东东,SQL能认识吗?呵呵
 
with query do
begin
close;
sql.clear;
sql.add(查询语句);
open;
end
 
修改为sql.add('select * from addresses where addressid='+edit1.text)
这样sql就可以识别 edit1.text了吗?
 
是呀,因为Query的Sql是定义成TStrings类型的,这也是为什么在给Query的Sql赋值时需要用字符串的原因,
故就算你的变量是整型的,也是转化成字符串形式,因Eidt1.Text本身就是字符串,当然可以直接用作字符串
的连接操作了,能理解了吗?
 
YNTW说的对
 
是不是在sql.add()中的查询条件,把两个 ''的符号去掉后必须是正确的sql语言是不是?
 
如果你的字段(如addressid)为整型,就直接
sql.add('select * from addresses where addressid='+edit1.text);
如果是字符型,
sql.add('select * from addresses where addressid='''+edit1.text+'''');
 
标准用法1:
with query1 do
begin
close;
sql.clear;
sql.add('select .....');
open;
end
标准用法2:(需要用到模糊查询时:)
begin
if key=vk_return then
begin
with datadelphi.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from mydelphi where content like ''%'+edit1.text+'%''');
open;
end;
end;
end;
 
多谢指教
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部