JS 使用odbc操作数据库

         使用javascript操作数据库,显然是不安全的做法,而且一般也不是这么玩。但是从另外一个角度看,当你把它当做一个简单的开发工具使用,想看看数据库数据而已,那么javascript查看数据也是一个不错的选择。

        抱着学习的心态,接着上网查了一些资料以后,就动手写了一个小工具,作用是:用来写sql把返回的数据返回,和写sql update数据库。

        前提

        运行的电脑必须要设置有odbc数据源连接.

        如mysql 需要下载odbc支持:http://www.mysql.com/downloads/connector/odbc/

        安装完以后配置源,控制面板->搜索odbc->《JS 使用odbc操作数据库》

添加上面odbc配置。

    notes:驱动有32位跟64位之分,如果是64位driver那么就需要64位的IE打开,要不就会报错

    连接抛异常[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配

    

    ok,数据源完成的基础上开始进行javascript 操作数据库开发工作。

    开始编码

  •     创建odbc数据库连接对象,配置连接字符串
DSN=mysqldb;SERVER=127.0.0.1;User ID=root;Password=root;Database=esap;Port=3306

  •     打开连接对象
reset_conn : function(dbstr) {
//			创建odbc对象
			var connection = new ActiveXObject("ADODB.Connection");
//			连接字符串
//			DSN=mysqldb;SERVER=127.0.0.1;User ID=root;Password=root;Database=esap;Port=3306
			connection.ConnectionString = dbstr;
			this.conn = connection;
			this.lock_conn();
		},

  •     创建结果集对象&&执行sql
//		执行查询
		executeQuery : function(sql) {
			var rtn = [];
			if (sql) {
				try {
//					开启连接
					this.conn.open();
//					resultSet
					var rs = new ActiveXObject("ADODB.Recordset");
					rs.open(sql, this.conn);
//					数据转换
					rtn = this.parseRes(rs);
				} finally {
					if (typeof (rs) != 'undefined') {
						rs.close();
					}
					;
					if (typeof (this.conn) != 'undefined') {
						this.conn.close();
					}
				}
			}
			return rtn;

		},

  •     结果集遍历

//		数据转换
		parseRes : function(rs) {
			var data = [];
			data.datas = {};
			data.datas.records=[];
			var first = true;
			var index=1;
			while (!rs.eof) {
				if (first) {
					var heads = [{h_name:"#"}];
					for ( var i = 0, len = rs.Fields.count; i < len; i++) {
						heads.push({
							h_name : rs.Fields(i).Name
						});
					}
					first = false;
					data["heads"] = heads;
				}
				var records = {field:[{h_head:"#",d_value:index}]};
				for ( var v = 0, v_len = rs.Fields.count; v < v_len; v++) {
					// datas:[{records:[]}]
					// {d_head:"",d_value:""}
					var record={};
					record["h_head"] = rs.Fields(v).Name;
					record["d_value"] = rs.Fields(v).Value;
					records.field.push(record);
				}
				data.datas.records.push(records);
				// ....
				rs.moveNext;
				
				index++;
			}
			return data;
		},

  • 执行update 操作Sql
//		执行sql
		executeUpdate : function(sql) {
			if (sql) {
				try {
					this.conn.open();
					this.conn.execute(sql);
				} finally {
					this.conn.close();
				}
			}
		}

完成基础操作以后就构造页面。

ok,附带源码记录:

https://github.com/tian-github/dbQuery

    

   

   

    

        

    原文作者:数据库基础
    原文地址: https://my.oschina.net/fattian/blog/126409
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞