DB.ASP 用Javascript寫(xiě)ASP很靈活很好用很easy
更新時(shí)間:2011年07月31日 23:55:53 作者:
DB.ASP 用Javascript寫(xiě)ASP很靈活很好用很easy,喜歡用js寫(xiě)asp的朋友可以參考下。
復(fù)制代碼 代碼如下:
<%
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;
}
//執(zhí)行 無(wú)返回結(jié)果的查詢(xún)
DB.Exe = function (sql) {
var Conn = getConnection();
Conn.Open(DB.ConnectionString);
Conn.Execute(sql);
Conn.Close();
Conn = null;
}
//獲得 一個(gè)查詢(xún)記錄
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;
}
//批量 獲得/添加 數(shù)據(jù)
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 的某頁(yè)的數(shù)據(jù)
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;
}
}
%>
相關(guān)文章
簡(jiǎn)單實(shí)用的網(wǎng)頁(yè)表格特效
簡(jiǎn)單實(shí)用的網(wǎng)頁(yè)表格特效...2006-07-07JavaScript實(shí)現(xiàn)點(diǎn)擊復(fù)制功能具體代碼(JS訪問(wèn)剪貼板相關(guān))
這篇文章主要給大家介紹了關(guān)于JavaScript實(shí)現(xiàn)點(diǎn)擊復(fù)制功能(JS訪問(wèn)剪貼板相關(guān))的相關(guān)資料,復(fù)制功能指的是將一個(gè)文本或者圖片等資源從一個(gè)位置通過(guò)復(fù)制的方式再次拷貝到另一個(gè)位置,需要的朋友可以參考下2023-10-10JS?限時(shí)限次數(shù)點(diǎn)擊按鈕的實(shí)現(xiàn)思路
這篇文章主要介紹了JS?限時(shí)限次數(shù)點(diǎn)擊按鈕,實(shí)現(xiàn)方法很簡(jiǎn)單需要用一個(gè)變量作為計(jì)數(shù),點(diǎn)擊一次,計(jì)數(shù)加一點(diǎn)擊函數(shù)內(nèi)判斷計(jì)數(shù)變量設(shè)置定時(shí)恢復(fù),對(duì)實(shí)例代碼感興趣的朋友一起看看吧2022-03-03JavaScript簡(jiǎn)寫(xiě)技巧總結(jié)
這篇文章總結(jié)了JavaScript的一些簡(jiǎn)寫(xiě)技巧,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06低代碼從0到1創(chuàng)建小程序項(xiàng)目詳解流程
低代碼作為開(kāi)發(fā)工具類(lèi)的產(chǎn)品,需要有從0到1體系化的教程才可以,而且還得有教師進(jìn)行輔助。否則,學(xué)習(xí)低代碼是有難度的,入門(mén)很難。因?yàn)榇蠹伊?xí)慣了用代碼編程,一下子過(guò)度到可視化編程,有一個(gè)思路上的轉(zhuǎn)變2022-08-08JavaScript中關(guān)于e.keycode的使用
這篇文章主要介紹了JavaScript中關(guān)于e.keycode的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12JS 驗(yàn)證密碼 不能為空,必須含有數(shù)字、字母、特殊字符,長(zhǎng)度在8-12位
這篇文章主要介紹了JS 驗(yàn)證密碼 不能為空,必須含有數(shù)字、字母、特殊字符,長(zhǎng)度在8-12位的相關(guān)資料,需要的朋友可以參考下2017-06-06