我用query向表中添加记录,错在哪里?!最好详细些(100分)

  • 主题发起人 主题发起人 clyqhx
  • 开始时间 开始时间
C

clyqhx

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm2.Button1Click(Sender: TObject);
var str1,str2,str3:string;
begin
str1:=edit1.text;
str2:=edit2.text;
str3:=edit3.text;
with query1 do
begin
close;
sql.Clear;
sql.add('insert into mydb(name,address,phone) values(str1,str2,str3)');
execsql;
end;
end;
 
说得明白点,出了什么错误
 
呵呵
是错的
 
错了,要这样写:
sql.add('insert into mydb(name,address,phone) values('''+str1+''','''+str2+''','''+str3+''')');
不要少写了引号。[8D]
 
不好意思,上面少写了一个加号,这次补上,[:)]
sql.add('insert into mydb (name,address,phone) values(''' + str1 + ''',''' + str2 + ''',''' + str3 + ''')');
 
错误提示:
Invalid field name.str1
 
这是说你的字段名写错了,你在检查一下。
另外,那三个字段是不是都是字符型的?如果是就没问题。
 
to westboy2000 我给你加分
 
试试我这个方法吧!
procedure TForm2.Button1Click(Sender: TObject);
var str1,str2,str3:string;
begin
with query1 do
begin
close;
sql.Clear;
sql.add('insert into mydb(name,address,phone)');
sql.add('values(:a,:b,:c)');
parambyname('a').asstring:=edit1.text;
parambyname('b').asstring:=edit2.text;
parambyname('c').asstring:=edit3.text;
query1.execsql;
end;
end;
//parambyname('').asstring:='' 是强行转换,用这个方法就不用那些引号了,这样方便也不
容易出错。
哈哈,如果通过了记得给分我啊。。^_^ ^_^
 
后退
顶部