起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3850|回复: 3

[结贴] BeX5后端SQL如何加入事务处理

[复制链接]

4

主题

30

帖子

82

积分

初级会员

Rank: 2

积分
82
QQ
发表于 2017-5-25 15:34:31 | 显示全部楼层 |阅读模式
示意代码:

import java.math.*;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.*;

import java.sql.SQLException;
import com.justep.system.data.*;

public class MyJob {

public static String doTicketsSQLInsert(String atTable,String byField,String inDate,String isGetSet,String myTGUID,String toVoucher){


      HashMap<String,String> sqlMap = new HashMap<String,String>();


      String sSQL = "INSERT INTO DM_TTickets(fBillTable,fCodeNum,fDateChar,fFieldNum"
                 + ",fStatus,fTGUID,fTimeTick)"
                 + " VALUES('"+atTable+"','"+sNewNum+"','"+inDate+"','"+byField
                 + "','"+isGetSet+"','"+myTGUID+"',GETDATE()"
                 + ")";
      System.out.println("sSQL:"+sSQL);
      sqlMap.put(DatabaseProduct.MSSQL.name(), sSQL);
      int nEffect = SQL.executeUpdate(sqlMap, null, "/CommonHFC/Comm/data");
      //在这里我想立即提交数据库事务,以便其它用户马上可以读到刚才写入的数据。如何做

}

}

============================================


91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2017-5-25 16:16:50 | 显示全部楼层
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

4

主题

30

帖子

82

积分

初级会员

Rank: 2

积分
82
QQ
 楼主| 发表于 2017-5-26 09:37:41 | 显示全部楼层
http://bbs.wex5.com/forum.php?mo ... &extra=page%3D1 的方法改写如下:
import java.math.*;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.*;

import java.sql.SQLException;
import com.justep.system.data.*;

public class MyJob {

public static String doTicketsSQLInsert(String atTable,String byField,String inDate,String isGetSet,String myTGUID,String toVoucher){

        com.justep.system.data.Transaction tx = null;
        tx = new com.justep.system.data.Transaction();

       HashMap<String,String> sqlMap = new HashMap<String,String>();


       String sSQL = "INSERT INTO DM_TTickets(fBillTable,fCodeNum,fDateChar,fFieldNum"
                  + ",fStatus,fTGUID,fTimeTick)"
                  + " VALUES('"+atTable+"','"+sNewNum+"','"+inDate+"','"+byField
                  + "','"+isGetSet+"','"+myTGUID+"',GETDATE()"
                  + ")";
       System.out.println("sSQL:"+sSQL);
       sqlMap.put(DatabaseProduct.MSSQL.name(), sSQL);
      tx.begin(); //改写点
       int nEffect = SQL.executeUpdate(sqlMap, null, "/CommonHFC/Comm/data");
       //在这里我想立即提交数据库事务,以便其它用户马上可以读到刚才写入的数据。如何做?
      tx.commit(); //改写点
      String sTest=""; //这里设置断点,其他用户读表DM_TTickets时,是在被锁中,读等待中。。。
      //DoSomeThing;
}
//方法执行跳出后,其他用户就可以读出DM_TTickets
}

这个方法,不起作用
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2017-5-26 10:59:04 | 显示全部楼层
SQL.executeUpdate是平台提供的API,平台自己回去控制事务

自己控制事务看看2楼链接中自己控制事务的案例
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-25 02:53 , Processed in 0.053152 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表