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


Posted in Javascript onJuly 31, 2011
<% 
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; 
} 
} 
%>
Javascript 相关文章推荐
利用JQuery的load函数动态加载其它页面的内容的实现代码
Dec 14 Javascript
JavaScript学习笔记之获取当前目录的实现代码
Dec 14 Javascript
jQuery控制TR显示隐藏的三种常用方法
Aug 21 Javascript
JavaScript插件化开发教程 (一)
Jan 27 Javascript
jquery结合CSS使用validate实现漂亮的验证
Jan 29 Javascript
快速掌握Node.js环境的安装与运行方法
Feb 16 Javascript
老生常谈JavaScript数组的用法
Jun 10 Javascript
基于JSON格式数据的简单jQuery幻灯片插件(jquery-slider)
Aug 10 Javascript
详解Node.js实现301、302重定向服务
Apr 07 Javascript
新手必须知的Node.js 4个JavaScript基本概念
Sep 16 Javascript
jQuery中DOM常见操作实例小结
Aug 01 jQuery
vue 的 solt 子组件过滤过程解析
Sep 07 Javascript
js动态加载以及确定加载完成的代码
Jul 31 #Javascript
JS按位非(~)运算符与~~运算符的理解分析
Jul 31 #Javascript
JS高级拖动技术 setCapture,releaseCapture
Jul 31 #Javascript
js中判断文本框是否为空的两种方法
Jul 31 #Javascript
图片onload事件触发问题解决方法
Jul 31 #Javascript
事件绑定之小测试  onclick &amp;&amp; addEventListener
Jul 31 #Javascript
学习javascript,实现插入排序实现代码
Jul 31 #Javascript
You might like
PHP 选项及相关信息函数库
2006/12/04 PHP
php文件缓存类汇总
2014/11/21 PHP
PHP单例模式简单用法示例
2017/06/23 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
PHP $O00OO0=urldecode &amp; eval 解密,记一次商业源码的去后门
2020/09/13 PHP
TNC vs BOOM BO3 第二场2.13
2021/03/10 DOTA
JavaScript 参考教程
2006/12/29 Javascript
JavaScript中的闭包原理分析
2010/03/08 Javascript
javascript 节点遍历函数
2010/03/28 Javascript
jquery焦点图片切换(数字标注/手动/自动播放/横向滚动)
2013/01/24 Javascript
js将iframe中控件的值传到主页面控件中的实现方法
2013/03/11 Javascript
JavaScript的各种常见函数定义方法
2014/09/16 Javascript
7个让JavaScript变得更好的注意事项
2015/01/28 Javascript
基于javascript实现漂亮的页面过渡动画效果附源码下载
2015/10/26 Javascript
Web Uploader文件上传插件使用详解
2016/05/10 Javascript
JS判断日期格式是否合法的简单实例
2016/07/11 Javascript
HTML页面,测试JS对C函数的调用简单实例
2016/08/09 Javascript
ajax图片上传,图片异步上传,更新实例
2016/12/30 Javascript
React.js中常用的ES6写法总结(推荐)
2017/05/09 Javascript
详解vue中使用protobuf踩坑记
2019/05/07 Javascript
[08:02]DOTA2牵红线 zhou神抱得美人归
2014/03/22 DOTA
简单介绍Python中的decode()方法的使用
2015/05/18 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
2020/02/07 Python
Python中文分词库jieba,pkusegwg性能准确度比较
2020/02/11 Python
Django 博客实现简单的全文搜索的示例代码
2020/02/17 Python
Keras实现将两个模型连接到一起
2020/05/23 Python
杭州龙健科技笔试题.net部分笔试题
2016/01/24 面试题
考试不及格检讨书
2014/01/09 职场文书
2014年十一国庆向国旗敬礼寄语
2014/04/11 职场文书
歌颂祖国的演讲稿
2014/05/04 职场文书
国贸专业毕业求职信
2014/06/11 职场文书
学用政策心得体会
2014/09/10 职场文书
2019感恩宣传标语!
2019/07/05 职场文书
使用pandas生成/读取csv文件的方法实例
2021/07/09 Python
基于Python实现一个春节倒计时脚本
2022/01/22 Python
css让页脚保持在底部位置的四种方案
2022/07/23 HTML / CSS