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;
...全文
524 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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操作
回复
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一次当然出错了。
回复
相关推荐
发帖
数据库相关
创建于2007-08-02

2454

社区成员

Delphi 数据库相关
申请成为版主
帖子事件
创建了帖子
2012-05-07 09:31
社区公告
暂无公告