我们在写asp数据库程序的时候通常都会用到SQL语句而在增加数据和更新数据的时候通常会使用一下方式insert into message (inceptsendertitlecontentsendtimeflagissend) values ("&incept(i)&""&membername&""&title&""&message&"Now()) 当字段比较多的时候而且更新的表比较多的时候修改起来会比较麻烦而且查找错误也比较困难使用这个SQL类后可以简化修改而且查错也比较容易通过类的AddField函数增加字段名和字段值可轻松的将字段名和字段值插入SQL语句然后返回该SQL语句
下面让我们看看这个类的代码
<%
class SQLString
************************************
变量定义
************************************
sTableName 表名
iSQLType SQL语句类型增加更新删除查询
sWhere 条件
sOrder 排序方式
sSQL 值
PRivate sTableNameiSQLTypesWheresOrdersSQL
************************************
类初始化/结束
************************************
Private Sub Class_Initialize()
sTableName=""
iSQLType=
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
sSQL="insert into # (#) values (#)"
case
sSQL="update # set #=#"
case
sSQL="delete from # "
case
sSQL="select # from # "
end select
End Property
************************************
函数
************************************
增加字段(字段名称字段值)
Public Sub AddField(sFieldNamesValue)
select case iSQLType
case
sSQL=replace(sSQL"#"sFieldName & "#")
sSQL=replace(sSQL"#""" & sFieldName & "#")
case
sSQL=replace(sSQL"#"sFieldName)
sSQL=replace(sSQL"#""" & sFieldName & "#=#")
case
sSQL=replace(sSQL"#"sFieldName & "#")
End Select
End Sub
返回SQL语句
Public Function ReturnSQL()
sSQL=replace(sSQL"#"sTableName)
select case iSQLType
case
sSQL=replace(sSQL"#""")
sSQL=replace(sSQL"#""")
case
sSQL=replace(sSQL"#=#""")
case
sSQL=replace(sSQL"#""")
end Select
if sWhere<>"" then
sSQL=sSQL & " where " & sWhere
end if
if sOrder<>"" then
sSQL=sSQL & " order by " & sOrder
end if
ReturnSQL=sSQL
End Function
清空语句
Public Sub Clear()
sTableName=""
iSQLType=
sWhere=""
sOrder=""
sSQL=""
End Sub
end class
%>
使用方法
例句insert into message (inceptsendertitlecontentsendtimeflagissend) values ("&incept(i)&""&membername&""&title&""&message&"Now())
set a =new SQLString ‘创建类对象
aTableName=" message " ‘设置表名为message
aSQLType= ‘设置查询类型为增加记录
aAddField " incept" incept(i)
aAddField " sender " membername
aAddField " title " membername
aAddField " sender " title
aAddField " content " message
aAddField " sendtime " sendtime()
aAddField " flag"
aAddField " issend "
ResponseWrite aReturnSQl
set a=nothing