zoukankan      html  css  js  c++  java
  • DB.ASP 用Javascript写ASP很灵活很好用很easy

    http://www.html-5.cn/JavaScript/jishu/9176.html

    复制代码 代码如下:
    <%
    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;
    }
    }
    %>
  • 相关阅读:
    HDU5269 字典树
    HDU1664 BFS + 数论 + 剪枝
    HDU1429 BFS + 状态压缩
    HDU1075 字典树 + 字符串映射
    HDU1247 字典树
    UVa 10256(凸包、线段交、点在多边形内)
    UVa 10652(旋转、凸包、多边形面积)
    牛客练习赛43D(贪心)
    牛客练习赛43F(推式子)
    Codeforces 1161B(判断旋转对称)
  • 原文地址:https://www.cnblogs.com/chulia20002001/p/2335121.html
Copyright © 2011-2022 走看看