有密码的ACCESS表的更新问题

zxjng 2004-09-01 11:35:05
我有一个加密码的ACCESS表,可以连上,单独的什么操作都可以,更新,查询什么的
可是加了事务以后,ADOQuery1.connection.begintrans 以后的都不能执行,跳到
except rollback去了,是怎么回事啊?
不加密码的事务处理就没有这个问题,遇见过的兄弟多指教!
...全文
112 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxjng 2004-09-01
  • 打赏
  • 举报
回复
同时更新多个表的时候用事务啊,要不有的表更新了有的表失败了怎么办?
代码如下:(没有密码的时候可以执行,去掉事务相关的语句也可以执行)
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;
angle097113 2004-09-01
  • 打赏
  • 举报
回复
没有遇到你说的问题的
想冒昧的问一句:你是为什么需要这个ADOQuery1.connection.begintrans呢?
aiunong 2004-09-01
  • 打赏
  • 举报
回复
我是说在你的事务处理过程中不能再加try ..except..
如果还不行的话,你就要看一下你的代码了。或者帖出来看看。
zxjng 2004-09-01
  • 打赏
  • 举报
回复
而且只用了一次,没有密码的ACCESS都可以用,加了密码就要跳过了
zxjng 2004-09-01
  • 打赏
  • 举报
回复
不用 try except 怎么rollback啊?
aiunong 2004-09-01
  • 打赏
  • 举报
回复
access 库好象只能用一次 try except
你在事务处理中把try ..except 去掉试试。
zxjng 2004-09-01
  • 打赏
  • 举报
回复
问题解决,谢谢各位!
还是密码的问题,连接的密码有问题!
BigAngell 2004-09-01
  • 打赏
  • 举报
回复
aiunong 2004-09-01
  • 打赏
  • 举报
回复
不太清楚了,好象没有问题,
在sql.Text:='update product set hasset=''是'' where proId=%s';
之前加上 sql.clear;最好。

替你up.

2,495

社区成员

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

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