您的位置:首页 > Web前端 > JavaScript

用 JavaScript 写 ASP,似乎很爽啊,自己封装了一个 操作数据库 分页 以及 文件操作的函数

2011-07-05 16:30 756 查看
var Config,SetConfig,DB,Page,$,$$,Login,htmlEntity;
var IO;
var Folder;
var File;

Config={
conn:new String(Application("Conn"))
};

SetConfig = function (config, args) {
if (args) {
for (var proto in args) {
config[proto] = args[proto];
}
}
return config;
}

Page=function(p,pc,size,prefix,suffix){

p<1?p=1:p;
p>pc?p=pc:p;
size>pc?size=pc:size;

this.getCode=function(cssNormal,cssSelect){
var code="";
if(pc<=size){
for(var i = 1;i<=pc; i++){
if(i==p){
code += ' <span'+(cssSelect?' class="'+cssSelect+'"':'')+'>'+i+'</span> ';
}else{
code += ' <a'+(cssNormal?' class="'+cssNormal+'"':'')+' href="'+prefix+i+suffix+'">'+i+'</a> ';
}
}
}else{

var minx = (size/2).toFixed(0);
var sinx = p-minx+1;
sinx=(sinx>1 ? sinx:1);					//开始
einx=(pc+1>sinx+size?sinx+size:pc+1);	//结束

for(var i=sinx;i<einx;i++){
if(i==p){
code += ' <span'+(cssSelect?' class="'+cssSelect+'"':'')+'>'+i+'</span> ';
}else{
code += ' <a'+(cssNormal?' class="'+cssNormal+'"':'')+' href="'+prefix+i+suffix+'">'+i+'</a> ';
}
}
}

return code;
}

this.getPrev=function(css){
return p>1?'<a'+(css?' class="'+css+'"':'')+' href="'+prefix+(p-1)+suffix+'">上一页</a>':'';
}

this.getNext=function(css){
return p<pc?'<a'+(css?' class="'+css+'"':'')+' href="'+prefix+(p+1)+suffix+'">下一页</a>':'';
}
}

DAO=function(){
var obj=this;
obj.List={}
obj.List.Page={
PS:25,//pagesize
AP:1,//abspagecode
PC:0,//pagecount
RC:0 //recordCount
}

obj.Reader=function(sql)
{
this.Rs=Server.CreateObject("Adodb.RecordSet");
this.Rs.Open(sql,Config.conn,1,1);
}

obj.Reader.Read=function()
{
if(this.Rs.EOF)
{
return false;
}else{
var Record={};
for(var i=0;i<this.Rs.Fields.Count;i++){
Record[this.Rs.Fields.Item(i).Name] = this.Rs.Fields.Item(i).Value;
}
this.Rs.MoveNext();
return Record;
}
}

obj.Reader.Close=function()
{
this.Rs.Close();
this.Rs=null;
}

obj.List.Config={};
//不够优化还要重构
obj.List.Get=function(){
var config = obj.List.Config =new SetConfig({
fields:" * ",
table:null,
where:" 1=1 ",
sort:" ID desc ",
pk:" ID "
},arguments[0]);

var RC=obj.GetRecord("select count("+config.pk+") as [count] from "+config.table+
" where "+config.where).count;

var _MOD=RC%obj.List.Page.PS;
if(_MOD==0){
obj.List.Page.PC=RC/obj.List.Page.PS;
}else{
obj.List.Page.PC=(RC-_MOD)/obj.List.Page.PS+1;
}

obj.List.Page.RC=RC;
}

obj.List.GetDataTable=function(p){

var config = obj.List.Config;
obj.List.Page.AP=p;
var sql=null;
if(p>1){
sql="select top "+obj.List.Page.PS+" "+config.fields+
" from "+config.table+" where "+config.where+
" and "+config.pk+
" not in(select top "+(p-1)*obj.List.Page.PS+" "+config.pk+
" from "+config.table+" where "+config.where+
" order by "+config.sort+") order by "+config.sort;
}else{
sql="select top "+obj.List.Page.PS+" "+config.fields+
" from "+config.table+" where "+config.where+" order by "+config.sort;
}

var returnArr=[];
var Conn=Server.CreateObject("ADODB.Connection");
Conn.Open(Config.conn);
var Rs=Server.CreateObject("ADODB.RecordSet");
Rs.Open(sql,Conn,1,1);
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;
}
returnArr.push(Record);
Rs.MoveNext();
}
Rs.Close();
Rs=null;
Conn.Close();
Conn=null;
return returnArr;
}

obj.GetRecord = function(sql){
var Record=null;
var Conn=Server.CreateObject("ADODB.Connection");
Conn.Open(Config.conn);
var Rs=Server.CreateObject("ADODB.RecordSet");
Rs.Open(sql,Conn,1,1);
if(Rs.RecordCount==1){
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;
}

obj.ExecuteSQL=function(sql){
var Conn=Server.CreateObject("ADODB.RecordSet");
Conn.Open(Config.conn);
Conn.Execute(sql);
Conn.Close();
Conn=null;
}

obj.ADDRecord=function(sql,json){
var Conn=Server.CreateObject("ADODB.Connection");
Conn.Open(Config.conn);
var Rs=Server.CreateObject("ADODB.RecordSet");
Rs.Open(sql,Conn,3,2);
Rs.AddNew();
for(var inx in json){
Rs(inx).Value = json[inx];
}
Rs.Update();
Rs.Close();
Rs=null;
Conn.Close();
Conn=null;
}

obj.UpdateRecord = function(sql,json){
var Conn=Server.CreateObject("ADODB.Connection");
Conn.Open(Config.conn);
var Rs=Server.CreateObject("ADODB.RecordSet");
Rs.Open(sql,Conn,3,2);
for(var inx in json){
Rs(inx).Value = json[inx];
}
Rs.Update();
Rs.Close();
Rs=null;
Conn.Close();
Conn=null;
}
};

var FSO = new ActiveXObject("Scripting.FileSystemObject");
IO={};
IO.File={
Read:function(path){
var ForReading = 1;
var File=FSO.OpenTextFile(path,ForReading);
return File.ReadAll();
},
Create:function(path){
var File = FSO.CreateTextFile(path, true);
File.Write(content);
File.Close();
},
Exist:function(path){
return FSO.FileExists(path);
},
Delete:function(path){
if(this.Exist(path)){
FSO.DeleteFile(path);
}
}
}

IO.Folder={
Create:function(path){
FSO.CreateFolder(path);
},
Delete:function(path){
if(this.Exist(path)){
FSO.DeleteFolder(path);
}
},
Exist:function(path){
return FSO.FolderExists(path);
}
}

File=IO.File;
Folder=IO.Folder;
DB=new DAO();

$=function(format,data){
var returnstr="";
for(var i=0;i<data.length;i++){
var temhtml=format.replace('[i]',i+1);
for(var key in data[i]){
temhtml=temhtml.replace('{'+key+'}',data[i][key]);
}
returnstr+=temhtml;
}
return returnstr;
}

$$=function(format,data){
var returnstr="";
var inx=0;
for(var i=0;i<format.length;i++){
if(inx>=data.length) break;

if(!format[i].num) format[i].num=100;

for(var j=0;j<format[i].num;j++){

var temhtml=format[i].html.replace('[i]',inx+1);
for(var key in data[i]){
temhtml=temhtml.replace('{'+key+'}',data[i][key]);
}
returnstr+=temhtml;
if(++inx>=data.length) break;
}
}
return returnstr;
}

htmlEntity=function(html){
html=html||" ";
html=html
.replace(/\&/g,"&")
.replace(/</g,"<")
.replace(/>/g,">")
.replace(/"/g,""")
.replace(/'/g,"'");
return html;
}

entityHtml=function(entity){
entity=entity
.replace(/\&/g,"&")
.replace(/\</g,"<")
.replace(/\>/g,">")
.replace(/\"/g,'"')
.replace(/\'/g,"'");
return entity;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐