读书人

ADOQuery1.SQL.Add的有关问题

发布时间: 2012-06-05 13:54:06 作者: rapoo

ADOQuery1.SQL.Add的问题
关于ADOQuery1.SQL.Add的问题

我想添加数据库的值是写在 edit1,edit2,edit3,edit4 4个控件中的
但是SQL的命令我写了一天都不行 小弟新手 求解答

ADOQuery1.SQL.Add('insert into) 就是 SQL.add添加数据的不会写

我的数据库表名是 name,price,num,other 分别是 name,price,other,是 varchar 类型 num是integer 类型

求可以插入的SQL命令 求解答。 我的4个值分别是 edit1,edit2,edit3,edit4个控件

小弟不知道怎么写了

[解决办法]

Delphi(Pascal) code
用参数形式,这是其中一个方法:with adoquer1 dobegin  close;  sql.clear;  sql.add('insert into ([name],[price],[num],[other]) values(:name,:price,:num,:other)');  parameters.paramByName('name').Value:=Edit1.Text;  parameters.paramByName('price').Value:=Edit2.Text;  parameters.paramByName('num').Value:=Edit3.Text;  parameters.paramByName('other').Value:=Edit4.Text;  execsql;end;
[解决办法]
不用参数形式:
Delphi(Pascal) code
var  s:string;  aName:string;  aPrice:Double;  aNum:Int;  aOrther:string;begin  aName:=Edit1.Text;  aPrice:=StrToFloat(Edit2.Text);  aNum:=StrToInt(Edit3.Text);  aOrther:=Edit4.Text;  s:='INSERT INTO OneTbl(Name,Price,Num,Orther) '+     'VALUES ('''+aName+''','+FloatToStr(aPrice)+','+IntToStr(aNum)+','''+aOrther+''')';  with adoquery1 do  begin    Close;    SQL.Clear;    SQL.Add(s);    try      ExecSQL;    finally      Close;    end;  end;end;
[解决办法]
这样写:
表名是Table1,字段名如楼主所说,是name:varchar,price:varchar,num:int,other:varchar
Delphi(Pascal) code
begin  with ADOQuery1 do   begin    Close;    Sql.Clear;    Sql.add('insert into Table1(name,price,num,other) ');    Sql.add('values('''+edit1.text+''','''+edit2.text+''','+strtoint(edit3.text)+','''+edit4.text+''')');    try      ExecSQL;    except      showmessage('数据保存失败!');    end  end;end; 

读书人网 >.NET

热点推荐