一个改进的ASP生成SQL命令字符串类的代码[已测] 复制代码 代码如下:<% class SQLString '************************************ '变量定义 '************************************ 'sTableName ---- 表名 'iSQLType ----SQL语句类型:0-增加,1-更新,2-删除,3-查询 'sWhere ---- 条件 'sOrder ---- 排序方式 'sSQL ----值 Private sTableName,iSQLType,sWhere,sOrder,sSQL '************************************ '类初始化/结束 '************************************ Private Sub Class_Initialize() sTableName="" iSQLType=0 sWhere="" sOrder="" sSQL="" End Sub Private Sub Class_Terminate() End Sub '************************************ '属性 '************************************ '设置表名的属性 Public Property Let TableName(value) sTableName=value End Property '设置条件 Public Property Let Where(value) sWhere=value End Property '设置排序方式 Public Property Let Order(value) sOrder=value End Property '设置查询语句的类型 Public property Let SQLType(value) iSQLType=value select case iSQLType case 0 sSQL="insert into {&*#}0 ({&*#}1) values ({&*#}2)" case 1 sSQL="update {&*#}0 set {&*#}1={&*#}2" case 2 sSQL="delete from {&*#}0 " case 3 sSQL="select {&*#}1 from {&*#}0 " end select End Property '************************************ '函数 '************************************ '增加字段(字段名称,字段值) Public Sub AddField(sFieldName,sValue) select case iSQLType case 0 sSQL=replace(sSQL,"{&*#}1",sFieldName & ",{&*#}1") sSQL=replace(sSQL,"{&*#}2","" & sValue & ",{&*#}2") case 1 sSQL=replace(sSQL,"{&*#}1",sFieldName) sSQL=replace(sSQL,"{&*#}2","" & sValue & ",{&*#}1={&*#}2") case 3 sSQL=replace(sSQL,"{&*#}1",sFieldName & ",{&*#}1") End Select End Sub '修改的返回字符串值的函数 '返回SQL语句 Public Function ReturnSQL() sSQL=replace(sSQL,"{&*#}0",sTableName) select case iSQLType case 0 sSQL=replace(sSQL,",{&*#}1","") sSQL=replace(sSQL,",{&*#}2","") case 1 sSQL=replace(sSQL,",{&*#}1={&*#}2","") case 3 sSQL=replace(sSQL,",{&*#}1","") end Select if sWhere<>"" and iSQLType<>0 then sSQL=sSQL & " where " & sWhere end if if sOrder<>"" and iSQLType<>0 then sSQL=sSQL & " order by " & sOrder end if ReturnSQL=sSQL End Function '返回SQL语句 Public Function ReturnSQL1() sSQL=replace(sSQL,"{&*#}0",sTableName) select case iSQLType case 0 sSQL=replace(sSQL,",{&*#}1","") sSQL=replace(sSQL,",{&*#}2","") case 1 sSQL=replace(sSQL,",{&*#}1={&*#}2","") case 3 sSQL=replace(sSQL,",{&*#}1","") end Select if sWhere<>"" and iSQLType<>0 then sSQL=sSQL & " where " & sWhere end if if sOrder<>"" and iSQLType<>0 then sSQL=sSQL & " order by " & sOrder end if ReturnSQL=sSQL End Function '清空语句 Public Sub Clear() sTableName="" iSQLType=0 sWhere="" sOrder="" sSQL="" End Sub End class %> 调用例子: <% set a =new SQLString '创建类对象 a.TableName=" message " '设置表名为message 'a.where=" issend =9" 'a.order=" issend desc" a.SQLType=0 '设置查询类型为增加记录 a.AddField " incept", "'2'" a.AddField " sender ", "'%3%' " a.AddField " title ", "#"&now&"#" a.AddField " sender ", "5 " a.AddField " content ", " 6 " a.AddField " sendtime ", "7" a.AddField " flag", 8 a.AddField " issend ", 9 Response.Write a.ReturnSQl set a=nothing %> <% set a =new SQLString '创建类对象 a.TableName=" message " '设置表名为message 'a.where=" issend =9" 'a.order=" issend desc" a.SQLType=0 '设置查询类型为增加记录 a.AddField " incept", "'2'" a.AddField " sender ", "'%3%' " a.AddField " title ", "#"&now&"#" a.AddField " sender ", "5 " a.AddField " content ", " 6 " a.AddField " sendtime ", "7" a.AddField " flag", 8 a.AddField " issend ", 9 Response.Write a.ReturnSQl set a=nothing %> <% set a =new SQLString '创建类对象 a.TableName=" message " '设置表名为message 'a.where=" issend =9" 'a.order=" issend desc" a.SQLType=0 '设置查询类型为增加记录 a.AddField " incept", "'2'" a.AddField " sender ", "'%3%' " a.AddField " title ", "#"&now&"#" a.AddField " sender ", "5 " a.AddField " content ", " 6 " a.AddField " sendtime ", "7" a.AddField " flag", 8 a.AddField " issend ", 9 Response.Write a.ReturnSQl set a=nothing %>