DB.ASP 用Javascript 写 ASP 很灵活很好用很easy
来源:广州中睿信息技术有限公司官网
发布时间:2012/10/21 23:25:16 编辑:admin 阅读 315
<%functiongetConfig(config,args){if(args){for(varprotoinargs){config[proto]=args[proto]}}returnco
<%  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;   }  }  %>  

  

联系我们CONTACT 扫一扫
愿景:成为最专业的软件研发服务领航者
中睿信息技术有限公司 广州•深圳 Tel:020-38931912 务实 Pragmatic
广州:广州市天河区翰景路1号金星大厦18层中睿信息 Fax:020-38931912 专业 Professional
深圳:深圳市福田区车公庙有色金属大厦509~510 Tel:0755-25855012 诚信 Integrity
所有权声明:PMI, PMP, Project Management Professional, PMI-ACP, PMI-PBA和PMBOK是项目管理协会(Project Management Institute, Inc.)的注册标志。
版权所有:广州中睿信息技术有限公司 粤ICP备13082838号-2