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 图片上传预览-兼容标准
Jun 01 Javascript
Extjs在exlipse中设置自动提示的方法
Apr 07 Javascript
详谈 Jquery Ajax异步处理Json数据.
Sep 09 Javascript
JavaScript将Table导出到Excel实现思路及代码
Mar 13 Javascript
js实现文字闪烁特效的方法
Dec 17 Javascript
JS实现点击Radio动态更新table数据
Jul 18 Javascript
微信小程序实现富文本图片宽度自适应的方法
Jan 20 Javascript
angular 服务随记小结
May 06 Javascript
jquery中attr、prop、data区别与用法分析
Sep 25 jQuery
JavaScript动态生成表格的示例
Nov 02 Javascript
VUE前端从后台请求过来的数据进行转换数据结构操作
Nov 11 Javascript
JS 4个超级实用的小技巧 提升开发效率
Oct 05 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函数与传递参数实例分析
2014/11/15 PHP
php入门教程之Zend Studio设置与开发实例
2016/09/09 PHP
PHP数据对象映射模式实例分析
2019/03/29 PHP
js 学习笔记(三)
2009/12/29 Javascript
教你使用javascript简单写一个页面模板引擎
2015/05/05 Javascript
深入学习jQuery Validate表单验证(二)
2016/01/18 Javascript
js流动式效果显示当前系统时间
2016/05/16 Javascript
javascript self对象使用详解
2016/10/18 Javascript
基于jQuery实现文字打印动态效果
2017/04/21 jQuery
Vue + better-scroll 实现移动端字母索引导航功能
2018/05/07 Javascript
webpack 3.X学习之多页面打包的方法
2018/09/04 Javascript
小程序:授权、登录、session_key、unionId的详解
2019/05/15 Javascript
ES6中Symbol、Set和Map用法详解
2019/08/20 Javascript
vue按需加载实例详解
2019/09/06 Javascript
微信小程序进入广告实现代码实例
2019/09/19 Javascript
小程序如何写动态标签的实现方法
2020/02/05 Javascript
JavaScript类的继承多种实现方法
2020/05/30 Javascript
[01:07:11]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python实现windows下模拟按键和鼠标点击的方法
2015/03/13 Python
Python3中多线程编程的队列运作示例
2015/04/16 Python
Python中threading模块join函数用法实例分析
2015/06/04 Python
Python实现把json格式转换成文本或sql文件
2015/07/10 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
2016/05/05 Python
Python中工作日类库Busines Holiday的介绍与使用
2017/07/06 Python
python机器学习之神经网络(二)
2017/12/20 Python
python原类、类的创建过程与方法详解
2019/07/19 Python
Python使用psutil获取进程信息的例子
2019/12/17 Python
Pandas 解决dataframe的一列进行向下顺移问题
2019/12/27 Python
django-利用session机制实现唯一登录的例子
2020/03/16 Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
2020/03/24 Python
Django模型中字段属性choice使用说明
2020/03/30 Python
北体毕业生求职信
2014/02/28 职场文书
法英专业大学生职业生涯规划书范文
2014/09/22 职场文书
初中教师个人工作总结
2015/02/10 职场文书
2015年采购部工作总结
2015/04/23 职场文书
2019入党申请书格式
2019/06/25 职场文书