频道直达 - 学院 - 下载 - 交易 - 特效 - 字库 - 手册 -排名-工具- 繁體
网页教学网站开发 设为首页
加入收藏
联系我们
建站搜索: 常用广告代码   用户注册 | 用户登陆
您当前的位置:中国建站之家 -> 网站开发设计技术教程 -> asp教程 -> 一个ASP(JScript)简单SQL语句构建“类”,同时支持客户端和服务器端执行的

一个ASP(JScript)简单SQL语句构建“类”,同时支持客户端和服务器端执行的

作者:未知  来源:转载  发布时间:2005-7-26 9:03:05  发布人:acx

减小字体 增大字体

<%@LANGUAGE="JAVAscript" CODEPAGE="936"%>
<%
var QuestStringBuilder = function(){
// 1->查询语句, 2->更新语句, 3->删除语句, 4->插入语句
var QuestType = 0;
var Fields = [];
var Values = [];
var Condition;
var PK;
var PkeySort;
var TableName;
var State = false;
var CLogic = " AND ";
var COperator = "=";
this.addField = function(Field,Value){
Fields.push(processField(Field));
Values.push(processValue(Value));
};
this.addCField = function(CField,CValue){
var sTemp = [];
if(Condition!=undefined&&Condition!=""){ sTemp.push(Condition); }
if(COperator!="LIKE"){
sTemp.push(processField(CField)+COperator+processValue(CValue));
}else{
sTemp.push(processField(CField)+" LIKE ''%"+CValue+"%''");
}
Condition = sTemp.join(CLogic);
if(Condition==""){ Condition=sTemp.toString();}
};
this.Table = function(s){TableName = s;};
this.PKey = function(s){PK = processField(s);};
this.PKeyAsc = function(){PkeySort="ASC";};
this.PKeyDesc = function(){PkeySort="DESC";};
this.getSelect = function(){
QuestType = 1;
return result();
};
this.getUpdate = function(){
QuestType = 2;
return result();
};
this.getDelete = function(){
QuestType = 3;
return result();
};
this.getInsert = function(){
QuestType = 4;
return result();
};
this.clear = function(){
Fields = [];
Values = [];
PK = undefined;
PkeySort = undefined;
TableName = undefined;
State = false;
};
this.ActionState = function(){ return State;};
this.ChangeLogic = function(s){ CLogic = " "+s.toUpperCase()+" ";};
this.ChangeOperator = function(s){COperator = s.toUpperCase();};
var result = function(){
var strTemp;
if(Fields.length==0) Fields.push("*");
switch(QuestType){
case 1:
if(TableName!=undefined&&TableName!=""){
strTemp = "SELECT " + Fields.toString() + " FROM " + TableName;
if(Condition!=undefined){ strTemp += " WHERE " + Condition;}
if(PkeySort!=undefined&&PK!=undefined){ strTemp += " ORDER BY " + PK + " " + PkeySort;}
State = true;
}else{
strTemp = getError(0); // 要求输入表名
}
return strTemp;
break;
case 2:
if(TableName!=undefined&&TableName!=""){
strTemp = "UPDATE " + TableName + " SET " + process(Fields,Values) ;
if(Condition!=undefined){
State = true;
strTemp += " WHERE " + Condition;
}else{
strTemp = getError(1);
}
}else{
strTemp = getError(0); // 要求输入表名
}
return strTemp;
break;
case 3:
if(TableName!=undefined&&TableName!=""){
strTemp = "DELETE FROM " + TableName ;
if(Condition!=undefined){
State = true;
strTemp += " WHERE " + Condition;
}else{
strTemp = getError(1);
}
}else{
strTemp = getError(0); // 要求输入表名
}
return strTemp;
break;
case 4:
if(TableName!=undefined&&TableName!=""){
strTemp = "INSERT INTO " + TableName ;
if(Fields.length!=0){
State = true;
strTemp += "(" + Fields.toString() + ") VALUES(" + Values.toString() + ")";
}else{
strTemp = getError(2);
}
}else{
strTemp = getError(0); // 要求输入表名
}
return strTemp;
break;
}
};
var processValue = function(unknow){
var inputType = typeof(unknow);
switch(inputType){
case "string":
return "''"+unknow+"''";
break;
case "number":
return unknow;
break;
case "boolean":
return unknow;
break;
}
};
var processField = function(unknow){
return "["+unknow+"]";
};
var process = function(aField,aValue){
var aTemp = [];
for(i=0;i<aField.length;i++){
aTemp.push(aField[i]+"="+aValue[i]);
}
return aTemp.toString();
}
var getError = function(intError){
if(typeof(intError)=="number"){
switch(intError){
case 0:
State = false;
return "Need Quest TableName, Please using method Table input one TableName!";
break;
case 1:
State = false;
return "Need One Condition! Please using method addCField add Condition!";
break;
case 2:
State = false;
return "Need Insert values!";
break;
}
}
};
};
var sql = new QuestStringBuilder();
sql.Table("MyTable");
sql.addField("Test","1");
sql.addField("test1",23);
sql.addCField("id",93);
sql.PKey("id");
sql.PKeyDesc();
//sql.clear();
Response.Write(sql.getDelete()+"<br>"+sql.ActionState());
%>

刚刚写完的,因为刚做了一个asp.net的项目(使用Access数据库),做了一个简单的SQL语句构建类,所以也写了个asp版的。它看上去对多表查询支持不是很好,但只要把表名换成视图名,就可以达到较好的效果。没有怎么写注释,麻烦大家自己看看了,或有兴趣的,可以改进一下。

将本文收藏到QQ书签与更多好友分享
[打 印]
[] [返回上一页] [收 藏]
下一篇文章:ASP 强制更新页面
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
精彩推荐
热门文章
· 注册码大全二
· 注册码大全四
· 注册码大全一
· 要10G免费网络硬盘的请进..
· 通过google 赶快来赚美金..
· 注册码大全十
· 头像-qq头像(qq新头像)4..
· 让你轻松架设FTP服务器1..
· 注册码大全三
· 梦幻背景图片7
· 卡通动物图片6
· 网页制作素材-按钮素材2..
· 让你轻松架设FTP服务器5..
· 风景图片8
· 注册码大全九
· 让你轻松架设FTP服务器2..
关注此文读者还看过
· Photoshop应用实例 制作..
· Photoshop应用实例 制作..
· Asp Object 之:Flush
· 用ASP构建音乐服务器 二..
· 了解WEB页面工具语言XML..
· PHP4实际应用经验篇(1)
· FWMX利用玻璃滤镜制作水..
· HTML4.0简明手册(五)
· JSP由浅入深(5-1)
· 正则表达式简介(微软)..
· 坐标非整数时的像素化
· 深入了解php4(1)--回到未..
· DW中如何使用Library
· FW MX 2004教程:动态按钮..
· 距离北京2008年奥运会开..
· Flash5任意两点间随机画..
相关文章
· 一个ASP处理Ajax提交的表单..
· WEB-ASP:返回一个ASP页面执..
· 在一个ASP页面停留的多少时..
· 跟我学做最强功能的网站统计..
· 一个ASP.NET+XML留言本例子..
· asp+语法介绍(二)---书写..
· 教你5分钟轻松打造一个ASP论..
· 如何在命令行下编译一个asp..
· 一个asp函数, 解决SQL Inj..
· 用ASP将JAVASCRIPT代码写入..
· 一个ASP写的侧边菜单栏
· 一个ASP(VBScript)简单SQ..
· 一个asp模板类
· 我写的第一个ASP.NET"组件"..
· 今天做了一个ASP计数器,放..
· 创建一个ASP通用分页类
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 人才招聘
网站合作、内容监督、商务咨询:QQ: 9576619
Copyright ? 2005--2008 中国建站之家版权所有
粤ICP备05092265号