将edit1.text转换成int后,怎么运行就抱错(10分)

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

zhuifeng

Unregistered / Unconfirmed
GUEST, unregistred user!
编写一段程序,根据edit1.text的内容查询表中符合条件的记录
with query1 do
begin
close;
sql.clear;
sql.add('select * from addresses where addressid=strtoint(edit1.text)');
execsql;
open
end
运行时就报错:
[odbc visual foxpro drive]sql:column' ' is not found. process stopped.
请问是什么原因?
 

sql.add('select * from addresses where addressid=strtoint(edit1.text)');
addressid=strtoint(edit1.text)这里错了
 
请问具体错在什么地方,该怎样修改呢?
 
这样写就对了:
sql.add('select * from addresses where addressid='+edit1.text);
 
你输入的字符可能有例如a,b,c的字符,不能转换成integer型..
 
addressid 是int类型的,
在sql语句中这样写 where addressid=2 这样就没问题。
可where addressid=strtoint(edit1.text)就出现上述问题了。
 
我没有输入别的字符啊,只在edit1中输入了 2 这个数字,运行时就出现了上述问题。
 
strtoint不是SQL的有效函数,它只是Delphi的函数
在SQL.ADD('')里面的东西Delphi只是提交给数据库去去执行
 
agree westboy2000
 
如果addressid为整型 where addressid=edit1.text
如果addressid为字符 'where addressid='''+edit1.text+''''
 
sql.add(sqlstring)的“sqlstring”是作为“T-SQL”语句来执行的,而“T-SQL”语言中
没有“strtoint()”这个函数,所以报错。
 
照westboy2000 说的方法修改后就可以了, 谢谢大家了,
不过不知到为什么要这么修改,?
sql.add的输入格式 是什么样子的呢?
 
后退
顶部