procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.close;
ADOQuery1.SQL.text:='insert into veresiye (product,price,piece,total)
VALUES (:par0,:par1,:par2,:par3)';
ADOQuery1.Parameters.ParamByName('par0').Value:=Edit1.Text;
ADOQuery1.Parameters.ParamByName('par1').Value:=Edit2.Text;
ADOQuery1.Parameters.ParamByName('par2').Value:=Edit3.Text;
ADOQuery1.Parameters.ParamByName('par3').Value:=Edit4.Text;
ADOQuery1.Open;
ADOQuery1.ExecSQL;
end;
我收到此错误消息:
Adoquery1:CommandText不返回结果集
为什么会出现此错误,我该如何解决?
最佳答案
调用ExecSQL执行当前分配给
SQL属性。使用ExecSQL执行不返回查询的查询
游标到数据(例如INSERT,UPDATE,DELETE和CREATE TABLE)。
ExecSQL返回反映行数的整数值
受执行的SQL语句影响。注意:对于SELECT语句,
调用Open而不是ExecSQL或将Active属性设置为true。至
为了提高性能,应用程序通常应准备查询
通过在调用ExecSQL之前将Prepared属性设置为true
第一次。
资料来源:http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/ADODB_TADOQuery_ExecSQL.html
要在表中插入值,请使用:
ADOQuery1.close;
ADOQuery1.SQL.text:='insert into veresiye (product,price,piece,total)
VALUES (:par0,:par1,:par2,:par3)';
ADOQuery1.Parameters.ParamByName('par0').Value:=Edit1.Text;
ADOQuery1.Parameters.ParamByName('par1').Value:=Edit2.Text;
ADOQuery1.Parameters.ParamByName('par2').Value:=Edit3.Text;
ADOQuery1.Parameters.ParamByName('par3').Value:=Edit4.Text;
ADOQuery1.ExecSQL;
要从表中获取值,请使用:
ADOQuery1.close;
ADOQuery1.SQL.text:='select * from veresiye';
ADOQuery1.Open;
关于sql - Adoquery1:CommandText不返回结果集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37460195/