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

2016-01-29 18:48 0 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

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

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

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

'返回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

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

'清空语句

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
%

 

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

延伸阅读
标签: ASP
1. 字符串函数: Len(str):取得字符串的长度 Instr(str1,str2):从字符串str1,寻找另一个字符串str2第一个出现的位置 Left(str,n):从字符串str左起取n个字符 Right(str,n):从字符串str右起取n个字符 Mid(str1,n1,n2):从字符串第n1个字符开始,取出n2个字符。 2.字符串函数应用: 1)通过字符函数设计出一个字符串长度控制函数: 防止超过行宽字符...
标签: PHP
  // php 中 一个控制字符串输出的函数(中英文),每行显示多少字数,避免英文的影响 // $str 字符串 // $len 每行显示的字数(汉字×2) function rep($str,$len) {        $strlen=strlen($str);        $i=0;     $finstr="...
标签: Web开发
Function strnum(patrn, strng)   Dim regEx, Match, Matches,xx     xx=0   Set regEx = New RegExp   regEx.Pattern = patrn   regEx.IgnoreCase = True       &nbs...
标签: PHP
  一个可以删除字符串中HTML标记的PHP函数 作者:limote 当访客留言和发帖时,我们并不希望访客在留言和帖子中使用HTML标记,所以在访客提交留言和帖子时我门得把HTML标记删除,下面的函数就是实现此功能的函数 <? function delete_htm($scr) { for($i=0;$i<strlen($scr);$i++) { if(substr($scr,$i,1)==&q...
标签: Web开发
比如 1223445677777778aabbcccccccccc 经过过滤之后就是12345678abc 代码如下: %     '过滤重复    Function norepeat(Str)     Dim RegEx     If IsNull(Str) Or Str="" Then Exit Function  ...

经验教程

346

收藏

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