1 <%
<%
2 '==========================================================================
'==========================================================================
3 '文件名称:clsDbCtrl.asp
'文件名称:clsDbCtrl.asp
4 '功  能:数据库操作类
'功  能:数据库操作类
5 '作  者:coldstone (coldstone[在]qq.com)
'作  者:coldstone (coldstone[在]qq.com)
6 '程序版本:v1.0.5
'程序版本:v1.0.5
7 '完成时间:2005.09.23
'完成时间:2005.09.23
8 '修改时间:2007.10.30
'修改时间:2007.10.30
9 '版权声明:可以在任意作品中使用本程序代码,但请保留此版权信息。
'版权声明:可以在任意作品中使用本程序代码,但请保留此版权信息。
10 '       如果你修改了程序中的代码并得到更好的应用,请发送一份给我,谢谢。
'       如果你修改了程序中的代码并得到更好的应用,请发送一份给我,谢谢。
11 '==========================================================================
'==========================================================================
12
13 Dim a : a = CreatConn(0, "master", "localhost", "sa", "") 'MSSQL数据库
Dim a : a = CreatConn(0, "master", "localhost", "sa", "") 'MSSQL数据库
14 'Dim a : a = CreatConn(1, "Data/%TestDB%.mdb", "", "", "") 'Access数据库
'Dim a : a = CreatConn(1, "Data/%TestDB%.mdb", "", "", "") 'Access数据库
15 'Dim a : a = CreatConn(1, "E:\MyWeb\Data\%TestDB%.mdb", "", "", "mdbpassword")
'Dim a : a = CreatConn(1, "E:\MyWeb\Data\%TestDB%.mdb", "", "", "mdbpassword")
16 Dim Conn
Dim Conn
17 'OpenConn() '在加载时就建立的默认连接对象Conn,默认使用数据库a
'OpenConn() '在加载时就建立的默认连接对象Conn,默认使用数据库a
18 Sub OpenConn : Set Conn = Oc(a) : End Sub
Sub OpenConn : Set Conn = Oc(a) : End Sub
19 Sub CloseConn : Co(Conn) : End Sub
Sub CloseConn : Co(Conn) : End Sub
20
21 Function Oc(ByVal Connstr)
Function Oc(ByVal Connstr)
22 On Error Resume Next
On Error Resume Next
23 Dim objConn
Dim objConn
24 Set objConn = Server.CreateObject("ADODB.Connection")
Set objConn = Server.CreateObject("ADODB.Connection")
25 objConn.Open Connstr
objConn.Open Connstr
26 If Err.number <> 0 Then
If Err.number <> 0 Then
27 Response.Write("<div id=""DBError"">数据库服务器端连接错误,请与网站管理员联系。</div>")
   Response.Write("<div id=""DBError"">数据库服务器端连接错误,请与网站管理员联系。</div>")
28 'Response.Write("错误信息:" & Err.Description)
   'Response.Write("错误信息:" & Err.Description)
29 objConn.Close
   objConn.Close
30 Set objConn = Nothing
   Set objConn = Nothing
31 Response.End
   Response.End
32 End If
End If
33 Set Oc = objConn
Set Oc = objConn
34 End Function
End Function
35
36 Sub Co(obj)
Sub Co(obj)
37 On Error Resume Next
On Error Resume Next
38 Set obj = Nothing
Set obj = Nothing
39 End Sub
End Sub
40
41 Function CreatConn(ByVal dbType, ByVal strDB, ByVal strServer, ByVal strUid, ByVal strPwd)
Function CreatConn(ByVal dbType, ByVal strDB, ByVal strServer, ByVal strUid, ByVal strPwd)
42 Dim TempStr
Dim TempStr
43 Select Case dbType
Select Case dbType
44 Case "0","MSSQL"
   Case "0","MSSQL"
45 TempStr = "driver={sql server};server="&strServer&";uid="&strUid&";pwd="&strPwd&";database="&strDB
      TempStr = "driver={sql server};server="&strServer&";uid="&strUid&";pwd="&strPwd&";database="&strDB
46 Case "1","ACCESS"
   Case "1","ACCESS"
47 Dim tDb : If Instr(strDB,":")>0 Then : tDb = strDB : Else : tDb = Server.MapPath(strDB) : End If
      Dim tDb : If Instr(strDB,":")>0 Then : tDb = strDB : Else : tDb = Server.MapPath(strDB) : End If
48 TempStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&tDb&";Jet OLEDB:Database Password="&strPwd&";"
      TempStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&tDb&";Jet OLEDB:Database Password="&strPwd&";"
49 Case "3","MYSQL"
   Case "3","MYSQL"
50 TempStr = "Driver={mySQL};Server="&strServer&";Port=3306;Option=131072;Stmt=; Database="&strDB&";Uid="&strUid&";Pwd="&strPwd&";"
      TempStr = "Driver={mySQL};Server="&strServer&";Port=3306;Option=131072;Stmt=; Database="&strDB&";Uid="&strUid&";Pwd="&strPwd&";"
51 Case "4","ORACLE"
   Case "4","ORACLE"
52 TempStr = "Driver={Microsoft ODBC for Oracle};Server="&strServer&";Uid="&strUid&";Pwd="&strPwd&";"
      TempStr = "Driver={Microsoft ODBC for Oracle};Server="&strServer&";Uid="&strUid&";Pwd="&strPwd&";"
53 End Select
End Select
54 CreatConn = TempStr
CreatConn = TempStr
55 End Function
End Function
56
57
58 Class dbCtrl
Class dbCtrl
59 Private debug
Private debug
60 Private idbConn
Private idbConn
61 Private idbErr
Private idbErr
62
63 Private Sub Class_Initialize()
Private Sub Class_Initialize()
64 debug = true             '调试模式是否开启
   debug = true             '调试模式是否开启
65 idbErr = "出现错误:"
   idbErr = "出现错误:"
66 If IsObject(Conn) Then
   If IsObject(Conn) Then
67 Set idbConn = Conn
      Set idbConn = Conn
68 End If
   End If
69 End Sub
End Sub
70
71 Private Sub Class_Terminate()
Private Sub Class_Terminate()
72 Set idbConn = Nothing
   Set idbConn = Nothing
73 If debug And idbErr<>"出现错误:" Then Response.Write(idbErr)
   If debug And idbErr<>"出现错误:" Then Response.Write(idbErr)
74 End Sub
End Sub
75
76 Public Property Let dbConn(pdbConn)
Public Property Let dbConn(pdbConn)
77 If IsObject(pdbConn) Then
   If IsObject(pdbConn) Then
78 Set idbConn = pdbConn
      Set idbConn = pdbConn
79 Else
   Else
80 Set idbConn = Conn
      Set idbConn = Conn
81 End If
   End If
82 End Property
End Property
83
84 Public Property Get dbErr()
Public Property Get dbErr()
85 dbErr = idbErr
   dbErr = idbErr
86 End Property
End Property
87
88 Public Property Get Version
Public Property Get Version
89 Version = "ASP Database Ctrl V1.0 By ColdStone"
   Version = "ASP Database Ctrl V1.0 By ColdStone"
90 End Property
End Property
91
92 Public Function AutoID(ByVal TableName)
Public Function AutoID(ByVal TableName)
93 On Error Resume Next
   On Error Resume Next
94 Dim m_No,Sql, m_FirTempNo
   Dim m_No,Sql, m_FirTempNo
95 Set m_No=Server.CreateObject("adodb.recordset")
   Set m_No=Server.CreateObject("adodb.recordset")
96 Sql="SELECT * FROM ["&TableName&"]"
   Sql="SELECT * FROM ["&TableName&"]"
97 m_No.Open Sql,idbConn,1,1
   m_No.Open Sql,idbConn,1,1
98 If m_No.EOF Then
   If m_No.EOF Then
99 AutoID=1
      AutoID=1
100 Else
   Else
101 Do While Not m_No.EOF
      Do While Not m_No.EOF
102 m_FirTempNo=m_No.Fields(0).Value
         m_FirTempNo=m_No.Fields(0).Value 
103 m_No.MoveNext
         m_No.MoveNext
104 If m_No.EOF Then
             If m_No.EOF Then 
105 AutoID=m_FirTempNo+1
               AutoID=m_FirTempNo+1
106 End If
             End If
107 Loop
      Loop
108 End If
   End If
109 If Err.number <> 0 Then
   If Err.number <> 0 Then
110 idbErr = idbErr & "无效的查询条件!<br />"
      idbErr = idbErr & "无效的查询条件!<br />"
111 If debug Then idbErr = idbErr & "错误信息:"& Err.Description
      If debug Then idbErr = idbErr & "错误信息:"& Err.Description
112 Response.End()
      Response.End()
113 Exit Function
      Exit Function
114 End If
   End If
115 m_No.close
   m_No.close
116 Set m_No = Nothing
   Set m_No = Nothing
117 End Function
End Function
118
119 Public Function GetRecord(ByVal TableName,ByVal FieldsList,ByVal Condition,ByVal OrderField,ByVal ShowN)
Public Function GetRecord(ByVal TableName,ByVal FieldsList,ByVal Condition,ByVal OrderField,ByVal ShowN)
120 On Error Resume Next
   On Error Resume Next
121 Dim rstRecordList
   Dim rstRecordList
122 Set rstRecordList=Server.CreateObject("adodb.recordset")
   Set rstRecordList=Server.CreateObject("adodb.recordset")
123 With rstRecordList
      With rstRecordList
124 .ActiveConnection = idbConn
      .ActiveConnection = idbConn
125 .CursorType = 1
      .CursorType = 1
126 .LockType = 1
      .LockType = 1
127 .Source = wGetRecord(TableName,FieldsList,Condition,OrderField,ShowN)
      .Source = wGetRecord(TableName,FieldsList,Condition,OrderField,ShowN)
128 .Open
      .Open 
129 If Err.number <> 0 Then
      If Err.number <> 0 Then
130 idbErr = idbErr & "无效的查询条件!<br />"
         idbErr = idbErr & "无效的查询条件!<br />"
131 If debug Then idbErr = idbErr & "错误信息:"& Err.Description
         If debug Then idbErr = idbErr & "错误信息:"& Err.Description
132 .Close
         .Close
133 Set rstRecordList = Nothing
         Set rstRecordList = Nothing
134 Response.End()
         Response.End()
135 Exit Function
         Exit Function
136 End If
      End If 
137 End With
   End With
138 Set GetRecord=rstRecordList
   Set GetRecord=rstRecordList
139 End Function
End Function
140
141 Public Function wGetRecord(ByVal TableName,ByVal FieldsList,ByVal Condition,ByVal OrderField,ByVal ShowN)
Public Function wGetRecord(ByVal TableName,ByVal FieldsList,ByVal Condition,ByVal OrderField,ByVal ShowN)
142 Dim strSelect
   Dim strSelect
143 strSelect="select "
   strSelect="select "
144 If ShowN > 0 Then
   If ShowN > 0 Then
145 strSelect = strSelect & " top " & ShowN & " "
      strSelect = strSelect & " top " & ShowN & " "
146 End If
   End If
147 If FieldsList<>"" Then
   If FieldsList<>"" Then
148 strSelect = strSelect & FieldsList
      strSelect = strSelect & FieldsList
149 Else
   Else
150 strSelect = strSelect & " * "
      strSelect = strSelect & " * "
151 End If
   End If
152 strSelect = strSelect & " from [" & TableName & "]"
   strSelect = strSelect & " from [" & TableName & "]"
153 If Condition <> "" Then
   If Condition <> "" Then
154 strSelect = strSelect & " where " & ValueToSql(TableName,Condition,1)
      strSelect = strSelect & " where " & ValueToSql(TableName,Condition,1)
155 End If
   End If
156 If OrderField <> "" Then
   If OrderField <> "" Then
157 strSelect = strSelect & " order by " & OrderField
      strSelect = strSelect & " order by " & OrderField
158 End If
   End If
159 wGetRecord = strSelect
   wGetRecord = strSelect
160 End Function
End Function
161
162 Public Function GetRecordBySQL(ByVal strSelect)
Public Function GetRecordBySQL(ByVal strSelect)
163 On Error Resume Next
   On Error Resume Next
164 Dim rstRecordList
   Dim rstRecordList
165 Set rstRecordList=Server.CreateObject("adodb.recordset")
   Set rstRecordList=Server.CreateObject("adodb.recordset")
166 With rstRecordList
      With rstRecordList
167 .ActiveConnection =idbConn
      .ActiveConnection =idbConn
168 .CursorType = 1
      .CursorType = 1
169 .LockType = 1
      .LockType = 1
170 .Source = strSelect
      .Source = strSelect
171 .Open
      .Open 
172 If Err.number <> 0 Then
      If Err.number <> 0 Then
173 idbErr = idbErr & "无效的查询条件!<br />"
         idbErr = idbErr & "无效的查询条件!<br />"
174 If debug Then idbErr = idbErr & "错误信息:"& Err.Description
         If debug Then idbErr = idbErr & "错误信息:"& Err.Description
175 .Close
         .Close
176 Set rstRecordList = Nothing
         Set rstRecordList = Nothing
177 Response.End()
         Response.End()
178 Exit Function
         Exit Function
179 End If
      End If 
180 End With
   End With
181 Set GetRecordBySQL = rstRecordList
   Set GetRecordBySQL = rstRecordList
182 End Function
End Function
183
184 Public Function GetRecordDetail(ByVal TableName,ByVal Condition)
Public Function GetRecordDetail(ByVal TableName,ByVal Condition)
185 On Error Resume Next
   On Error Resume Next
186 Dim rstRecordDetail, strSelect
   Dim rstRecordDetail, strSelect
187 Set rstRecordDetail=Server.CreateObject("adodb.recordset")
   Set rstRecordDetail=Server.CreateObject("adodb.recordset")
188 With rstRecordDetail
   With rstRecordDetail
189 .ActiveConnection =idbConn
      .ActiveConnection =idbConn
190 strSelect = "select * from [" & TableName & "] where " & ValueToSql(TableName,Condition,1)
      strSelect = "select * from [" & TableName & "] where " & ValueToSql(TableName,Condition,1)
191 .CursorType = 1
      .CursorType = 1
192 .LockType = 1
      .LockType = 1
193 .Source = strSelect
      .Source = strSelect
194 .Open
      .Open 
195 If Err.number <> 0 Then
      If Err.number <> 0 Then
196 idbErr = idbErr & "无效的查询条件!<br />"
         idbErr = idbErr & "无效的查询条件!<br />"
197 If debug Then idbErr = idbErr & "错误信息:"& Err.Description
         If debug Then idbErr = idbErr & "错误信息:"& Err.Description
198 .Close
         .Close
199 Set rstRecordDetail = Nothing
         Set rstRecordDetail = Nothing
200 Response.End()
         Response.End()
201 Exit Function
         Exit Function
202 End If
      End If
203 End With
   End With
204 Set GetRecordDetail=rstRecordDetail
   Set GetRecordDetail=rstRecordDetail
205 End Function
End Function
206
207 Public Function AddRecord(ByVal TableName, ByVal ValueList)
Public Function AddRecord(ByVal TableName, ByVal ValueList)
208 On Error Resume Next
   On Error Resume Next
209 DoExecute(wAddRecord(TableName,ValueList))
   DoExecute(wAddRecord(TableName,ValueList))
210 If Err.number <> 0 Then
   If Err.number <> 0 Then
211 idbErr = idbErr & "写入数据库出错!<br />"
      idbErr = idbErr & "写入数据库出错!<br />"
212 If debug Then idbErr = idbErr & "错误信息:"& Err.Description
      If debug Then idbErr = idbErr & "错误信息:"& Err.Description
213 'DoExecute "ROLLBACK TRAN Tran_Insert" '如果存在添加事务(事务滚回)
      'DoExecute "ROLLBACK TRAN Tran_Insert" '如果存在添加事务(事务滚回)
214 AddRecord = 0
      AddRecord = 0
215 Exit Function
      Exit Function
216 End If
   End If
217 AddRecord = AutoID(TableName)-1
   AddRecord = AutoID(TableName)-1
218 End Function
End Function
219
220 Public Function wAddRecord(ByVal TableName, ByVal ValueList)
Public Function wAddRecord(ByVal TableName, ByVal ValueList)
221 Dim TempSQL, TempFiled, TempValue
   Dim TempSQL, TempFiled, TempValue
222 TempFiled = ValueToSql(TableName,ValueList,2)
   TempFiled = ValueToSql(TableName,ValueList,2)
223 TempValue = ValueToSql(TableName,ValueList,3)
   TempValue = ValueToSql(TableName,ValueList,3)
224 TempSQL = "Insert Into [" & TableName & "] (" & TempFiled & ") Values (" & TempValue & ")"
   TempSQL = "Insert Into [" & TableName & "] (" & TempFiled & ") Values (" & TempValue & ")"
225 wAddRecord = TempSQL
   wAddRecord = TempSQL
226 End Function
End Function
227
228 Public Function UpdateRecord(ByVal TableName,ByVal Condition,ByVal ValueList)
Public Function UpdateRecord(ByVal TableName,ByVal Condition,ByVal ValueList)
229 On Error Resume Next
   On Error Resume Next
230 DoExecute(wUpdateRecord(TableName,Condition,ValueList))
   DoExecute(wUpdateRecord(TableName,Condition,ValueList))
231 If Err.number <> 0 Then
   If Err.number <> 0 Then
232 idbErr = idbErr & "更新数据库出错!<br />"
      idbErr = idbErr & "更新数据库出错!<br />"
233 If debug Then idbErr = idbErr & "错误信息:"& Err.Description
      If debug Then idbErr = idbErr & "错误信息:"& Err.Description
234 'DoExecute "ROLLBACK TRAN Tran_Update" '如果存在添加事务(事务滚回)
      'DoExecute "ROLLBACK TRAN Tran_Update" '如果存在添加事务(事务滚回)
235 UpdateRecord = 0
      UpdateRecord = 0
236 Exit Function
      Exit Function
237 End If
   End If
238 UpdateRecord = 1
   UpdateRecord = 1
239 End Function
End Function
240
241 Public Function wUpdateRecord(ByVal TableName,ByVal Condition,ByVal ValueList)
Public Function wUpdateRecord(ByVal TableName,ByVal Condition,ByVal ValueList)
242 Dim TmpSQL
   Dim TmpSQL
243 TmpSQL = "Update ["&TableName&"] Set "
   TmpSQL = "Update ["&TableName&"] Set "
244 TmpSQL = TmpSQL & ValueToSql(TableName,ValueList,0)
   TmpSQL = TmpSQL & ValueToSql(TableName,ValueList,0)
245 TmpSQL = TmpSQL & " Where " & ValueToSql(TableName,Condition,1)
   TmpSQL = TmpSQL & " Where " & ValueToSql(TableName,Condition,1)
246 wUpdateRecord = TmpSQL
   wUpdateRecord = TmpSQL
247 End Function
End Function
248
249 Public Function DeleteRecord(ByVal TableName,ByVal IDFieldName,ByVal IDValues)
Public Function DeleteRecord(ByVal TableName,ByVal IDFieldName,ByVal IDValues)
250 On Error Resume Next
   On Error Resume Next
251 Dim Sql
   Dim Sql
252 Sql = "Delete From ["&TableName&"] Where ["&IDFieldName&"] In ("
   Sql = "Delete From ["&TableName&"] Where ["&IDFieldName&"] In ("
253 If IsArray(IDValues) Then
   If IsArray(IDValues) Then
254 Sql = Sql & "Select ["&IDFieldName&"] From ["&TableName&"] Where " & ValueToSql(TableName,IDValues,1)
      Sql = Sql & "Select ["&IDFieldName&"] From ["&TableName&"] Where " & ValueToSql(TableName,IDValues,1)
255 Else
   Else
256 Sql = Sql & IDValues
      Sql = Sql & IDValues
257 End If
   End If
258 Sql = Sql & ")"
   Sql = Sql & ")"
259 DoExecute(Sql)
   DoExecute(Sql)
260 If Err.number <> 0 Then
   If Err.number <> 0 Then
261 idbErr = idbErr & "删除数据出错!<br />"
      idbErr = idbErr & "删除数据出错!<br />"
262 If debug Then idbErr = idbErr & "错误信息:"& Err.Description
      If debug Then idbErr = idbErr & "错误信息:"& Err.Description
263 'DoExecute "ROLLBACK TRAN Tran_Delete" '如果存在添加事务(事务滚回)
      'DoExecute "ROLLBACK TRAN Tran_Delete" '如果存在添加事务(事务滚回)
264 DeleteRecord = 0
      DeleteRecord = 0 
265 Exit Function
      Exit Function
266 End If
   End If
267 DeleteRecord = 1
   DeleteRecord = 1
268 End Function
End Function
269
270 Public Function wDeleteRecord(ByVal TableName,ByVal IDFieldName,ByVal IDValues)
Public Function wDeleteRecord(ByVal TableName,ByVal IDFieldName,ByVal IDValues)
271 On Error Resume Next
   On Error Resume Next
272 Dim Sql
   Dim Sql
273 Sql = "Delete From ["&TableName&"] Where ["&IDFieldName&"] In ("
   Sql = "Delete From ["&TableName&"] Where ["&IDFieldName&"] In ("
274 If IsArray(IDValues) Then
   If IsArray(IDValues) Then
275 Sql = Sql & "Select ["&IDFieldName&"] From ["&TableName&"] Where " & ValueToSql(TableName,IDValues,1)
      Sql = Sql & "Select ["&IDFieldName&"] From ["&TableName&"] Where " & ValueToSql(TableName,IDValues,1)
276 Else
   Else
277 Sql = Sql & IDValues
      Sql = Sql & IDValues
278 End If
   End If
279 Sql = Sql & ")"
   Sql = Sql & ")"
280 wDeleteRecord = Sql
   wDeleteRecord = Sql
281 End Function
End Function 
282
 <%
<%2
 '==========================================================================
'==========================================================================3
 '文件名称:clsDbCtrl.asp
'文件名称:clsDbCtrl.asp4
 '功  能:数据库操作类
'功  能:数据库操作类5
 '作  者:coldstone (coldstone[在]qq.com)
'作  者:coldstone (coldstone[在]qq.com)6
 '程序版本:v1.0.5
'程序版本:v1.0.57
 '完成时间:2005.09.23
'完成时间:2005.09.238
 '修改时间:2007.10.30
'修改时间:2007.10.309
 '版权声明:可以在任意作品中使用本程序代码,但请保留此版权信息。
'版权声明:可以在任意作品中使用本程序代码,但请保留此版权信息。10
 '       如果你修改了程序中的代码并得到更好的应用,请发送一份给我,谢谢。
'       如果你修改了程序中的代码并得到更好的应用,请发送一份给我,谢谢。11
 '==========================================================================
'==========================================================================12

13
 Dim a : a = CreatConn(0, "master", "localhost", "sa", "") 'MSSQL数据库
Dim a : a = CreatConn(0, "master", "localhost", "sa", "") 'MSSQL数据库14
 'Dim a : a = CreatConn(1, "Data/%TestDB%.mdb", "", "", "") 'Access数据库
'Dim a : a = CreatConn(1, "Data/%TestDB%.mdb", "", "", "") 'Access数据库15
 'Dim a : a = CreatConn(1, "E:\MyWeb\Data\%TestDB%.mdb", "", "", "mdbpassword")
'Dim a : a = CreatConn(1, "E:\MyWeb\Data\%TestDB%.mdb", "", "", "mdbpassword")16
 Dim Conn
Dim Conn17
 'OpenConn() '在加载时就建立的默认连接对象Conn,默认使用数据库a
'OpenConn() '在加载时就建立的默认连接对象Conn,默认使用数据库a18
 Sub OpenConn : Set Conn = Oc(a) : End Sub
Sub OpenConn : Set Conn = Oc(a) : End Sub19
 Sub CloseConn : Co(Conn) : End Sub
Sub CloseConn : Co(Conn) : End Sub20

21
 Function Oc(ByVal Connstr)
Function Oc(ByVal Connstr)22
 On Error Resume Next
On Error Resume Next23
 Dim objConn
Dim objConn24
 Set objConn = Server.CreateObject("ADODB.Connection")
Set objConn = Server.CreateObject("ADODB.Connection")25
 objConn.Open Connstr
objConn.Open Connstr26
 If Err.number <> 0 Then
If Err.number <> 0 Then27
 Response.Write("<div id=""DBError"">数据库服务器端连接错误,请与网站管理员联系。</div>")
   Response.Write("<div id=""DBError"">数据库服务器端连接错误,请与网站管理员联系。</div>")28
 'Response.Write("错误信息:" & Err.Description)
   'Response.Write("错误信息:" & Err.Description)29
 objConn.Close
   objConn.Close30
 Set objConn = Nothing
   Set objConn = Nothing31
 Response.End
   Response.End32
 End If
End If33
 Set Oc = objConn
Set Oc = objConn34
 End Function
End Function35

36
 Sub Co(obj)
Sub Co(obj)37
 On Error Resume Next
On Error Resume Next38
 Set obj = Nothing
Set obj = Nothing39
 End Sub
End Sub40

41
 Function CreatConn(ByVal dbType, ByVal strDB, ByVal strServer, ByVal strUid, ByVal strPwd)
Function CreatConn(ByVal dbType, ByVal strDB, ByVal strServer, ByVal strUid, ByVal strPwd)42
 Dim TempStr
Dim TempStr43
 Select Case dbType
Select Case dbType44
 Case "0","MSSQL"
   Case "0","MSSQL"45
 TempStr = "driver={sql server};server="&strServer&";uid="&strUid&";pwd="&strPwd&";database="&strDB
      TempStr = "driver={sql server};server="&strServer&";uid="&strUid&";pwd="&strPwd&";database="&strDB46
 Case "1","ACCESS"
   Case "1","ACCESS"47
 Dim tDb : If Instr(strDB,":")>0 Then : tDb = strDB : Else : tDb = Server.MapPath(strDB) : End If
      Dim tDb : If Instr(strDB,":")>0 Then : tDb = strDB : Else : tDb = Server.MapPath(strDB) : End If48
 TempStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&tDb&";Jet OLEDB:Database Password="&strPwd&";"
      TempStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&tDb&";Jet OLEDB:Database Password="&strPwd&";"49
 Case "3","MYSQL"
   Case "3","MYSQL"50
 TempStr = "Driver={mySQL};Server="&strServer&";Port=3306;Option=131072;Stmt=; Database="&strDB&";Uid="&strUid&";Pwd="&strPwd&";"
      TempStr = "Driver={mySQL};Server="&strServer&";Port=3306;Option=131072;Stmt=; Database="&strDB&";Uid="&strUid&";Pwd="&strPwd&";"51
 Case "4","ORACLE"
   Case "4","ORACLE"52
 TempStr = "Driver={Microsoft ODBC for Oracle};Server="&strServer&";Uid="&strUid&";Pwd="&strPwd&";"
      TempStr = "Driver={Microsoft ODBC for Oracle};Server="&strServer&";Uid="&strUid&";Pwd="&strPwd&";"53
 End Select
End Select54
 CreatConn = TempStr
CreatConn = TempStr55
 End Function
End Function56

57

58
 Class dbCtrl
Class dbCtrl59
 Private debug
Private debug60
 Private idbConn
Private idbConn61
 Private idbErr
Private idbErr62

63
 Private Sub Class_Initialize()
Private Sub Class_Initialize()64
 debug = true             '调试模式是否开启
   debug = true             '调试模式是否开启65
 idbErr = "出现错误:"
   idbErr = "出现错误:"66
 If IsObject(Conn) Then
   If IsObject(Conn) Then67
 Set idbConn = Conn
      Set idbConn = Conn68
 End If
   End If69
 End Sub
End Sub70

71
 Private Sub Class_Terminate()
Private Sub Class_Terminate()72
 Set idbConn = Nothing
   Set idbConn = Nothing73
 If debug And idbErr<>"出现错误:" Then Response.Write(idbErr)
   If debug And idbErr<>"出现错误:" Then Response.Write(idbErr)74
 End Sub
End Sub75

76
 Public Property Let dbConn(pdbConn)
Public Property Let dbConn(pdbConn)77
 If IsObject(pdbConn) Then
   If IsObject(pdbConn) Then78
 Set idbConn = pdbConn
      Set idbConn = pdbConn79
 Else
   Else80
 Set idbConn = Conn
      Set idbConn = Conn81
 End If
   End If82
 End Property
End Property83

84
 Public Property Get dbErr()
Public Property Get dbErr()85
 dbErr = idbErr
   dbErr = idbErr86
 End Property
End Property87

88
 Public Property Get Version
Public Property Get Version89
 Version = "ASP Database Ctrl V1.0 By ColdStone"
   Version = "ASP Database Ctrl V1.0 By ColdStone"90
 End Property
End Property91

92
 Public Function AutoID(ByVal TableName)
Public Function AutoID(ByVal TableName)93
 On Error Resume Next
   On Error Resume Next94
 Dim m_No,Sql, m_FirTempNo
   Dim m_No,Sql, m_FirTempNo95
 Set m_No=Server.CreateObject("adodb.recordset")
   Set m_No=Server.CreateObject("adodb.recordset")96
 Sql="SELECT * FROM ["&TableName&"]"
   Sql="SELECT * FROM ["&TableName&"]"97
 m_No.Open Sql,idbConn,1,1
   m_No.Open Sql,idbConn,1,198
 If m_No.EOF Then
   If m_No.EOF Then99
 AutoID=1
      AutoID=1100
 Else
   Else101
 Do While Not m_No.EOF
      Do While Not m_No.EOF102
 m_FirTempNo=m_No.Fields(0).Value
         m_FirTempNo=m_No.Fields(0).Value 103
 m_No.MoveNext
         m_No.MoveNext104
 If m_No.EOF Then
             If m_No.EOF Then 105
 AutoID=m_FirTempNo+1
               AutoID=m_FirTempNo+1106
 End If
             End If107
 Loop
      Loop108
 End If
   End If109
 If Err.number <> 0 Then
   If Err.number <> 0 Then110
 idbErr = idbErr & "无效的查询条件!<br />"
      idbErr = idbErr & "无效的查询条件!<br />"111
 If debug Then idbErr = idbErr & "错误信息:"& Err.Description
      If debug Then idbErr = idbErr & "错误信息:"& Err.Description112
 Response.End()
      Response.End()113
 Exit Function
      Exit Function114
 End If
   End If115
 m_No.close
   m_No.close116
 Set m_No = Nothing
   Set m_No = Nothing117
 End Function
End Function118

119
 Public Function GetRecord(ByVal TableName,ByVal FieldsList,ByVal Condition,ByVal OrderField,ByVal ShowN)
Public Function GetRecord(ByVal TableName,ByVal FieldsList,ByVal Condition,ByVal OrderField,ByVal ShowN)120
 On Error Resume Next
   On Error Resume Next121
 Dim rstRecordList
   Dim rstRecordList122
 Set rstRecordList=Server.CreateObject("adodb.recordset")
   Set rstRecordList=Server.CreateObject("adodb.recordset")123
 With rstRecordList
      With rstRecordList124
 .ActiveConnection = idbConn
      .ActiveConnection = idbConn125
 .CursorType = 1
      .CursorType = 1126
 .LockType = 1
      .LockType = 1127
 .Source = wGetRecord(TableName,FieldsList,Condition,OrderField,ShowN)
      .Source = wGetRecord(TableName,FieldsList,Condition,OrderField,ShowN)128
 .Open
      .Open 129
 If Err.number <> 0 Then
      If Err.number <> 0 Then130
 idbErr = idbErr & "无效的查询条件!<br />"
         idbErr = idbErr & "无效的查询条件!<br />"131
 If debug Then idbErr = idbErr & "错误信息:"& Err.Description
         If debug Then idbErr = idbErr & "错误信息:"& Err.Description132
 .Close
         .Close133
 Set rstRecordList = Nothing
         Set rstRecordList = Nothing134
 Response.End()
         Response.End()135
 Exit Function
         Exit Function136
 End If
      End If 137
 End With
   End With138
 Set GetRecord=rstRecordList
   Set GetRecord=rstRecordList139
 End Function
End Function140

141
 Public Function wGetRecord(ByVal TableName,ByVal FieldsList,ByVal Condition,ByVal OrderField,ByVal ShowN)
Public Function wGetRecord(ByVal TableName,ByVal FieldsList,ByVal Condition,ByVal OrderField,ByVal ShowN)142
 Dim strSelect
   Dim strSelect143
 strSelect="select "
   strSelect="select "144
 If ShowN > 0 Then
   If ShowN > 0 Then145
 strSelect = strSelect & " top " & ShowN & " "
      strSelect = strSelect & " top " & ShowN & " "146
 End If
   End If147
 If FieldsList<>"" Then
   If FieldsList<>"" Then148
 strSelect = strSelect & FieldsList
      strSelect = strSelect & FieldsList149
 Else
   Else150
 strSelect = strSelect & " * "
      strSelect = strSelect & " * "151
 End If
   End If152
 strSelect = strSelect & " from [" & TableName & "]"
   strSelect = strSelect & " from [" & TableName & "]"153
 If Condition <> "" Then
   If Condition <> "" Then154
 strSelect = strSelect & " where " & ValueToSql(TableName,Condition,1)
      strSelect = strSelect & " where " & ValueToSql(TableName,Condition,1)155
 End If
   End If156
 If OrderField <> "" Then
   If OrderField <> "" Then157
 strSelect = strSelect & " order by " & OrderField
      strSelect = strSelect & " order by " & OrderField158
 End If
   End If159
 wGetRecord = strSelect
   wGetRecord = strSelect160
 End Function
End Function161

162
 Public Function GetRecordBySQL(ByVal strSelect)
Public Function GetRecordBySQL(ByVal strSelect)163
 On Error Resume Next
   On Error Resume Next164
 Dim rstRecordList
   Dim rstRecordList165
 Set rstRecordList=Server.CreateObject("adodb.recordset")
   Set rstRecordList=Server.CreateObject("adodb.recordset")166
 With rstRecordList
      With rstRecordList167
 .ActiveConnection =idbConn
      .ActiveConnection =idbConn168
 .CursorType = 1
      .CursorType = 1169
 .LockType = 1
      .LockType = 1170
 .Source = strSelect
      .Source = strSelect171
 .Open
      .Open 172
 If Err.number <> 0 Then
      If Err.number <> 0 Then173
 idbErr = idbErr & "无效的查询条件!<br />"
         idbErr = idbErr & "无效的查询条件!<br />"174
 If debug Then idbErr = idbErr & "错误信息:"& Err.Description
         If debug Then idbErr = idbErr & "错误信息:"& Err.Description175
 .Close
         .Close176
 Set rstRecordList = Nothing
         Set rstRecordList = Nothing177
 Response.End()
         Response.End()178
 Exit Function
         Exit Function179
 End If
      End If 180
 End With
   End With181
 Set GetRecordBySQL = rstRecordList
   Set GetRecordBySQL = rstRecordList182
 End Function
End Function183

184
 Public Function GetRecordDetail(ByVal TableName,ByVal Condition)
Public Function GetRecordDetail(ByVal TableName,ByVal Condition)185
 On Error Resume Next
   On Error Resume Next186
 Dim rstRecordDetail, strSelect
   Dim rstRecordDetail, strSelect187
 Set rstRecordDetail=Server.CreateObject("adodb.recordset")
   Set rstRecordDetail=Server.CreateObject("adodb.recordset")188
 With rstRecordDetail
   With rstRecordDetail189
 .ActiveConnection =idbConn
      .ActiveConnection =idbConn190
 strSelect = "select * from [" & TableName & "] where " & ValueToSql(TableName,Condition,1)
      strSelect = "select * from [" & TableName & "] where " & ValueToSql(TableName,Condition,1)191
 .CursorType = 1
      .CursorType = 1192
 .LockType = 1
      .LockType = 1193
 .Source = strSelect
      .Source = strSelect194
 .Open
      .Open 195
 If Err.number <> 0 Then
      If Err.number <> 0 Then196
 idbErr = idbErr & "无效的查询条件!<br />"
         idbErr = idbErr & "无效的查询条件!<br />"197
 If debug Then idbErr = idbErr & "错误信息:"& Err.Description
         If debug Then idbErr = idbErr & "错误信息:"& Err.Description198
 .Close
         .Close199
 Set rstRecordDetail = Nothing
         Set rstRecordDetail = Nothing200
 Response.End()
         Response.End()201
 Exit Function
         Exit Function202
 End If
      End If203
 End With
   End With204
 Set GetRecordDetail=rstRecordDetail
   Set GetRecordDetail=rstRecordDetail205
 End Function
End Function206

207
 Public Function AddRecord(ByVal TableName, ByVal ValueList)
Public Function AddRecord(ByVal TableName, ByVal ValueList)208
 On Error Resume Next
   On Error Resume Next209
 DoExecute(wAddRecord(TableName,ValueList))
   DoExecute(wAddRecord(TableName,ValueList))210
 If Err.number <> 0 Then
   If Err.number <> 0 Then211
 idbErr = idbErr & "写入数据库出错!<br />"
      idbErr = idbErr & "写入数据库出错!<br />"212
 If debug Then idbErr = idbErr & "错误信息:"& Err.Description
      If debug Then idbErr = idbErr & "错误信息:"& Err.Description213
 'DoExecute "ROLLBACK TRAN Tran_Insert" '如果存在添加事务(事务滚回)
      'DoExecute "ROLLBACK TRAN Tran_Insert" '如果存在添加事务(事务滚回)214
 AddRecord = 0
      AddRecord = 0215
 Exit Function
      Exit Function216
 End If
   End If217
 AddRecord = AutoID(TableName)-1
   AddRecord = AutoID(TableName)-1218
 End Function
End Function219

220
 Public Function wAddRecord(ByVal TableName, ByVal ValueList)
Public Function wAddRecord(ByVal TableName, ByVal ValueList)221
 Dim TempSQL, TempFiled, TempValue
   Dim TempSQL, TempFiled, TempValue222
 TempFiled = ValueToSql(TableName,ValueList,2)
   TempFiled = ValueToSql(TableName,ValueList,2)223
 TempValue = ValueToSql(TableName,ValueList,3)
   TempValue = ValueToSql(TableName,ValueList,3)224
 TempSQL = "Insert Into [" & TableName & "] (" & TempFiled & ") Values (" & TempValue & ")"
   TempSQL = "Insert Into [" & TableName & "] (" & TempFiled & ") Values (" & TempValue & ")"225
 wAddRecord = TempSQL
   wAddRecord = TempSQL226
 End Function
End Function227

228
 Public Function UpdateRecord(ByVal TableName,ByVal Condition,ByVal ValueList)
Public Function UpdateRecord(ByVal TableName,ByVal Condition,ByVal ValueList)229
 On Error Resume Next
   On Error Resume Next230
 DoExecute(wUpdateRecord(TableName,Condition,ValueList))
   DoExecute(wUpdateRecord(TableName,Condition,ValueList))231
 If Err.number <> 0 Then
   If Err.number <> 0 Then232
 idbErr = idbErr & "更新数据库出错!<br />"
      idbErr = idbErr & "更新数据库出错!<br />"233
 If debug Then idbErr = idbErr & "错误信息:"& Err.Description
      If debug Then idbErr = idbErr & "错误信息:"& Err.Description234
 'DoExecute "ROLLBACK TRAN Tran_Update" '如果存在添加事务(事务滚回)
      'DoExecute "ROLLBACK TRAN Tran_Update" '如果存在添加事务(事务滚回)235
 UpdateRecord = 0
      UpdateRecord = 0236
 Exit Function
      Exit Function237
 End If
   End If238
 UpdateRecord = 1
   UpdateRecord = 1239
 End Function
End Function240

241
 Public Function wUpdateRecord(ByVal TableName,ByVal Condition,ByVal ValueList)
Public Function wUpdateRecord(ByVal TableName,ByVal Condition,ByVal ValueList)242
 Dim TmpSQL
   Dim TmpSQL243
 TmpSQL = "Update ["&TableName&"] Set "
   TmpSQL = "Update ["&TableName&"] Set "244
 TmpSQL = TmpSQL & ValueToSql(TableName,ValueList,0)
   TmpSQL = TmpSQL & ValueToSql(TableName,ValueList,0)245
 TmpSQL = TmpSQL & " Where " & ValueToSql(TableName,Condition,1)
   TmpSQL = TmpSQL & " Where " & ValueToSql(TableName,Condition,1)246
 wUpdateRecord = TmpSQL
   wUpdateRecord = TmpSQL247
 End Function
End Function248

249
 Public Function DeleteRecord(ByVal TableName,ByVal IDFieldName,ByVal IDValues)
Public Function DeleteRecord(ByVal TableName,ByVal IDFieldName,ByVal IDValues)250
 On Error Resume Next
   On Error Resume Next251
 Dim Sql
   Dim Sql252
 Sql = "Delete From ["&TableName&"] Where ["&IDFieldName&"] In ("
   Sql = "Delete From ["&TableName&"] Where ["&IDFieldName&"] In ("253
 If IsArray(IDValues) Then
   If IsArray(IDValues) Then254
 Sql = Sql & "Select ["&IDFieldName&"] From ["&TableName&"] Where " & ValueToSql(TableName,IDValues,1)
      Sql = Sql & "Select ["&IDFieldName&"] From ["&TableName&"] Where " & ValueToSql(TableName,IDValues,1)255
 Else
   Else256
 Sql = Sql & IDValues
      Sql = Sql & IDValues257
 End If
   End If258
 Sql = Sql & ")"
   Sql = Sql & ")"259
 DoExecute(Sql)
   DoExecute(Sql)260
 If Err.number <> 0 Then
   If Err.number <> 0 Then261
 idbErr = idbErr & "删除数据出错!<br />"
      idbErr = idbErr & "删除数据出错!<br />"262
 If debug Then idbErr = idbErr & "错误信息:"& Err.Description
      If debug Then idbErr = idbErr & "错误信息:"& Err.Description263
 'DoExecute "ROLLBACK TRAN Tran_Delete" '如果存在添加事务(事务滚回)
      'DoExecute "ROLLBACK TRAN Tran_Delete" '如果存在添加事务(事务滚回)264
 DeleteRecord = 0
      DeleteRecord = 0 265
 Exit Function
      Exit Function266
 End If
   End If267
 DeleteRecord = 1
   DeleteRecord = 1268
 End Function
End Function269

270
 Public Function wDeleteRecord(ByVal TableName,ByVal IDFieldName,ByVal IDValues)
Public Function wDeleteRecord(ByVal TableName,ByVal IDFieldName,ByVal IDValues)271
 On Error Resume Next
   On Error Resume Next272
 Dim Sql
   Dim Sql273
 Sql = "Delete From ["&TableName&"] Where ["&IDFieldName&"] In ("
   Sql = "Delete From ["&TableName&"] Where ["&IDFieldName&"] In ("274
 If IsArray(IDValues) Then
   If IsArray(IDValues) Then275
 Sql = Sql & "Select ["&IDFieldName&"] From ["&TableName&"] Where " & ValueToSql(TableName,IDValues,1)
      Sql = Sql & "Select ["&IDFieldName&"] From ["&TableName&"] Where " & ValueToSql(TableName,IDValues,1)276
 Else
   Else277
 Sql = Sql & IDValues
      Sql = Sql & IDValues278
 End If
   End If279
 Sql = Sql & ")"
   Sql = Sql & ")"280
 wDeleteRecord = Sql
   wDeleteRecord = Sql281
 End Function
End Function 282

 
                    
                     
                    
                 
                    
                 
 
         
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号