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 学习笔记 element属性控制
Jul 23 Javascript
JS 文件本身编码转换 图文教程
Oct 12 Javascript
一行代码告别document.getElementById
Jun 01 Javascript
JavaScript中的parse()方法使用简介
Jun 12 Javascript
基于jquery实现即时检查格式是否正确的表单
May 06 Javascript
Document.body.scrollTop的值总为零的快速解决办法
Jun 09 Javascript
jsonp跨域请求实现示例
Mar 13 Javascript
基于JavaScript实现多级菜单效果
Jul 25 Javascript
浅谈vue父子组件怎么传值
Jul 21 Javascript
JavaScript 2018 中即将迎来的新功能
Sep 21 Javascript
element-ui 中使用upload多文件上传只请求一次接口
Jul 19 Javascript
微信小程序纯文本实现@功能
Apr 08 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
超外差式晶体管收音机的组装与统调
2021/03/01 无线电
php/js获取客户端mac地址的实现代码
2013/07/08 PHP
php函数与传递参数实例分析
2014/11/15 PHP
php使用类继承解决代码重复的问题
2015/02/11 PHP
php简单构造json多维数组的方法示例
2017/06/08 PHP
日期函数扩展类Ver0.1.1
2006/09/07 Javascript
限制文本字节数js代码
2007/03/06 Javascript
JavaScript设置FieldSet展开与收缩
2009/05/15 Javascript
javascript showModalDialog 多层模态窗口实现页面提交及刷新的代码
2009/11/28 Javascript
javascript学习笔记(九) js对象 设计模式
2012/06/19 Javascript
jquery实现一个简单好用的弹出框
2014/09/26 Javascript
js实现滑动触屏事件监听的方法
2015/05/05 Javascript
Angular.JS中的指令引用template与指令当做属性详解
2017/03/30 Javascript
JS中使用media实现响应式布局
2017/08/04 Javascript
node.js 发布订阅模式的实例
2017/09/10 Javascript
Vue根据条件添加click事件的方式
2019/11/09 Javascript
vue-quill-editor的使用及个性化定制操作
2020/08/04 Javascript
[02:09]DOTA2辉夜杯 EHOME夺冠举杯现场
2015/12/28 DOTA
深入解析Python设计模式编程中建造者模式的使用
2016/03/02 Python
python先序遍历二叉树问题
2017/11/10 Python
python获取txt文件词向量过程详解
2019/07/05 Python
Python3 venv搭建轻量级虚拟环境的步骤(图文)
2019/08/09 Python
pytorch1.0中torch.nn.Conv2d用法详解
2020/01/10 Python
html5教程制作简单画板代码分享
2013/12/04 HTML / CSS
印尼穆斯林时尚购物网站:Hijabenka
2016/12/10 全球购物
杭州-DOTNET笔试题集
2013/09/25 面试题
一套中级Java程序员笔试题
2015/01/14 面试题
指导教师评语
2014/04/26 职场文书
经济类毕业生求职信
2014/06/26 职场文书
2014年幼儿园重阳节活动方案
2014/09/16 职场文书
借款协议书
2014/09/16 职场文书
机关作风整顿个人整改措施思想汇报
2014/09/29 职场文书
综合管理员岗位职责
2015/02/11 职场文书
仰望星空观后感
2015/06/10 职场文书
就业证明函
2015/06/17 职场文书
MySQL优化及索引解析
2022/03/17 MySQL