一个改进的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

  %>