一个改进的ASP生成SQL 命令字符串的类

2016-01-29 18:48 1 1 收藏

一个改进的ASP生成SQL 命令字符串的类,一个改进的ASP生成SQL 命令字符串的类

【 tulaoshi.com - ASP 】

 

网上找资料发现的,但是调试的时候发现有一些问题,
改了一下,还有一定的问题,但是可以做一般使用了。
没有考虑数据类型的问题,还有SQL Server 和access的区别,以后有时间再改进吧,不知道效率怎么样。
如果有朋友改进,也麻烦给我发一份。
<%
'生成SQL字符串的类。
'原作:无名氏
'改进:aloxy
'E-mail:szyjJ@hotmail.com
'OICQ:331622229
class SQLString
'************************************
'变量定义
'************************************
'sTableName ---- 表名
'iSQLType ----SQL语句类型:0-增加,1-更新,2-删除,3-查询
'sWhere ---- 条件
'sOrder ---- 排序方式
'sSQL ----值

Private sTableName,iSQLType,sWhere,sOrder,sSQL

'************************************
'类初始化/结束
'************************************

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/asp/)

Private Sub Class_Initialize()
sTableName=""
iSQLType=0
sWhere=""
sOrder=""
sSQL=""
End Sub

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/asp/)

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

'清空语句

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 ", " 4 "
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
%

 

来源:http://www.tulaoshi.com/n/20160129/1507370.html

延伸阅读
标签: PHP
  <?php /* 如有转载,请注明作者 原作者: 何志强 改进: SonyMusic[ sonymusic@163.net ] 文件: ubb.php 备注: 说是改进,其实核心函数parse()已经完全重写了,而且思路也是不一样的。 不过仍是受何志强的例子的启发,而且测试的例子还有URLCHECK等几个函数也是沿用的何志强的程序,谢谢何志强。 目前还没有颜色的功能,但我...
标签: PHP
  // php 中 一个控制字符串输出的函数(中英文),每行显示多少字数,避免英文的影响 // $str 字符串 // $len 每行显示的字数(汉字×2) function rep($str,$len) {        $strlen=strlen($str);        $i=0;     $finstr="...
标签: Web开发
比如 1223445677777778aabbcccccccccc 经过过滤之后就是12345678abc 代码如下: % '过滤重复 Function norepeat(Str) Dim RegEx If IsNull(Str) Or Str="" Then Exit Function Set RegEx=New RegExp RegEx.Global = True RegEx.IgnoreCase=True RegEx.MultiLine = True RegEx.pattern="(.)\1+" str=regEx.replace(str,"$1") Set R...
//控件单元。 {* 单元说明:     创建模式窗口,和非模式窗口的类,保证非模式窗口只创建一次。 作者        :     笔名:易  一    英文名:yeeyee E-Mail     :    jane14...
标签: Web开发
比如 1223445677777778aabbcccccccccc 经过过滤之后就是12345678abc 代码如下: %     '过滤重复    Function norepeat(Str)     Dim RegEx     If IsNull(Str) Or Str="" Then Exit Function  ...

经验教程

538

收藏

6
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部