首页 > 编程 > ASP > 正文

一个改进的ASP生成SQL命令字符串类的代码[已测

2024-05-04 11:08:11
字体:
来源:转载
供稿:网友
网上找资料发现的,但是调试的时候发现有一些问题,改了一下,还有一定的问题,但是可以做一般使用了。没有考虑数据类型的问题,还有SQL Server 和access的区别,以后有时间再改进吧,不知道效率怎么样。如果有朋友改进,也麻烦给我发一份
 
 
 

 

复制代码代码如下:

<% 
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 
%> 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表