DB.ASP 用Javascript写ASP很灵活很好用很easy

 更新时间:2011年07月31日 23:55:53   作者:  
DB.ASP 用Javascript写ASP很灵活很好用很easy,喜欢用js写asp的朋友可以参考下。
复制代码 代码如下:

<%
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;
}
}
%>

相关文章

  • 微信公众号H5支付接口调用方法

    微信公众号H5支付接口调用方法

    这篇文章主要介绍了微信公众号H5支付接口调用方法,微信内H5调用支付接口代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • javascript中的previousSibling和nextSibling的正确用法

    javascript中的previousSibling和nextSibling的正确用法

    这篇文章主要介绍了javascript中的previousSibling和nextSibling的正确用法的相关资料,需要的朋友可以参考下
    2015-09-09
  • 详解javascript new的运行机制

    详解javascript new的运行机制

    这篇文章主要介绍了javascript new的运行机制的相关资料,需要的朋友可以参考下
    2016-01-01
  • js显示世界时间示例(包括世界各大城市)

    js显示世界时间示例(包括世界各大城市)

    这篇文章主要介绍了js显示世界时间的方法,可现实世界各大城市的当前时间,涉及JavaScript针对时间的获取与运算操作技巧,需要的朋友可以参考下
    2016-04-04
  • JS实现音量控制拖动

    JS实现音量控制拖动

    这篇文章主要为大家详细介绍了JS实现音量控制拖动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-01-01
  • JavaScript中三个等号和两个等号的区别(== 和 ===)浅析

    JavaScript中三个等号和两个等号的区别(== 和 ===)浅析

    javascript中比较运算符'=='与'==='可能大家用的比较多,但是大家对他的区别不是很清楚,接下来小编给大家介绍下js中三个等号和两个等号的区别(== 和 ===),感兴趣的朋友可以参考下
    2016-09-09
  • JS区分Object与Aarry的六种方法总结

    JS区分Object与Aarry的六种方法总结

    下面小编就为大家带来一篇JS区分Object与Aarry的六种方法总结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • js实现视频播放时屏幕显示水印

    js实现视频播放时屏幕显示水印

    这篇文章主要为大家详细介绍了js如何实现视频播放时屏幕显示水印的效果,文中的示例代码讲解详细,对我们深入掌握js有一定的帮助,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-10-10
  • javascript onmouseout 解决办法

    javascript onmouseout 解决办法

    最近在做一个简单的鼠标onmouseover时显示层(层里面有多个链接文字),onmouseout 时隐藏层的功能时,发现有诸多问题.
    2010-07-07
  • Django1.7+JQuery+Ajax验证用户注册集成小例子

    Django1.7+JQuery+Ajax验证用户注册集成小例子

    下面是散仙使用Django+Jquery+Ajax的方式来模拟实现了一个验证用户注册时,用户名存在不存在的一个小应用。注意,验证存在不存在使用的是Ajax的方式,不用让用户点击按钮验证是否存在,需要的朋友可以参考下
    2017-04-04

最新评论