用Java+Access做的一个信息管理系统,
需要将其放在局域网上使用,
请问有什么比较简单的方法可以转换?
望高手指点!

解决方案 »

  1.   

    access可以通过IP访问吗?没试过,你可以考虑将数据库转为mysql
      

  2.   

    首先指出一下你的错误,不是C/S 而应该是B/S.
    没有什么特别简单的方法。只是你以前的那些SQL语句还可以用。
    其他的都得要改。
    1.页面都是需要你从新做的。等于是把你的C/S操作界面全换成了B/S的网页。
    2.要考虑数据同异步问题。如一个表当什么时候是只能有一个人来改的。
    总之和做个新的系统差不多吧。
      

  3.   

    放在局域网跟用不用C/S结构有什么关系?用B/S不是很好吗?
      

  4.   


    倒,别人放局域网上用一定要b/s吗??和access最接近的是mssql,改动的地方最少。只要把数据库连接字符串改一下就好,如果你在配置文件里面的话程序不用改。msssql放到局域网上的机器上就可以了。另外为了防止读脏数据,更新丢失问题,需要在每个表中加入modifiedtime,在update语句中加入where modifiedtime=xxxx,xxxx是你上次取数据的值,大致这样,改动不是很多
      

  5.   

    恩。是的。要用B/S 的。这样大家的数据才能一起操作。程序才能一起更新(当然webStart 是可以。但是没用过)
    你要是用C/S 数据怎么汇总。直接靠吗?
      

  6.   


    数据库服务器放在192.168.0.5上
    jdbc连接字符串上localhost改成192.168.0.5,每个用户的机器上部署应用程序不可以吗,为什么非要转成b/s的
      

  7.   

    当然可以通过改数据库的连接的方式达到对统一个库的操作。但是你想过数据同步的问题吗?
    多个人对表中的一个状态进行更改时,你怎么搞?锁定一个表,其他人等?再者说你程序升级了,
    还要一个一个的给局域网中的每台机子更新。是很痛苦的。这个正是B/S的优势所在啊。
    客户端有个IE就Ok。
      

  8.   


    我在前面已经说过了
    另外为了防止读脏数据,更新丢失问题,需要在每个表中加入modifiedtime,在update语句中加入where modifiedtime=xxxx,xxxx是你上次取数据的值,大致这样,改动不是很多就算你用b/s实现没有这个问题了,你自己想一下吧。为什么你看csdn帖子的时候明明没有回帖等你回帖成功以后却发现N多人已经回帖了?安全的系统应该提示你,你的数据已经过期了,请刷新新的数据再次提交。这是社区,为所谓的。
      

  9.   

    至少用B/S可以用同步的机制很好的解决。
    因为所有的数据操作的请求都是通过一种方式来处理,只有一个入口。
    不像你说的那种每个客户端都能操作数据库。
    由于只有服务器上的Dao能操作数据库,就可以用对象锁了。
    如:
    Object rebuildTreeLock = new Object();//对象锁
    private void rebuildCourseNodeTreeCode(String courseId,CourseNode parentNode){
    synchronized (this.rebuildTreeLock) {
    _rebuildCourseNodeTreeCode(courseId, parentNode);
    }
    //重构完成
    }

    private void _rebuildCourseNodeTreeCode(String courseId,CourseNode courseNode){
    CourseNode node = courseNode;
    String treeCode = node==null?"":node.getTreeCode();
    List<CourseNode> nodes = this.getCourseNodeChildren(courseId, node==null?null:node.getId());
    int index = 0;
    if(nodes!=null)for(CourseNode child : nodes){
    index++;
    String nTreeCode = treeCode + ("0000"+index).substring(String.valueOf(index).length());
    child.setOrdering(index*100);
    child.setTreeCode(nTreeCode);
    this.courseDao.updateCourseNodeTreeCodeInfo(child);
    this._rebuildCourseNodeTreeCode(courseId, child);
    }
    }