oracle的自带事务
来源:互联网 发布:mac os 10.12 beta5 编辑:程序博客网 时间:2024/05/02 04:58
/// <summary> /// 单据提交 00-00正常 00-01提交成功未上传物流文件 01单据不存在 02状态不正确 03没上传物流文件 04单据关闭成功 05已出库 06出库失败 07库存不足 08无dn明细 09校验不通过 /// </summary> /// <param name="dtParameter"></param> /// <returns></returns> public static string Submit(string dnNo, string computerNo, string isImport, string cacheKey){ using (OracleConnection conn = new OracleConnection(OracleHelper.InstanceWMS.GetDBString("WMSDB"))) { string Ret = "01"; if (isImport != "1") { return "09"; } conn.Open(); OracleTransaction trans = conn.BeginTransaction(System.Data.IsolationLevel.ReadCommitted); try { DataTable dn = Get_DnBill(dnNo); if (dn == null || dn.Rows.Count == 0) { return "01"; } string Status = dn.Rows[0]["STATUS"] == DBNull.Value ? "10" : dn.Rows[0]["STATUS"].ToString(); //并发拦截 if (Status == "10" || Status == "20") { Ret = SubmitDa(dnNo, computerNo, cacheKey, trans); if (Ret == "00-00" || Ret == "00-01") { trans.Commit(); } else { trans.Rollback(); } } else { Ret = "02"; } } catch (Exception ex) { Ret = ex.Message; trans.Rollback(); } return Ret; } } /// <summary> /// 提交的数据访问 /// </summary> /// <param name="dnNo"></param> /// <param name="computerNo"></param> /// <param name="cacheKey"></param> /// <returns></returns> private static string SubmitDa(string dnNo, string computerNo, string cacheKey, OracleTransaction trans){ string Ret = "01"; OracleCommand com = trans.Connection.CreateCommand(); com.Transaction = trans; com.CommandType = CommandType.StoredProcedure; com.CommandText = "PKG_DNBILL.PRO_DN_OUTBOUND"; OracleParameter[] Parames=new OracleParameter[4]; Parames[0] = new OracleParameter("PS_DN_NO", OracleType.VarChar); Parames[0].Direction = ParameterDirection.Input; Parames[0].Value = dnNo; Parames[1] = new OracleParameter("PS_COMPUTER_NO", OracleType.VarChar); Parames[1].Direction = ParameterDirection.Input; Parames[1].Value = computerNo; Parames[2] = new OracleParameter("PS_CACHEKEY", OracleType.VarChar); Parames[2].Direction = ParameterDirection.Input; Parames[2].Value = cacheKey; Parames[3] = new OracleParameter("PC_RESULT", OracleType.Cursor); Parames[3].Direction = ParameterDirection.Output; com.Parameters.AddRange(Parames); DataTable table = new DataTable(); OracleDataAdapter da1 = new OracleDataAdapter(com); da1.Fill(table); if (table != null && table.Rows.Count > 0) { Ret = table.Rows[0][0].ToString(); } return Ret; }
0 0
- oracle的自带事务
- Oracle自带的用户
- EF 自带事务
- ORACLE自带的JDBC源代码解析
- ORACLE自带的JDBC源代码解析
- Oracle自带的一个Oci8例子
- oracle自带的查错工具
- 获取ORACLE自带的信息
- 查询oracle自带的表
- ORACLE 自带的元数据管理
- ORACLE里面自带的参数
- oracle 自带的定时任务
- ORACLE 自带的元数据管理
- Oracle自带的表和视图
- oracle 自带方法 的 用法
- hibernate自连接--典型的oracle自带emp实现
- Oracle 关于oracle自带的行转列函数
- Oracle数据库事务与序列实现的自增id
- 游标和指针
- 【Mysql】分组取得最新值的相关SQL改写
- leetcode--Contains Duplicate II
- Dialog 中有EditText时,打开自动弹出软键盘,关闭时隐藏软键盘
- 贝塞尔曲线初探
- oracle的自带事务
- SpringMVC 异常处理
- Markdown使用手册
- 网站性能优化/数据库调优
- js运算符的优先级
- windows 10 ISO 纯净版 官方来源
- 侧拉菜单SlidingMenu的用法
- 时间日期格式
- firefox about:config