我们在写asp数据库程序的时候,通常都会用到sql语句,而在增加数据和更新数据的时候,通常会使用一下方式:insert into message (incept,sender,title,content,sendtime,flag,issend) values ("&incept(i)&","&membername&","&title&","&message&",now(),0,1)当字段比较多的时候,而且更新的表比较多的时候,修改起来会比较麻烦,而且查找错误也比较困难。使用这个sql类后可以简化修改,而且查错也比较容易。通过类的addfield函数增加字段名和字段值,可轻松的将字段名和字段值插入sql语句,然后返回该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","" & sfieldname & ",#2")
case 1
ssql=replace(ssql,"#1",sfieldname)
ssql=replace(ssql,"#2","" & sfieldname & ",#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<>"" 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=0
swhere=""
sorder=""
ssql=""
end sub
end class
%>
使用方法:
例句:insert into message (incept,sender,title,content,sendtime,flag,issend) values ("&incept(i)&","&membername&","&title&","&message&",now(),0,1)
set a =new sqlstring ‘创建类对象
a.tablename=" message " ‘设置表名为message
a.sqltype=0 ‘设置查询类型为增加记录
a.addfield " incept", incept(i)
a.addfield " sender ", membername
a.addfield " title ", membername
a.addfield " sender ", title
a.addfield " content ", message
a.addfield " sendtime ", sendtime()
a.addfield " flag", 0
a.addfield " issend ", 1
response.write a.returnsql
set a=nothing
