DB.ASP 用Javascript写ASP很灵活很好用很easy
DB.ASP 用Javascript写ASP很灵活很好用很easy
发布时间:2016-12-30 来源:查字典编辑
摘要:复制代码代码如下:

复制代码 代码如下:

<%

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-D17F81FA113SQLEXPRESS;';

//添加 一条记录

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;

}

}

%>

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类