时间: 2021-07-31 作者:daque
<%@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());%>