ASP整合的一个SQL语句类

语句

我们在写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

时间: 2024-10-28 15:19:14

ASP整合的一个SQL语句类的相关文章

ASP整合一个SQL语句类

 我们在写asp数据库程序的时候,通常都会用到SQL语句,而在增加数据和更新数据的时候,通常会使用一下方式:insert into message (incept,sender,title,content,sendtime,flag,issend) values ('"&incept(i)&"','"&membername&"','"&title&"','"&message&

一个SQL语句引发的ORA-00600错误排查

作者介绍 杨建荣,[DBAplus社群]联合发起人.现就职于搜狐畅游,Oracle ACE-A.YEP成员,超7年数据库开发和运维经验,擅长电信数据业务.数据库迁移和性能调优.持Oracle 10G OCP,OCM,MySQL OCP认证,<Oracle DBA工作笔记>作者.   Merge是从Oracle 9i就引入的功能,它是有别于其他DML中的一种特殊语句,类似于MySQL中的 insert into on duplicate key操作,而且Merge功能更丰富,可以同时对一个表中的

一个SQL语句引发的ORA-00600错误排查(一)

最近有一个同事问我一个问题,说他运行一个SQL语句抛出了ORA-00600的错误,想让我帮忙分析一下,这种问题听了确实有兴趣,了解了问题的大体情况之后,发现这个问题还是值得分析分析的,因为只是客户端调用抛出异常,没有给服务器端带来什么致命的影响,这样的问题还是很耐人寻味的.     简单沟通后,我得到了同事提供的SQL语句和执行环境,语句类似下面的形式: MERGE INTO (SELECT * FROM TEST_SERVER_LOG WHERE BUY_TIME>=TO_DATE(:1 ,'

一个SQL语句引发的ORA-00600错误排查(二)

继昨天一个SQL语句导致的ORA-00600错误之后,我给出了背景和初步的分析结果,今天来给出我的结论,当然说明原因不是我的本意,还有反思. 首先语句类似这样的形式: MERGE INTO (SELECT * FROM TEST_SERVER_LOG WHERE BUY_TIME>=TO_DATE(:1 ,'YYYY-MM-DD HH24:MI:SS')                                AND BUY_TIME<to_date(:2 ,'yyyy-mm-dd=&q

怎么写出一个sql语句来表示销售的配件的数量

问题描述 怎么写出一个sql语句来表示销售的配件的数量 String sql = "select '配件A' label,12 value " + "union all " + "select '配件B' label,10 value "; 来修改这个sql来表示表中的内容 解决方案 啥玩意,你这不是已经有这些数据了吗,还要改什么

需要写一个SQL语句,大神帮我吧!在线等

问题描述 需要写一个SQL语句,大神帮我吧!在线等 我有一张产品供货价的表ProductPrice,该表有五个字段,分别是id,ProductID(外键关联产品ID),ChannelID(外键关联渠道ID),CustomerTypeID(外键关联客户类型ID),PriceSupply(供货价), 该表有三个外键,我最终的目的是得到该外键对应的供货价,其中一个ID变了供货价肯定就变了.看一下该表的的结构和数据. 但是我页面上只有两个下拉框控件,一个是客户,一个是产品.我只能拿到这两个对应的ID,渠

sql语句-表T(A)包含正整数,可能有重复,构造一个SQL语句查询不在表T中的最小正整数

问题描述 表T(A)包含正整数,可能有重复,构造一个SQL语句查询不在表T中的最小正整数 表T(A)包含正整数,可能有重复,构造一个SQL语句查询不在表T中的最小正整数,需要考虑表T包含或不包含正整数1两种情况.不能编程实现.考虑了半天没有很好的思路,请大家指点则个 解决方案 DECLARE @minvalue INT = select min(A) from T IF minvalue > 1 return 1 ELSE DECLARE @maxvalue INT = select max(A

sql语句-请教一个SQL语句如何写?

问题描述 请教一个SQL语句如何写? 求助大侠:表A中有字段a,b,c,d,e,f,但并不是所有字段都一定有值,其中有值字段原值为'201xxxx'现在要将有值字段由'201xxxx'替换为'2001xxxx',无值字段保留为空,请问SQL语句如何写?(其中'201xxxx'中的xxxx代表数字,比如20101或201010101,位数不定,也可能只为201)请赐教. 解决方案 update [A] set [a] = left(a2)+'0'+right(alen(a)-2) [b] = le

求教这两张表有什么联系写一个sql语句呀!

问题描述 求教这两张表有什么联系写一个sql语句呀! ![ 解决方案 一个sql语句 怎么写比较好在同一个sql语句中写不同条件的count数量,和查询半年的数据自学数据库之一个自己写的SQL语句 解决方案二: 库存管理里面的商品product_id 和商品管理里的no,是同一个值么,如果不是的话,那商品管理表里面还有一部分看不到的字段呢? 解决方案三: 解决方案四: 两张表的第一个ID字段是不是同一个?