请问PB里写SQL语句是否需要commit?

XX_OO_GIRL 2016-09-28 02:12:51
请问PB里写SQL语句是否需要commit?窗口在update时如果SQLCA.AutoCommit = False时需要commit或者关闭该窗口才能更新数据库,但我在PB里写SQL语句修改数据库从来没用过commit也没有问题,小疑惑希望大家帮忙
...全文
2320 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
WorldMobile 2016-10-20
  • 打赏
  • 举报
回复
如果你是单机版的程序或者只有一个人用,无论你怎么用都可以,不会出问题的 如果你是网络版并且多个人用,就需要注意 用自动提交,存在这样的问题,一段处理部分执行成功,然后提交了,其它部分执行出错,回滚了,数据可能会发生异常。 应该把自动提交设置为false,然后自己手动commit或者rollback,这是正确的做法
hovoy 2016-10-18
  • 打赏
  • 举报
回复
引用 3 楼 leonjuno 的回复:
真理是autocommit 一定要设置成false 真理是sql语句结束后或dw.update() = 1 后,手动commit transaction。 真理是,如果你不这样做,你就是pb菜鸟。
leonjuno 2016-10-17
  • 打赏
  • 举报
回复
真理是autocommit 一定要设置成false 真理是sql语句结束后或dw.update() = 1 后,手动commit transaction。 真理是,如果你不这样做,你就是pb菜鸟。
sbks 2016-09-29
  • 打赏
  • 举报
回复
如果事务对象sqlca已经设置了autocommit=false,那么事务是一定要手工提交或回滚的,同时这个特性还受到以下影响而会自动提交 1.每次使用sqlca时,都进行连接和断开连接,那么sqlca里的commit on disconnect这个特性产生效果 2.数据库是mysql的myisam引擎,该引擎不支持事务控制,所以,有无手工commit无济于事 3.还有其它的数据库不支持事务控制 除此之外,还没想到有什么情况能不用手工提交的.无数的项目告诉我,如果autocommit=false不提交,一定会锁表
dyf0130 2016-09-28
  • 打赏
  • 举报
回复
你用的是SYBASE 或 Ms SQL server吧 自动提交模式是 SQL Server 数据库引擎的默认事务管理模式。

752

社区成员

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

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