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将从数据库中读取出来的日期型格式化为想要的类型。
Aug 15 Javascript
jquery常用技巧及常用方法列表集合
Apr 06 Javascript
用于deeplink的js方法(判断手机是否安装app)
Apr 02 Javascript
Javascript实现可旋转的圆圈实例代码
Aug 04 Javascript
js调用刷新界面的几种方式
May 03 Javascript
Vue2.0实现将页面中表格数据导出excel的实例
Aug 09 Javascript
详解JavaScript中的数组合并方法和对象合并方法
May 11 Javascript
js运算符的一些特殊用法
Jul 29 Javascript
解决Layui中layer报错的问题
Sep 03 Javascript
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
Oct 11 Javascript
vue实现element表格里表头信息提示功能(推荐)
Nov 20 Javascript
jquery+css3实现的经典弹出层效果示例
May 16 jQuery
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与php MySQL 之间的关系
2009/07/17 PHP
探讨Hessian在PHP中的使用分析
2013/06/13 PHP
PHP实现的汉字拼音转换和公历农历转换类及使用示例
2014/07/01 PHP
php去掉URL网址中带有PHPSESSID的配置方法
2014/07/08 PHP
smarty简单分页的实现方法
2014/10/27 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
PDO::lastInsertId讲解
2019/01/29 PHP
PHP通过文件保存和更新信息的方法分析
2019/09/12 PHP
该如何加载google-analytics(或其他第三方)的JS
2010/05/13 Javascript
js调用webservice中的方法实现思路及代码
2013/02/25 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
2014/06/02 Javascript
jQuery实现数字加减效果汇总
2014/12/16 Javascript
JavaScript来实现打开链接页面的简单实例
2016/06/02 Javascript
JavaScript 节流函数 Throttle 详解
2016/07/04 Javascript
详解ECharts使用心得总结
2016/12/06 Javascript
Bootstrap缩略图的创建方法
2017/03/22 Javascript
详解基于node的前端项目编译时内存溢出问题
2017/08/01 Javascript
vue.js仿hover效果的实现方法示例
2019/01/28 Javascript
JS异步处理的进化史深入讲解
2019/08/25 Javascript
Mac 上切换Python多版本
2017/06/17 Python
Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】
2017/07/11 Python
解读python如何实现决策树算法
2018/10/11 Python
Python3列表内置方法大全及示例代码小结
2019/05/10 Python
python 动态迁移solr数据过程解析
2019/09/04 Python
在PyCharm中遇到pip安装 失败问题及解决方案(pip失效时的解决方案)
2020/03/10 Python
基于python实现上传文件到OSS代码实例
2020/05/09 Python
Python如何把十进制数转换成ip地址
2020/05/25 Python
python中Django文件上传方法详解
2020/08/05 Python
HTML5在线预览PDF的示例代码
2017/09/14 HTML / CSS
AVIS安飞士奥地利租车官网:提供奥地利、欧洲和全世界汽车租赁
2016/11/29 全球购物
StubHub美国:购买或出售您的门票
2019/07/09 全球购物
师范生自荐信范文
2013/10/06 职场文书
毕业生自荐信格式
2014/03/07 职场文书
廉洁自律演讲稿
2014/05/22 职场文书
学雷锋感言
2015/08/03 职场文书
Ajax 的初步实现(使用vscode+node.js+express框架)
2021/06/18 Javascript