- <%
- function getConfig(config, args) {
- if (args) {
- for (var proto in args) {
- config[proto] = args[proto];
- }
- }
- return config;
- }
- function getConnection() {
- return new ActiveXObject("ADODB.Connection");
- }
- function getRecordset() {
- return new ActiveXObject("ADODB.Recordset");
- }
- var DB = {};
- DB.ConnectionString = 'Provider=Sqloledb;User ID=sa;Password=sa;Initial Catalog=T;Data Source=WWW-D17F81FA113\\SQLEXPRESS;';
- //添加 一条记录
- DB.Add = function (table, keyValueCol) {
- var returnID=null;
- var Conn = getConnection();
- Conn.Open(DB.ConnectionString);
- var Rs = getRecordset();
- Rs.Open('select * from '+table+' where 1=2', Conn, 3, 2);
- Rs.AddNew();
- for (var key in keyValueCol) {
- Rs.Fields.Item(key).Value = keyValueCol[key];
- }
- Rs.Update();
- Rs.Close();
- Rs = null;
- Conn.Close();
- Conn = null;
- return DB.Get("select IDENT_CURRENT('"+table+"') as ID")["ID"];
- }
- //修改一条记录
- DB.Upd = function (sql, keyValueCol) {
- var Conn = getConnection();
- Conn.Open(DB.ConnectionString);
- var Rs = getRecordset();
- Rs.Open(sql, Conn, 3, 2);
- for (var key in keyValueCol) {
- Rs.Fields.Item(key).Value = keyValueCol[key];
- }
- Rs.Update();
- Rs.Close();
- Rs = null;
- Conn.Close();
- Conn = null;
- }
- //执行 无返回结果的查询
- DB.Exe = function (sql) {
- var Conn = getConnection();
- Conn.Open(DB.ConnectionString);
- Conn.Execute(sql);
- Conn.Close();
- Conn = null;
- }
- //获得 一个查询记录
- DB.Get = function (sql) {
- var _record = null;
- var Conn = getConnection();
- Conn.Open(DB.ConnectionString);
- var Rs = getRecordset();
- Rs.Open(sql, Conn, 1, 1);
- if (!Rs.EOF) {
- _record = {};
- for (var i = 0; i < Rs.Fields.Count; i++) {
- _record[Rs.Fields.Item(i).Name] = Rs.Fields.Item(i).Value;
- }
- }
- Rs.Close();
- Rs = null;
- Conn.Close();
- Conn = null;
- return _record;
- }
- //批量 获得/添加 数据
- DB.Batch = function () {
- var Conn = getConnection();
- var Rs = getRecordset();
- var _Batch = this;
- var _table = null;
- _Batch.Open = function (sql) {
- Conn.Open(DB.ConnectionString);
- Rs.Open(sql, Conn, 3, 2);
- }
- _Batch.Add = function (table , keyValueCol) {
- Rs.AddNew();
- for (var key in keyValueCol) {
- Rs.Fields.Item(key).Value = keyValueCol[key];
- }
- Rs.Update();
- return DB.Get("Select IDENT_CURRENT('"+ table +"') as ID")["ID"];
- }
- _Batch.Get = function () {
- var record_arr = [];
- while (!Rs.EOF) {
- var _record = {};
- for (var i = 0; i < Rs.Fields.Count; i++) {
- _record[Rs.Fields.Item(i).Name] = Rs.Fields.Item(i).Value;
- }
- record_arr.push(_record);
- Rs.MoveNext();
- }
- return record_arr;
- }
- _Batch.Close = function () {
- Rs.Close();
- Rs = null;
- Conn.Close();
- Conn = null;
- }
- }
- //获得 sql 的某页的数据
- DB.List = function () {
- var _Config;
- var _List = this;
- _List.Page = {
- PS : 20,
- AP : 1,
- PC : 1,
- RC : 1
- };
- _List.Query = function () {
- _Config = new getConfig({
- fields : " * ",
- table : null,
- where : " 1=1 ",
- sort : " ID desc ",
- pk : " ID "
- }, arguments[0]);
- _List.Page.RC = DB.Get("select count(" + _Config.pk + ") as [count] from " +
- _Config.table + " where " + _Config.where).count;
- _List.Page.PC = Math.ceil(_List.Page.RC / _List.Page.PS);
- if(_List.Page.AP>_List.Page.PC) _List.Page.AP = _List.Page.PC;
- }
- _List.Get = function (p) {
- p = isNaN(p) ? 1 : parseInt(p);
- _List.Page.AP = p;
- var sql = '';
- if (p > 1) {
- sql = "select top " + _List.Page.PS + " " + _Config.fields +
- " from " + _Config.table + " where " + _Config.where +
- " and " + _Config.pk +
- " not in(select top " + (p - 1) * _List.Page.PS + " " + _Config.pk +
- " from " + _Config.table + " where " + _Config.where +
- " order by " + _Config.sort + ") order by " + _Config.sort;
- } else {
- sql = "select top " + _List.Page.PS + " " + _Config.fields +
- " from " + _Config.table + " where " + _Config.where + " order by " + _Config.sort;
- }
- var return_arr = null;
- var Batch = new DB.Batch();
- Batch.Open(sql);
- return_arr = Batch.Get();
- Batch.Close();
- return return_arr;
- }
- }
- //sql 只读
- DB.Reader = function () {
- var Conn = getConnection();
- var Rs = getRecordset();
- var _Reader = this;
- _Reader.EOF = false;
- _Reader.Open = function (sql) {
- Conn.Open(DB.ConnectionString);
- Rs.Open(sql, Conn, 1, 1);
- _Reader.EOF = Rs.EOF;
- }
- _Reader.Read = function () {
- if (!Rs.EOF) {
- var _record = {};
- for (var i = 0; i < Rs.Fields.Count; i++) {
- _record[Rs.Fields.Item(i).Name] = Rs.Fields.Item(i).Value;
- }
- Rs.MoveNext();
- return _record;
- } else {
- _Reader.EOF = true;
- }
- }
- _Reader.Close = function () {
- Rs.Close();
- Rs = null;
- Conn.Close();
- Conn = null;
- }
- }
- %>
复制代码
|