DELPHI当前提供程序不支持从单一执行返回多个记录集

ADOQuery4.Close;ADOQuery4.SQL.Clear;ADOQuery4.SQL.Add('insertinto开设的房台(编号,房间名称,餐饮部门,服... ADOQuery4.Close;
ADOQuery4.SQL.Clear;
ADOQuery4.SQL.Add('insert into 开设的房台 (编号,房间名称,餐饮部门,服务费,服务员,开房时间)');
ADOQuery4.SQL.Add(' values (:BH,:FJMC,:CYBM,:FWF,:FWY,:KFSJ)');
ADOQuery4.Parameters.ParamByName('BH').Value:=DBText1.Caption;
ADOQuery4.Parameters.ParamByName('FJMC').Value:=DBText2.Caption;
ADOQuery4.Parameters.ParamByName('CYBM').Value:=DBText4.Caption;
ADOQuery4.Parameters.ParamByName('FWF').Value:=DBText5.Caption;
ADOQuery4.Parameters.ParamByName('FWY').Value:=LJ;
//LJ是lJ:=LJ+ListBox1.Items.Strings[ListBox1.ItemIndex]
//listbox里面的值是用另一个adoquwey5查询字段循环出来的;
ADOQuery4.Parameters.ParamByName('KFSJ').Value:=Datetimetostr(now());
ADOQuery4.ExecSQL;
执行后 表的确有插入记录 但我的DBGrid却显示空白了 连原来的都没了 我去问别人跟我说后面加:
adoquery4.Active:=true; 加了就出错了
展开
 我来答
googleyeyou
推荐于2016-11-14 · TA获得超过186个赞
知道小有建树答主
回答量:269
采纳率:100%
帮助的人:131万
展开全部
这是因为你的SQL语句返回了多个数据集。检查一下你的SQL。
例如SQL为: select * from a select * from b
返回了两个数据集,就会报上面的错误

那你可以动态生成一个ADOQuery 来替换ADOQuery4.因为dbgrid只是ADOQuery4的表现控件,你用ADOQuery4来插入数据了,就没有数据集了。

ADOQuery:= TADOQuery.Create(nil);
try
//执行你的代码
finally
ADOQuery.Free;
ADOQuery4.refresh; //最后别忘了刷新ADOQuery4
end;
EdisonChan1982
2010-11-17 · TA获得超过451个赞
知道小有建树答主
回答量:134
采纳率:0%
帮助的人:85.6万
展开全部
一般,用于写数据记录的Query,跟用于显示数据到DBGrid中的Query,两个Query是独立的。
当用写记录的Query执行完Insert操作后,用于显示数据的Query就执行一下Refresh过程,这样就能刷新出新的数据。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
taiyangdaohome
2018-05-12
知道答主
回答量:4
采纳率:0%
帮助的人:2442
展开全部
这是ADO的缺陷,当使用oracle的with语句时就会发生此错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式