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个控件
小弟不知道怎么写了
[解决办法]
用参数形式,这是其中一个方法: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;
[解决办法]
不用参数形式:
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
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;