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 相关文章推荐
javascript 冒泡排序 正序和倒序实现代码
Dec 14 Javascript
ExtJs使用总结(非常详细)
Mar 22 Javascript
jquery xMarquee实现文字水平无缝滚动效果
Apr 29 Javascript
利用函数的惰性载入提高javascript代码执行效率
May 05 Javascript
Bootstrap每天必学之标签页(Tab)插件
Aug 09 Javascript
KnockoutJS 3.X API 第四章之数据控制流component绑定
Oct 10 Javascript
jQuery EasyUI ProgressBar进度条组件
Feb 28 Javascript
JavaScript条件判断_动力节点Java学院整理
Jun 26 Javascript
node+express+ejs使用模版引擎做的一个示例demo
Sep 18 Javascript
JavaScript之解构赋值的理解
Jan 30 Javascript
js实现简单的日历显示效果函数示例
Nov 25 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
Aug 27 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
第八节--访问方式
2006/11/16 PHP
php更改目录及子目录下所有的文件后缀扩展名的代码
2010/10/12 PHP
php动态实现表格跨行跨列实现代码
2012/11/06 PHP
PHP CURL获取cookies模拟登录的方法
2013/11/04 PHP
ThinkPHP查询语句与关联查询用法实例
2014/11/01 PHP
PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能
2015/04/27 PHP
PHP封装的验证码工具类定义与用法示例
2018/08/22 PHP
PHP析构函数destruct与垃圾回收机制的讲解
2019/03/22 PHP
php统计数组不同元素的个数的实例方法
2019/09/26 PHP
Laravel-admin之修改操作日志的方法
2019/09/30 PHP
对xmlHttp对象方法和属性的理解
2011/01/17 Javascript
实现51Map地图接口(示例代码)
2013/11/22 Javascript
JS+CSS 制作的超级简单的下拉菜单附图
2013/11/22 Javascript
JS图像无缝滚动脚本非常好用
2014/02/10 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
2020/04/20 Javascript
JS对象序列化成json数据和json数据转化为JS对象的代码
2017/08/23 Javascript
使用watch监听路由变化和watch监听对象的实例
2018/02/24 Javascript
Vue无限滑动周选择日期的组件的示例代码
2018/07/18 Javascript
JS如何生成随机验证码
2020/03/02 Javascript
[03:52]显微镜下的DOTA2第三期——英雄在无聊的时候干什么
2014/06/20 DOTA
Python获取任意xml节点值的方法
2015/05/05 Python
Django框架中方法的访问和查找
2015/07/15 Python
python 连接sqlite及简单操作
2017/06/30 Python
Python实现的简单模板引擎功能示例
2017/09/02 Python
R vs. Python 数据分析中谁与争锋?
2017/10/18 Python
python中subprocess批量执行linux命令
2018/04/27 Python
python字符串与url编码的转换实例
2018/05/10 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
2018/05/29 Python
使用python3构建文件传输的方法
2019/02/13 Python
python把1变成01的步骤总结
2019/02/27 Python
python3 os进行嵌套操作的实例讲解
2020/11/19 Python
CSS3地图动态实例代码(圆圈向外扩散)
2018/06/15 HTML / CSS
html5 初试 indexedDB(推荐)
2016/07/21 HTML / CSS
意大利网上购书网站:Libraccio.it
2021/02/03 全球购物
公司经理任命书
2014/06/05 职场文书
Win11使用CAD卡顿或者致命错误怎么办?Win11无法正常使用CAD的解决方法
2022/07/23 数码科技