zoukankan      html  css  js  c++  java
  • nodejs + access 应用

        机缘巧合,为了省事和轻便安装了access数据库,也是为了省事 写了node服务,来解决http请求一些列的操作。

    网上搜索了一圈,都是通过odbc来解决access 和 nodejs 之间的联系,那么我就开始着手解决,我的系统环境:win10  + node 12.1 + access2013 64位

    这里特别强调: access的db创建的版本与使用版本与odbc的版本必须一致 ,我在这里踩过坑,我把32位建的access db 拿到64位的access使用就出现问题 

    1.odbc的配置

    注意一定是统一:  64位置odbc 配置 access 也是64位

     

    2.node 编写

    node需要安装odbc,我直接安装了一个最新版本  

    "_id": "odbc@2.3.6",

    测试脚本按照 npm里面 odbc给的脚本测试即可

    写到这里看似简单,中途遇到的问题 解题思路也是千奇百怪

    access版本问题与odbc的版本不一致的问题

    也测试了js脚本 js 采用 ActiveXObject 来创建adodb 来解决, 当时考虑node里面有ActiveXObject 这个对象么?网上还有人真这么干 ,大家有兴趣可以搜来看看

    在解题思路上越跑越偏 附上js的执行connectString 

    var connectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\ATest.mdb;Persist Security Info=False";
        try
        {
            var ocon = new ActiveXObject("ADODB.Connection"); // 打开连接 
            ocon.Open(connectString, "", ""); // ConnectionString, UserId, Password
            // 如果出现:”未找到提供程序。该程序可能未正确安装。“,请注册OracleODBC
            //Debug.writeln("connect ok!");
    
            // 1.查询数据
            var ors = new ActiveXObject("ADODB.Recordset"); 
            ors.ActiveConnection = ocon;
            ors.Source = "select * from Task";
            ors.Open(); // strCommand,ActiveConnection,int CursorType,intLockType, intCommandType 
            //Debug.writeln("select ok!");
            
            while(!ors.EOF)
            {
                var tokenID = ors.Fields(0);// Fields[FieldNo]: Fields[FieldNo]
                var changeCode = ors.Fields(1);
    
                //Debug.writeln(Mgr.DefaultObject.Hex2Str(changeCode));
                //Debug.writeln("TokenID=" + tokenID + "	ChangeCode=" + changeCode);
                ors.MoveNext();
            }
            ors.Close();
            
            // var ocmd = new ActiveXObject("ADODB.Command"); 
            // ocmd.ActiveConnection = ocon;
            // ocmd.CommandText = "update aaa set ChangeCode='' where TokenID='TDR000000010'";
            // ocmd.Execute();
        }
        catch(e)
        {
            //Debug.writeln("ERROR:" + e.message);
            throw e;
        }
  • 相关阅读:
    spring19
    springmvc19
    Android打开数据库读取数据
    家庭记账本开发第二天
    家庭记账本开发第一天
    体温填报小程序完结
    一个抽取百度定位的教程(下载百度地图Demo+配置+抽取)
    将百度地图Demo抽取出来安到自己的程序中
    Android定位
    体温数据上传程序开发+获取时间的三种方法+DB Browser下载及安装
  • 原文地址:https://www.cnblogs.com/wanglinglong/p/14862969.html
Copyright © 2011-2022 走看看