adoquery1 dataset not in edit or insert mode,不知道什么原因……

lydia_chen 2012-05-07 09:31:04
我用delphi中的控件:adoquery1,datasource,dbgrid连接数据库,其属性设置分别为
Adoquery1 Connectionstring= Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=如家宾馆信息系统管理与实现;Data Source=PC-201105111226
SQL语句:select * from 订单管理,客房信息表 where 订单管理.房号=客房信息表.房号

Active=true
Datasource1 Dataset=adoquery1
dbgrid Datasource=datasource1
异常提示:每当调用SQL的update or insert 方法是总提示:adoquery1 dataset not in edit or insert mode,不知道什么原因……
程序代码如下:
case Radiogroup1.ItemIndex of
0:
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select PO,订单管理.身份证号,订单管理.姓名,订单管理.联系方式,订单管理.房号,订单管理.押金,状态,备注 from 订单管理,客房信息表,客户信息表 where 订单管理.房号=客房信息表.房号 and 客房信息表.房号=客户信息表.房号 and PO='''+edit1.text+''' and 订单管理.身份证号='''+edit12.text+'''');
adoquery1.Open;

//核对信息无误后,将预订订单转化成正式订单
adoquery1.edit;
adoquery1.FieldByName('状态').AsString:='满' ;
adoquery1.FieldByName('备注').AsString:='已登记入住' ;
adoquery1.SQL.Add('Insert into 订单管理(入住日房价,所交定金) values('+quotedstr('edit14.text')+','+quotedstr('edit15.text')+')');
adoquery1.ExecSQL;
adoquery1.Post;
//将PO号装换成正式订单PO号,使用字符串替换
if(edit14.text='') or (edit15.text='') then
showmessage('请填入入住日房价或所交定金')
else showmessage('注册登记成功');
end;
...全文
729 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuihan20e 2012-05-15
  • 打赏
  • 举报
回复
直接update清晰一些
kaikai_kk 2012-05-14
  • 打赏
  • 举报
回复
edit/append 用post
insert/update 用execsql
lydia_chen 2012-05-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
adoquery1.edit;
adoquery1.FieldByName('状态').AsString:='满' ;
adoquery1.FieldByName('备注').AsString:='已登记入住' ;
adoquery1.Post;//放到前面。
adoquery1.SQL.Add('Insert into 订单管理(入住日房价,所交定金) values('+qu……
[/Quote]

明白,太谢谢了
lydia_chen 2012-05-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
CASE5156这个地方写不对
quotedstr('edit14.text')
应该修改为:
quotedstr(edit14.text)
--------------------------------
quotedstr('edit15.text')
应该修改为:
quotedstr(edit15.text)
--------------------------------
……
[/Quote]


谢谢,帮了大忙了
lydia_chen 2012-05-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
CASE5156这个地方写不对
quotedstr('edit14.text')
应该修改为:
quotedstr(edit14.text)
--------------------------------
quotedstr('edit15.text')
应该修改为:
quotedstr(edit15.text)
--------------------------------
……
[/Quote]


谢谢,帮了大忙了
bdmh 2012-05-07
  • 打赏
  • 举报
回复
顺序混乱,如果你先edit..那么紧跟着post,然后再去执行insert操作
山东蓝鸟贵薪 2012-05-07
  • 打赏
  • 举报
回复
CASE5156这个地方写不对
quotedstr('edit14.text')
应该修改为:
quotedstr(edit14.text)
--------------------------------
quotedstr('edit15.text')
应该修改为:
quotedstr(edit15.text)
--------------------------------
adoquery1.SQL.Add('Insert into 订单管理(入住日房价,所交定金) values('+quotedstr('edit14.text')+','+quotedstr('edit15.text')+')');
这行代码完全修改为如下:
adoquery1.SQL.Add('Insert into 订单管理(入住日房价,所交定金) values('+quotedstr(edit14.text)+','+quotedstr(edit15.text)+')');
我看见佛 2012-05-07
  • 打赏
  • 举报
回复
adoquery1.edit;
adoquery1.FieldByName('状态').AsString:='满' ;
adoquery1.FieldByName('备注').AsString:='已登记入住' ;
adoquery1.Post;//放到前面。
adoquery1.SQL.Add('Insert into 订单管理(入住日房价,所交定金) values('+quotedstr('edit14.text')+','+quotedstr('edit15.text')+')');
adoquery1.ExecSQL
fox600123 2012-05-07
  • 打赏
  • 举报
回复
adoquery1.SQL.Add('Insert into 订单管理(入住日房价,所交定金) .......
////这句已经对上面的edit进行了隐式Post,后面再Post一次当然出错了。

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧