Foxtable(狐表)用户栏目专家坐堂 → 为什么foxtable不是用事物提交数据


  共有4949人关注过本帖树形打印复制链接

主题:为什么foxtable不是用事物提交数据

帅哥哟,离线,有人找我吗?
longtechwj
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:659 积分:4686 威望:0 精华:0 注册:2013/6/11 17:51:00
为什么foxtable不是用事物提交数据  发帖心情 Post By:2014/3/1 9:58:00 [只看该作者]

为什么foxtable不是用事物提交数据
我库存扣了,单却没有生成,网络有
时候会断一下。每次都这样

 回到顶部
帅哥哟,离线,有人找我吗?
longtechwj
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:659 积分:4686 威望:0 精华:0 注册:2013/6/11 17:51:00
  发帖心情 Post By:2014/3/1 10:01:00 [只看该作者]

弄得我每次都要去用SQL语句调库存
很危险

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/3/1 10:01:00 [只看该作者]

在保存的时候恰好中断的概率很低,每次都这样的可能性几乎没有,所以你的问题应该不是这个原因,是代码不严谨造成的。

而且如果网络中断,不管是保存前,还是保存中,都会有错误提示的。

 

如果用事务,可以参考:

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=46326&skin=0

 

[此贴子已经被作者于2014-3-1 10:02:36编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/3/1 10:02:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
longtechwj
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:659 积分:4686 威望:0 精华:0 注册:2013/6/11 17:51:00
  发帖心情 Post By:2014/3/1 10:10:00 [只看该作者]

我是说出现的次数太多了,不是每张单都这样

 回到顶部
帅哥哟,离线,有人找我吗?
longtechwj
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:659 积分:4686 威望:0 精华:0 注册:2013/6/11 17:51:00
  发帖心情 Post By:2014/3/1 10:18:00 [只看该作者]

他们有的人不知道马上把那个异常对话框关掉,这个编号在里面还没存在
下一个人在里面用这个编号已经插入进去了,然后就会报主键约束错误

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/3/1 10:21:00 [只看该作者]

可以考虑使用Try CatCh 出现错误,捕获错误在CatCH中捕获错误,先执行插入编号,再弹出错误提示.

或者你直接用事务吧.

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/3/1 10:23:00 [只看该作者]

事务会在2015版加入,目前可以参考其他用户的例子写一下。

 回到顶部
帅哥哟,离线,有人找我吗?
longtechwj
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:659 积分:4686 威望:0 精华:0 注册:2013/6/11 17:51:00
  发帖心情 Post By:2014/3/1 10:26:00 [只看该作者]

谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/3/1 10:32:00 [只看该作者]

下面是本人在Oracle数据库里写的函数,执行也很简单:

函数:

CREATE OR REPLACE Function Func_提前出院医保审核_UPDATE
(
病人id_In number,
住院次数_In Number,
收费细目id_in Number,
单据号_in varchar2
)
Return Varchar2
Is
Pragma Autonomous_Transaction;
v_修改状态 Number := 0;
v_姓名 Varchar2(64);
v_是否上传0 Number;
v_是否上传1 Number;
Begin
Select Sum(nvl(是否上传,0)) Into v_是否上传0 From 病人费用记录 Where (记录性质=3 Or 记录性质=2) And (是否上传=0 Or 是否上传 Is Null) And 记录状态<>1 And 病人id=病人id_In And 主页id=住院次数_In And 收费细目id=收费细目id_in And No=单据号_in;
While v_修改状态 = 0 Loop
  Update  病人费用记录 Set 是否上传=1 Where (记录性质=3 Or 记录性质=2) And (是否上传=0 Or 是否上传 Is Null) And 记录状态<>1 And 病人id=病人id_In And 主页id=住院次数_In And 收费细目id=收费细目id_in And No=单据号_in;
   Commit;
      v_修改状态 := 1;
End Loop;
Select Distinct 姓名 Into v_姓名 From 病人信息 Where 病人id=病人id_In;
Select Sum(nvl(是否上传,0)) Into v_是否上传1 From 病人费用记录 Where (记录性质=3 Or 记录性质=2) And 记录状态<>1 And 病人id=病人id_In And 主页id=住院次数_In And 收费细目id=收费细目id_in And No=单据号_in;
If v_是否上传0=0 And v_是否上传1>0 Then
Return (v_姓名||' 修改成功');
Else
Return (v_姓名||' 修改失败');
End If;
Exception
 When Others Then
  Rollback;
  Return (v_姓名||' 修改失败');
End Func_提前出院医保审核_UPDATE;

 

执行

Select Func_提前出院医保审核_UPDATE([0],[1],[2],[3]) As 返回信息 From dual

 

SQLSERVER里面,怎么弄,却不知道了。

[此贴子已经被作者于2014-3-1 10:35:58编辑过]

 回到顶部
总数 14 1 2 下一页