婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > ASP操作數據庫的類

ASP操作數據庫的類

熱門標簽:外呼線路批發 創意電話機器人 地圖標注陽江 世界地圖標注了哪些城市 石家莊慧營銷外呼系統 武穴地圖標注 濟源電銷外呼系統線路 java外呼系統是什么 梧州市地圖標注
今天俺在這裡給大家提供一種數據庫操作的思路,這些代碼是俺在長期的ASP應用中不斷完成和修正的,也已經用它完成了很多項目了,應該說直接拿去用是沒有問題的。當然本人能力也有限,希望大家一起來討論。


說明:此帖代碼均是VBScript版本。另外最好你對手寫ASP已經有一定的基礎。

先簡單介紹一下俺這個類的一些特點:

可同時操作多個不同類型的數據庫。
完全不用考慮數據類型的差別,再也不用想字符型字段加不加單引號。
調用非常簡單,對數據庫的主要操作一般只需要一行代碼。
支持mssql事務回滾。
可自動生成和輸出sql語句方便調試。
使用方法:

1. 修改clsDbctrl.asp文件中的第1行為你自己的數據庫位置(修改方法參考下面的CreatConn函數說明)。如需連接多個數據庫可自行添加,格式相同。

2. 在你新建的asp文件中包含此asp文件。如:
!--#include file="Inc/clsDbctrl.asp" --> 或者:
!--#include virtual="/Inc/clsDbctrl.asp"-->

3.使用如下代碼應用此類:
一個數據庫連接:

%
OpenConn() '打開數據庫連接
Dim db : Set db = New DbCtrl '建立對像
'Your Code Here......
Co(db) : CloseConn() '釋放對象,關閉數據庫連接
%>

或者(一個或者多個數據庫連接):

%
Dim db1 : Set db1 = New DbCtrl : db1.dbConn = Oc(a)
Dim db2 : Set db2 = New DbCtrl : db2.dbConn = Oc(b)
'Your Code Here......
Co(db1) : Co(db2)
%>

4.具體操作的例子可以參考各函數說明內的代碼示例。

方法和屬性概覽(詳細用法及例子在下面):

引用:
CreatConn 生成數據庫連接字符串
Oc 建立數據庫連接
Co 釋放對像
OpenConn 打開默認數據庫連接
CloseConn 關閉默認數據庫連接
dbCtrl.dbConn 屬性,獲取要操作的數據庫連接,默認值為Conn
dbCtrl.dbErr 屬性,只讀,輸出捕獲的錯誤信息
dbCtrl.Version 屬性,只讀,程序版本信息
dbCtrl.AutoId 方法,自動獲取唯一序列號
dbCtrl.GetRecord 方法,取得符合條件的紀錄集
dbCtrl.GetRecordBySql 方法,根據sql語句取得紀錄集
dbCtrl.GetRecordDetail 方法,根據某一條指定紀錄的詳細數據
dbCtrl.AddRecord 方法,添加一個新的紀錄
dbCtrl.UpdateRecord 方法,根據指定條件更新紀錄
dbCtrl.DeleteRecord 方法,刪除符合條件的紀錄
dbCtrl.ReadTable 方法,根據指定條件獲取某條紀錄中的其他字段的內容
dbCtrl.C 方法,關閉紀錄集對像
dbCtrl.wGetRecord,
dbCtrl.wAddRecord,
dbCtrl.wUpdateRecord,
dbCtrl.wDeleteRecord 這4個方法是取得相應的操作(前面加w)的sql語句


參數約定:

由于ASP沒有Arguments對象,不能使用動態參數,所以,在本類的代碼中,使用了Array(數組)來達到這一效果。本類中的部分參數可以使用數組(參數說明中有注明),但使用數組時應參照以下格式:

Array("Field1:Value1", "Field2:True", "Field3:100")

對,有點像json的格式,如果涉及到變量,那就這樣:

Array("Field1:" Value1, "Field2:" Value2, "Field3:" Value3)

可以這樣說,本類中的幾乎所有與數據庫字段相關的內容都可以用以上的數組格式來設置條件或者是獲取內容。而這裡最大的特點就是在使用時不用去考慮字段的類型,在字段后跟一個冒號,接著跟上相應的值就行了。如果你經常手寫ASP程序的話,你很快就會感受到運用這種方式的魅力,除了數據類型不用考慮之外,它也很方便隨時添加和刪除條件。如果你還不明白怎麼用的話沒關係,下面有很多例子可以說明這個問題。

要把ASP的數據庫操作封裝起來其實并不難,相信大家以前自己也做過類似的代碼或是借用過其他人的封裝好的代碼。但是就如各位知道的一樣,使用封裝后的代碼一旦出錯,排錯是一個比較麻煩的事情,一般說來,封裝后操作越簡單的排錯也越複雜。俺在寫這些代碼的時候已經盡我所能考慮到如果出錯的話如何去排查錯誤,在盡可能簡化用戶操作數據庫的代碼的同時可以隨時輸出sql語句排查錯誤。

最后需要說明一點,本文所涉及的ASP數據庫操作并不適合大型數據,如你所知,操作大型數據最好還是使用存儲過程之類的東東比較好,以后俺會考慮把對存儲過程的操作也封裝進去。還有一個效率問題,要追求高效率的話,用ASP還是應該考慮COM+等,所以再次聲明,本類適用的對象是中小型ASP項目。

好了,下面奉上詳細使用說明:

一.數據庫連接

考慮到大多數人的使用習慣,在數據庫連接上使用了公共過程,所以需要大家在代碼裡自行修改,如果你已經建立了數據庫連接,把這幾行注釋掉就行了。代碼中內置了MSSql,Access,MySQL,Oracle4種數據庫的連接方式,當然你也可以自行在源代碼中增加或刪除。修改例如:

Dim a : a = CreatConn(0, "TestData", "localhost", "username", "userpassword")
Dim b : b = CreatConn(1, "Data/%TestDb%.mdb", "", "", "")

說明一下,第1個參數可以是字符串。如果是使用Access,則第2個參數輸入相對路徑和絕對路徑都是可以的,如有密碼也可以在第5個參數中輸入,如:

Dim c : c = CreatConn("ACCESS", "E:\MyWeb\Data\%TestDB%.mdb", "", "", "mdbpassword")

相關函數:

原 型:CreatConn(dbType, strDB, strServer, strUid, strPwd)
功 能:建立數據庫連接字符串
返回值:String
參 數:
dbType : Integer or String 連接數據庫類型
(0 or "MSSQL") - Microsoft SQL Server
(1 or "ACCESS") - Microsoft Office Access
(2 or "MYSQL") - MySQL Server
(3 or "ORACLE") - oracle Server
strDB : String 數據庫名或數據庫地址(Access使用絕對或者相對路徑均可)
strServer : String 數據庫服務器地址,Access請留空
strUid : String 數據庫用戶名,Access請留空
strPwd : String 數據庫密碼

原 型:Oc(connStr)
功 能:打開數據庫連接
返回值:Object 數據庫連接對像
參 數:
connStr : String 數據庫連接字符串,由CreatConn函數生成

原 型:Co(obj)
功 能:關閉對像
參 數:
obj : Object 要關閉的對象名稱

原 型:OpenConn
功 能:打開默認數據庫連接,會自動建立一個名稱為Conn的連接對像
參 數:無

原 型:CloseConn
功 能:關閉名稱為Conn的默認數據庫連接對像
參 數:無

二. 數據庫操作

下面就是本數據庫操作類的函數功能說明,應該算是手冊了,請多看例子的應用。

原 型:dbCtrl.dbConn(objConn)
功 能:獲取數據庫連接對像
參 數:
objConn : Object 已經建立的數據庫連接對像
舉 例:
Dim db : Set db = New DbCtrl
db.dbConn = Oc(CreatConn(1,"E:\WebSite\MySite\Data\%TestDb%.mdb","","",""))
Co(db)

說 明:此屬性為可選,如果不指定此屬性則默認數據連接為頁面上名稱為Conn的數據庫連接對像

原 型:dbCtrl.AutoID(TableName)
功 能:自動獲取唯一序列號(自動編號)
返回值:Integer
參 數:
TableName : String 需要獲得唯一序列號的數據表名
舉 例:
Dim newId
newId = db.AutoId("TestTable")
Response.Write(newId)

原 型:dbCtrl.GetRecord(TableName,FieldsList,Condition,OrderField,ShowN)
功 能:取得符合條件的紀錄集
返回值:Object 紀錄集對像
參 數:
TableName : String 表名稱
FieldsList : String 字段名稱,用逗號隔開,留空則為全部字段
Condition : String or Array 查詢條件,如果是數組應遵循前面的參數約定
orderField : String 排序方式
ShowN : Integer 獲取紀錄的數量,相當于sql中的 Select Top N
舉 例:
Dim rs
Set rs = db.GetRecord("TestTable","fId,fName,fAge","fSex='男' And IsActive = 1","fName Asc", 0)
While Not rs.eof
Response.Write ("Name is:" rs(1) " Age is:" rs(2) "br />")
rs.movenext()
Wend
db.C(rs)

對于以上的例子,用下面的數組方式指定條件是等價的:

Set rs = db.wGetRecord("TestTable","fId,fName,fAge", Array("fSex:男","IsActive:1"), "fName Asc", 0)

另外,你可以用下面的語句來查看這個函數生成的sql語句:

Response.Write(db.wGetRecord("TestTable","fId,fName,fAge", Array("fSex:男","IsActive:1"), "fName Asc", 0))

如你所見,只需要在原來的函數前加一個w即可。

原 型:dbCtrl.GetRecordBySQL(strSelect)
功 能:根據sql語句取得紀錄集
返回值:Object 紀錄集對像
參 數:
strSelect : String 用于生成記錄集的SQL語句
舉 例:
Dim rs
Set rs = db.GetRecordBySQL("Select a.Id, a.LastName, b.Group From User a InnerJoin Depart b On a.GroupId = b.GroupId")
'Your Code Here ...
db.C(rs)

原 型:dbCtrl.GetRecordDetail(TableName, Condition)
功 能:根據某一條指定紀錄的詳細數據
返回值:Object 紀錄集對像
參 數:
TableName : String 表名稱
Condition : String or Array 查詢條件,如果是數組應遵循前面的參數約定
舉 例:
Dim rs, Id
Id = Request.QueryString("id")
Set rs = db.GetRecordDetail("TestTable","Id=" id)
'Your Code here...
db.C(rs)

說 明:就像你已經看出來的一樣,這個最常用在打開某個詳細頁面(比如新聞內容頁面)

原 型:dbCtrl.AddRecord(TableName, ValueList)
功 能:添加一個新的紀錄
返回值:新記錄的Id號(成功) or 0 (失敗)
參 數:
TableName : String 表名稱
ValueList : Array 插入表的字段和值,只能是數組且應遵循前面的參數約定
舉 例:
Dim fName, fSex, fWorkYear, fBirth
fName = "王二壇"
fSex = "男"
fWorkYear = 12
fBirth = Cdate("1981-10-23")
Dim result
result = db.AddRecord("TestTable",Array("Name:"fName, "Sex:"fSex, "WorkYear:"fWorkYear, "Birthday:"fBirth, "IsActive:True"))
If result>0 Then
Response.Write("添加記錄成功!此記錄的自動編號Id為" result)
End If

看見了吧,真的不用考慮字段的類型是什麼滴。
如果你想要代碼中的字段和值看得更清楚一點,也可以這樣寫,但憑卿之所好:

result = db.AddRecord("TestTable",Array("Name:" fName,_
"Sex:" fSex,_
"WorkYear:" fWorkYear,_
"Birthday:" fBirth,_
"IsActive:True"))

另外,你可以用下面的語句來查看這個函數生成的sql語句:

Response.Write(db.wAddRecord("TestTable",Array("Name:"fName, "Sex:"fSex, "WorkYear:"fWorkYear, "Birthday:"fBirth, "IsActive:True")))

說 明:返回的Id值用的是比較笨的方法,并不能保證在并發數據量大的時候的準確性,慎用。

原 型:dbCtrl.UpdateRecord(TableName, Condition, ValueList)
功 能:根據指定條件更新紀錄
返回值:1 (成功) or 0 (失敗)
參 數:
TableName : String 表名稱
Condition : String or Array 更新條件,如果是數組應遵循前面的參數約定
ValueList : String or Array 更新的字段及值,如果是數組應遵循前面的參數約定
舉 例:
Dim fName, fWorkYear
fName = "王三壇"
fWorkYear = 10
Dim result
result = db.UpdateRecord("TestTable", "UId = 1308", Array("Name:"fName, "WorkYear:"fWorkYear))
If result>0 Then
Response.Write("更新數據成功!")
End If

另外,你可以用下面的語句來查看這個函數生成的sql語句:

Response.Write(db.wUpdateRecord("TestTable", "UId = 1308", Array("Name:"fName, "WorkYear:"fWorkYear)))

原 型:dbCtrl.DeleteRecord(TableName,IDFieldName,IDValues)
功 能:刪除符合條件的紀錄
返回值:1 (成功) or 0 (失敗)
參 數:
TableName : String 表名稱
IDFieldName : String 表的Id字段的名稱
IDValues : String or Array 刪除條件,可以是由逗號隔開的多個Id號,如果是數組應遵循前面的參數約定
舉 例:
Dim ids, result
ids = Request.Form("selectid") '可以假設這裡獲取的值是 12, 34, 256, 314 (復選框提交的值都這樣)
result = db.DeleteRecord("TestTable", "UId", ids)
If result>0 Then
Response.Write("刪除數據成功!")
End If

當然,你也可以用字符串或者數組指定其它的條件,比如:

result = db.DeleteRecord("TestTable", "UId", "IsActive = 0 And FirstName = 'Tom'")

另外,你可以用下面的語句來查看這個函數生成的sql語句:

Response.Write(db.wDeleteRecord("TestTable", "UId", ids))

原 型:dbCtrl.ReadTable(TableName, Condition, GetFieldNames)
功 能:根據指定條件獲取某條紀錄中的其他字段的內容
返回值:String (GetFieldNames為單個字段) or Array (GetFieldNames為多個字段)
參 數:
TableName : String 表名稱
Condition : String or Array 查詢條件,如果是數組應遵循前面的參數約定
GetFieldNames : String 單個字段名或者由逗號隔開的多個字段名
舉 例:
Dim uid, result
uid = rs("postid") '假設這裡是頁面上某個記錄集中的用戶id值
result = db.ReadTable("UserTable","UId=" uid, "UserName")
Response.Write("發佈者:" result)

我不得不說,在實際應用中,這個函數可能是用得最多的,你上面看到的就是一個非常常用的例子,從一個值去獲取另外一個表中某字段值等于該值的另外一個字段的值(有點拗口,不過確實就是這個意思)。下面的例子將告訴你如何根據這個值獲得多個相應的值。

Dim uid, result
uid = rs("postid") '假設這裡是頁面上某個記錄集中的用戶id值
result = db.ReadTable("UserTable","UId=" uid, "UserName,UserSex,UserAge")
Response.Write("發佈者:" result(0) "br /> 性別:" result(1) "br /> 年齡:" result(2))

如你所見,就這麼簡單,輸入多個字段名稱得到的是一個數組。

原 型:dbCtrl.C(objRs)
功 能:關閉紀錄集對像
參 數:
objRs : Object 頁面上的某個記錄集對像
舉 例:
Dim rs
Set rs = db.GetRecordDetail("TestTable","Id=123" )
'Your Code here...
db.C(rs)

這個函數上面的許多例子都用了,就不多解釋了,它等同于rs.close : set rs = nothing。
clsDbctrl.rar

標簽:南寧 甘南 滁州 迪慶 揭陽 淮北 唐山 來賓

巨人網絡通訊聲明:本文標題《ASP操作數據庫的類》,本文關鍵詞  ASP,操作,數據庫,的,類,ASP,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP操作數據庫的類》相關的同類信息!
  • 本頁收集關于ASP操作數據庫的類的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产69精品久久777的优势| 成人性生交大片免费看视频在线| 日日噜噜夜夜狠狠视频欧美人| 波多野结衣精品在线| 久久伊99综合婷婷久久伊| 日本少妇一区二区| 欧美一级免费大片| 日本欧美一区二区在线观看| 欧美精品亚洲一区二区在线播放| 伊人夜夜躁av伊人久久| 欧美中文字幕一区二区三区| 亚洲国产视频网站| 在线观看不卡视频| 亚洲欧美一区二区不卡| av欧美精品.com| 久久精品亚洲麻豆av一区二区| 日韩激情视频网站| 国产精品乱码久久久久久| 日韩欧美中文一区| 国产在线一区观看| 日韩视频免费直播| 另类小说色综合网站| 26uuu精品一区二区在线观看| 免费精品99久久国产综合精品| 日韩精品一区二区三区视频播放 | 欧美日韩五月天| 亚洲一区二区三区小说| 日韩一级片网站| 国产成人夜色高潮福利影视| 亚洲人成在线观看一区二区| 欧美一区二区视频在线观看| 国产91综合一区在线观看| 亚洲精品老司机| 欧美mv和日韩mv国产网站| 不卡的av电影在线观看| 午夜精品免费在线| 欧美国产成人在线| 欧美人与z0zoxxxx视频| 国产精品中文有码| 亚洲电影在线播放| 欧美日韩国产天堂| www.av亚洲| 久久国产剧场电影| 亚洲欧洲av在线| 色哟哟亚洲精品| 亚洲一二三区在线观看| 久久精品夜夜夜夜久久| 在线看日本不卡| 国产91在线观看丝袜| 久久99热狠狠色一区二区| 亚洲一级电影视频| 国产午夜精品一区二区三区嫩草 | 欧美成人女星排名| 欧洲精品一区二区三区在线观看| 麻豆国产精品官网| 亚洲综合免费观看高清在线观看| 亚洲精品一区二区三区蜜桃下载| 国产不卡免费视频| 狠狠网亚洲精品| 日韩中文字幕91| 亚洲视频中文字幕| 欧美国产欧美亚州国产日韩mv天天看完整| 欧美日韩电影在线播放| 色婷婷亚洲一区二区三区| www.爱久久.com| 成人一道本在线| 国产高清在线精品| 日本成人中文字幕在线视频| 亚洲欧美日韩成人高清在线一区| 欧美大片顶级少妇| 日产国产高清一区二区三区| 99久久精品国产一区二区三区| 国产精一品亚洲二区在线视频| 亚洲电影一级片| 久久欧美中文字幕| 麻豆精品一区二区av白丝在线| 免费人成在线不卡| 日本不卡视频一二三区| 青青草精品视频| 美女免费视频一区二区| 狂野欧美性猛交blacked| 蜜臀久久99精品久久久久久9| 亚洲一区二区美女| 亚洲高清视频中文字幕| 日韩专区中文字幕一区二区| 黄一区二区三区| 成人免费黄色在线| av网站免费线看精品| 一本到不卡精品视频在线观看| 不卡av在线网| av在线不卡电影| 91麻豆.com| 91极品美女在线| 欧美日韩免费观看一区三区| 欧美性大战久久| 欧美日韩mp4| 国产大片一区二区| 久久精品国产亚洲5555| 国产一区二区三区在线观看免费视频| 久久超级碰视频| 不卡一区在线观看| 欧美色窝79yyyycom| 欧美在线观看视频一区二区三区| av不卡免费电影| 亚洲一区欧美一区| 久久99在线观看| 92国产精品观看| 欧美精品免费视频| 国产亚洲一区字幕| 久久国产欧美日韩精品| 秋霞国产午夜精品免费视频| 亚洲aaa精品| 国产资源精品在线观看| 成人涩涩免费视频| 欧美久久久久中文字幕| 色婷婷综合视频在线观看| 日韩亚洲国产中文字幕欧美| 国产精品每日更新| 亚洲综合精品自拍| 国产精品一二二区| 波多野结衣的一区二区三区| 欧美伦理电影网| 国产免费成人在线视频| 亚洲香肠在线观看| 国产一二三精品| 色噜噜狠狠一区二区三区果冻| 精品成人一区二区三区| 亚洲视频在线观看一区| 午夜精品久久久久久久久久| 国产专区欧美精品| 欧美日韩激情在线| 久久免费美女视频| 日本系列欧美系列| 91麻豆6部合集magnet| 久久婷婷色综合| 人人狠狠综合久久亚洲| 韩日av一区二区| 欧美第一区第二区| 免费人成精品欧美精品| 成人av在线看| 国产丝袜在线精品| 激情五月婷婷综合| 91精品国产一区二区三区蜜臀| 亚洲人午夜精品天堂一二香蕉| 国产91高潮流白浆在线麻豆| 精品国产青草久久久久福利| 日韩主播视频在线| 91精品啪在线观看国产60岁| 视频一区视频二区中文字幕| 宅男在线国产精品| 日韩va亚洲va欧美va久久| 欧美日本不卡视频| 午夜免费久久看| 欧美日本一区二区三区四区| 午夜精品福利久久久| 69堂成人精品免费视频| 日韩av电影一区| 精品91自产拍在线观看一区| 国产激情91久久精品导航| 国产人成亚洲第一网站在线播放| 大白屁股一区二区视频| 亚洲人成小说网站色在线| 欧美在线观看视频在线| 婷婷久久综合九色国产成人| 精品国产网站在线观看| 成人动漫中文字幕| 亚洲综合在线观看视频| 91精品福利在线一区二区三区 | 亚洲一区二区成人在线观看| 欧美在线观看禁18| 久久99精品久久久| 精品久久久久久综合日本欧美 | 国产高清一区日本| 中文乱码免费一区二区| 欧美色综合影院| 午夜精品爽啪视频| 久久精品亚洲乱码伦伦中文 | 中文字幕的久久| 91丨porny丨户外露出| 麻豆久久久久久| 亚洲天堂中文字幕| 日韩精品一区二区三区蜜臀| 99久久99久久久精品齐齐| 婷婷久久综合九色综合伊人色| 亚洲国产精品成人综合| 欧美精品高清视频| 成人中文字幕在线| 麻豆精品国产91久久久久久| 亚洲精品你懂的| 久久综合色婷婷| 欧美片网站yy| 成人美女视频在线观看| 国产激情偷乱视频一区二区三区| 国产精品午夜电影| 日韩欧美一区二区三区在线| 色综合久久久网| 成人av电影免费在线播放| 日韩高清中文字幕一区| 综合久久久久久| 日本一区二区动态图|