我有一个加密码的ACCESS表,可以连上,单独的什么操作都可以,更新,查询什么的
可是加了事务以后,ADOQuery1.connection.begintrans 以后的都不能执行,跳到
except rollback去了,是怎么回事啊?
不加密码的事务处理就没有这个问题,遇见过的兄弟多指教!
可是加了事务以后,ADOQuery1.connection.begintrans 以后的都不能执行,跳到
except rollback去了,是怎么回事啊?
不加密码的事务处理就没有这个问题,遇见过的兄弟多指教!
解决方案 »
- 用hook检测控件的内容是否发生改变,该怎么做?
- delphi 2006 的相关书籍出了吗,怎末书店还没有卖?
- 问题啊问题
- 我是菜鸟,寻求网络兼职delphi技术顾问,有请delphi高手进入。
- 急!!!我怎样才能将当天新录入的数据(table1)追加到表table2中呢?
- 用help manual 制作帮助文件的问题?
- 为什么啊,我最亲密的好友就这样离开了人世啊,苍天你没长眼睛啊!
- 步入线程,有困难!-----------中秋Haipy!
- 如何做一带背景色的speedbutton控件。¥70分
- 怎么通过编程实现WIN98中的WINPOPUP的发送和接收消息的功能?
- 打开文件问题,请各位帮忙(急)!
- 小弟菜有个问题请教,高手请进!!
你在事务处理中把try ..except 去掉试试。
如果还不行的话,你就要看一下你的代码了。或者帖出来看看。
想冒昧的问一句:你是为什么需要这个ADOQuery1.connection.begintrans呢?
代码如下:(没有密码的时候可以执行,去掉事务相关的语句也可以执行)
with ADOQuery4 do
begin
proId:=ADOQuery2.FieldByName('proId').AsString;
try
Connection.BeginTrans;
sql.Text:='insert into proIndex(proId,matId,num,[time]) values(%s,%s,%s,''%s'')';
sql.Text:=Format(sql.Text,[proId,FMatId[combobox2.ItemIndex],Edit4.Text,DateTimeToStr(now)]);
ExecSQL;
sql.Text:='update product set hasset=''是'' where proId=%s';
sql.Text:=Format(sql.Text,[proId]);
ExecSQL;
Connection.CommitTrans;
ShowMessage('添加成功!');
except
Connection.RollbackTrans;
ShowMessage('添加失败!');
end;
end;
在sql.Text:='update product set hasset=''是'' where proId=%s';
之前加上 sql.clear;最好。替你up.