注册 登录
编程论坛 Delphi论坛

sql语句的问题

rindybo 发布于 2008-03-12 16:20, 1297 次点击
本人刚接触delphi
在数据库中有张表
字段是 name nvarchar(20)
        age int
两个字段
sql语句是这样写的
sql:='insert into [tablename] values('''+edtname.Text+''','+strtoint(edtage.Text)+')'
但总是提示sql语句错误!
请帮我看下怎么改,谢谢
4 回复
#2
心~梦2008-03-23 11:17
将括号里面的.text去掉看看
#3
心~梦2008-03-23 11:18
edtname.Text edtage.Text 这两个.text
#4
provoke2008-03-23 13:39
sql:='insert into [tablename] values('''+edtname.Text+''','+strtoint(edtage.Text)+')'

sql是String类型的,把strtoint()的整数结果赋值绩给字符串类型的变量,能不错吗
在Delphi中,SQL语句是字符串类型,在数据库系统中数字字段可以不用引号引起来,但那是提交到数据库系统后的形式,就相当于:
insert into [tablename] values('rindybo',20)
而提交到数据库系统之前在Delphi里构造的时候,上面那一串是字符串来的,只是少了两个引号:
sql:='insert into [tablename] values('''+edtname.Text+''','+edtage.Text+')'

假如在edtname和edtage两个编辑框里分别输入rindybo20

要搞清楚引号的用法,不要表错情了
#5
shuihan20e2008-03-24 12:21
这个语句如果你不确实可以SHOWMESSAGE一下
另外可以写成参数化的
sql:='INSERT INTO [tablename] VALUES (:v1,:v2)';
parameters.ParamByName('v1').AsString=EdtName.Text;
parameters.ParamByName('v2').AsInteger:=StrToInt(EdtAge.Text);
1