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


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

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

帅哥哟,离线,有人找我吗?
lsy
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

 回到顶部