亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

從DAO轉(zhuǎn)換到ADO

2019-11-18 17:46:30
字體:
供稿:網(wǎng)友
SwitchfromDAOtoADO

BySamHuggill

Introduction

Afewdaysago,IstartedanewPRojectthathandlesalargedatabasecontainingHTMLcodeforacompletewebsite.Theprojecthastoallowthewebmastersofthewebsiteviewallupdatesmadetothesite,whentheyweremadeandbywhom.Theycanalsoeditthepagesonthesite,andautomaticallyuploadthem.

ThisprojectrequirestheuSEOfafairlylargedatabasethatneedstobeaccessedbymanypeoplefromdifferentPCs.IdecidedtouseSQLServerasthebackendtotheproject,butthismeantthatIcouldn注釋:tuseDAOtoconnecttoit!Whatapain!

So,IdecideditwasabouttimeIstartedtolearnADO.ItookaquickglancearoundonthenetatmyusualVBsites,butfoundlittleornohelpformeonADO.

Well,asweprideourselveshereatVBSquareonaddingoriginalcontent,IdecidedIwouldwriteanarticleonusingADO.

ThisarticleisonlyreallytogetyoustartedonADO,andonlydiscussestheconnectionandrecordsetobjects.TherearemanymorefeaturesofADOthatyouwillneedtolookintobeforeyoutakeonaprojectusingADO.
Connectingtolocalandexternaldatabases

WithADO,youcanbuildallyourcodearoundalocaldatabaseandthen,veryeasilychangeonelineofcodethatwillallowyoutoaccessadatabaseonaSQLServer.

Thethingthattookmeawhiletofigureout,washowtoconnecttoadatabase.WithDAO,youusetheOpenDatabasecommandpassingthepathofthedatabaseasoneofthearguements.ButwithADO,youneedtobuildaconnectionstring.Toconnecttoalocaldatabase,usethefollowingconnectionstring:

ConnectionString="Provider=Microsoft.JET.OLEDB.3.51;DataSource=c:/mydb.mdb"

Thatmayseemabitcumbersome,butthisflexibilityprovidesyouwiththemeanstoconnecttoalmostanydatabaseinanyformatanywhere.ThefollowingconnectionstringisusedtoconnecttoaSQLSeverdatabasenamed注釋:people注釋::

ConnectionString="driver=[SQLServer];uid=admin;server=myserver;database=people"
SwitchfromDAOtoADO

BySamHuggill

UsingtheConnectionObject

TheConnectionobjectisthebasefromwhichalmostallADOfunctionsderivefrom.Youcanusethisobjecttocarryoutmostoftheactionsperformedinthesamplecode,usingSQLstatements.E.g.

mCN.Execute"DELETEFROMPeopleWHEREID=1"

Iwon注釋:tgointoanydetailaboutusingSQLstatements,buttheMSDNhassomeinfoonthem.

TheconnectionobjectreturnsarecordsetobjectifyouusetheExecutemehtod.YoucanusethistocreateaDLLanduseCOMtogetthecontentsofarecordset.e.g.

PublicSubGetRecordSet()AsADODB.Recordset
GetRecordSet=mCN.Execute("SELECT*FROMPeople")
EndSub

Thismeansthatyoucancentralizeallyoudatabasecodeintoonecomponent,preferablyaDLL.

UsingtheRecordsetObject

InADO,theRecordsetobjectisverysimilartotheDAORecordsetobject.Thismakesthingsaloteasierwhenportingyourcode,althoughyouwillneedtodeviseafewworkaroundstoovercomeafewmissingfeatures.

Forexample,whenyouinsertarecord,butneedtostoreitsID(AutoNumber)valueinthesameaction,youwouldnormallyusethiscodeinDAO:

Withrs
.AddNew
.Fields("Name").value=sNewValue
.Update
.Bookmark=.Lastmodified
m_intRcdID=.Fields("ID").value
.Close
EndWith
TheADORecordsetobjectdoesnotexposeaLastModifiedorLastUpdatedproperty,soweneedtousethefollowingworkaround:

Withrs
.AddNew
.Fields("Name").value=sNewValue
.Update
.Requery
.MoveLast
m_intRcdID=.Fields("ID").value
.Close
EndWith

Afterupdatingtherecordset(whichyoudon注釋:tneedtodoifyouaremovingtoanotherrecord,asADOautomaticallyupdateschangesmadewhenyoumoverecords)youneedtorefreshtherecordsetusingtheRequerymethod.Thenyouneedtomovetothelastrecord,whichistheoneyouhavejustadded.Now,justextracttheIDvalueandstoreitinamembervariable.
Sampleapplication

TohelpyoumovefromDAOtoADO,IhavemadeasimilarsampleapplicationasIdidfortheBeginningDatabasesarticle.Thesampleoffersthesefeatures:

Addingnewrecords
Deletingrecords
Updatingrecords
Gettingrecorddata
Itisaverysimpledemo,butshouldhelpyoutounderstandthebasics.ItusethelatestversionofADO,version2.1.SeethesectionatthebottomfordownloadingtheADOLibrariesandthesampleapplcation.

Togetthesampleapplicationtowork,startanewStandardEXEProjectandaddareferencetotheMicrosoftActiveXDataObjects2.1Library(Project,References).Addfourcommandbuttons(cmdAdd,cmdDelete,cmdGet,cmdSave)andthreetextboxes(txtNotes,txtURL,txtName).Copy/pastethefollowingcodeintotheform:

OptionExplicit

注釋:PrivatereferencestotheADO2.1ObjectLibrary
PrivatemCNAsConnection
PrivatemRSAsNewRecordset

注釋:InternalreferencetothecurrentrecordsIDvalue
PrivatemintRcdIDAsInteger

PrivateSubcmdAbout_Click()
frmAbout.ShowvbModal
EndSub

PrivateSubcmdAdd_Click()
AddRecord
EndSub

PrivateSubcmdClose_Click()
UnloadMe
EndSub

PrivateSubOpenConnection(strPathAsString)

注釋:Closeanopenconnection
IfNot(mCNIsNothing)Then
mCN.Close
SetmCN=Nothing
EndIf


注釋:Createanewconnection
SetmCN=NewConnection

WithmCN
注釋:ToconnecttoaSQLServer,usethefollowingline:

注釋:.ConnectionString="driver=[SQLServer];uid=admin;server=mysrv;database=site"

注釋:Forthisexample,wewillbeconnectingtoalocaldatabase
.ConnectionString="Provider=Microsoft.JET.OLEDB.3.51;DataSource="&strPath

.CursorLocation=adUseClient
.Open

EndWith

EndSub

PrivateSubAddRecord()


注釋:Addanewrecordusingtherecordsetobject
注釋:Couldbedoneusingtheconnectionobject
mRS.Open"SELECT*FROMPeople",mCN,adOpenKeyset,adLockOptimistic

WithmRS

.AddNew
.Fields("Name").Value=txtName.Text
.Fields("URL").Value=txtURL.Text
.Fields("Notes").Value=txtNotes.Text

注釋:Afterupdatingtherecordset,weneedtorefreshit,andthenmovetothe
注釋:endtogetthenewestrecord.Wecanthenretrievethenewrecord注釋:sid
.Update
.Requery
.MoveLast

mintRcdID=.Fields("ID").Value

.Close

EndWith

EndSub

PrivateSubDeleteRecord()

注釋:Deletearecordandclearthetextboxes

mRS.Open"SELECT*FROMPeopleWHEREID="&mintRcdID,mCN,adOpenKeyset,adLockOptimistic

mRS.Delete
mRS.Close

txtName.Text=""
txtURL.Text=""
txtNotes.Text=""

EndSub

PrivateSubGetInfo()

注釋:GetthedataforarecordbasedonitsIDvalue
mRS.Open"SELECT*FROMPeopleWHEREID="&
mintRcdID,mCN,adOpenKeyset,adLockOptimistic

WithmRS

txtName.Text=.Fields("Name").Value
txtURL.Text=.Fields("URL").Value
txtNotes.Text=.Fields("Notes").Value
.Close

EndWith

EndSub

PrivateSubUpdateRecord()

注釋:Updatearecord注釋:svalues
mRS.Open"SELECT*FROMPeopleWHEREID="&mintRcdID,mCN,adOpenKeyset,adLockOptimistic

WithmRS

.Fields("Name").Value=txtName.Text
.Fields("URL").Value=txtURL.Text
.Fields("Notes").Value=txtNotes.Text

.Update
.Close

EndWith

EndSub

PrivateSubcmdDelete_Click()
DeleteRecord
EndSub

PrivateSubcmdGet_Click()

注釋:Asktheuserwhichrecordshouldberetrievedandgetthedata
注釋:forthatrecord
mintRcdID=Val(InputBox$("EnterIDofrecord:",App.Title,"1"))

GetInfo

EndSub

PrivateSubcmdSave_Click()
UpdateRecord
EndSub

PrivateSubForm_Load()

OpenConnectionApp.Path&"/people.mdb"

EndSub

PrivateSubForm_Unload(CancelAsInteger)

IfNot(mRSIsNothing)Then
SetmRS=Nothing
EndIf

IfNot(mCNIsNothing)Then
mCN.Close
SetmCN=Nothing
EndIf

EndSub->


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
粉嫩av一区二区三区粉嫩| 国产日韩欧美a| 4444亚洲人成无码网在线观看| 久久国产精品一区二区三区四区| 一级女性全黄久久生活片免费| 国产日韩欧美黄色| www.浪潮av.com| 色婷婷久久综合中文久久蜜桃av| 亚洲av中文无码乱人伦在线视色| 天堂电影在线| 日韩欧美在线视频一区二区| 国产成人免费视频一区| 日韩精品在线观看网站| 欧美中文字幕在线| 欧美成人免费在线视频| 亚洲精品3区| 成人全视频在线观看在线播放高清| 影音四色91| 911美女片黄在线观看游戏| 91大学生片黄在线观看| 久久免费黄色网址| 国内福利写真片视频在线| 久久午夜剧场| 蜜桃国内精品久久久久软件9| 精品福利网址导航| 波多一区二区| 精品久久国产一区| 亚洲第一影院| 麻豆国产在线视频| 黄色小网站91| 青青草免费在线视频| 亚洲乱码视频| 亚洲天堂av高清| 一区二区三区在线免费视频| 国产原创popny丨九色| www.久久热.com| 欧美日韩午夜影院| 黄色片免费在线观看| 美女在线一区| 欧美日韩国产a| 亚洲日本一区二区三区在线观看| 国产乱码精品一区二区| 嫩草影院在线观看未满十八| 日韩理论电影大全| 亚洲精品综合一区二区三区| 久久91精品国产91久久久| 桃花视频大全不卡免费观看网站| 久久精品小视频| 亚洲成年人影院在线| 精品处破女学生| 少妇久久久久久被弄高潮| 欧美日韩另类视频| 国产视频不卡在线| 欧美精品第一页| 97人人做人人爽香蕉精品| 日韩精品一区二区三区高清免费| 国产精品二区三区| 免费男女羞羞的视频网站中文字幕| 国产精品美女久久久| 亚洲在线视频| 在线宅男视频| 四虎永久免费地址| 亚洲无线看天堂av| 国产伦一区二区三区色一情| 免费在线一级视频| 中文一区二区三区四区| 蜜桃av免费观看| aaaaaaa大片免费看| 日本一区二区免费在线观看视频| 国产精品久久久久久久久久免费| 一级日本黄色片| 精品久久av| 国产精品视频一区二区三| 最新在线观看av| 国产精品69久久久久| 91精品人妻一区二区三区| 久久久久久夜| 国产欧美精品一二三| 日本又骚又刺激的视频在线观看| 免费成人小视频| 在线日韩日本国产亚洲| 99国产成+人+综合+亚洲欧美| 7799精品视频天天看| 粉嫩欧美一区二区三区高清影视| 国产精品人人妻人人爽| 精品乱人伦小说| 国产亚洲综合久久| 欧美在线观看视频在线| 国产福利一区在线观看| 久久国产精品无码网站| 成人av电影在线观看| 97香蕉久久超级碰碰高清版| 欧美在线综合| 天堂av在线7| 久久99精品久久久久久野外| 91国产中文字幕| 精品国产欧美一区二区五十路| 欧美国产在线观看| 精品视频在线播放免| 国产黄色一区二区| 91社区国产高清| 99久久精品国产一区二区成人| 午夜激情久久| 色综久久综合桃花网| www.99com| 国产成人综合在线| 成人av电影在线播放| 国内精久久久久久久久久人| 亚洲va码欧洲m码| 久久久久久国产精品视频| 日本不卡免费新一二三区| 精品国产鲁一鲁一区二区张丽| 日韩人妻无码一区二区三区99| 久久91在线| 无遮挡又色又刺激的女人视频| 中文国产亚洲喷潮| 国产免费av高清在线| 91热这里只有精品| 蜜桃在线一区二区三区精品| 国产无码精品在线播放| 精品国内自产拍在线观看| 奇米影视一区二区三区| 国产伦精品一区二区三区高清| 久久久久久国产精品久久| 国产欧美久久久久久久久| 久久久久久久久久久97| 久久亚洲精精品中文字幕| 国产18无套直看片| 中文字幕欧美日韩久久| 亚洲人成毛片在线播放女女| xfplay先锋影音夜色资源站| 蜜芽一区二区三区| 国产一区二区免费视频| 黄网站在线观| 99热国内精品永久免费观看| 亚洲国产精品一区二区久| 欧美精品一区二区免费| 国产欧美一区二区色老头| 国产视频手机在线播放| 国产对白叫床清晰在线播放| 中文字幕第三页| 日本黄色www| 男人午夜影院| 深夜免费福利视频| 免费在线观看你懂的| 草莓视频成人appios| 成人黄色免费电影| 青青操在线视频观看| 长河落日免费高清观看| 操她视频在线观看| 国产浴室偷窥在线播放| 亚洲一级一级97网| 国产不卡在线一区| 综合色中文字幕| 国产美女主播在线观看| 欧美一区二区三区免费观看视频| 欧美大黑帍在线播放| 日韩专区一区二区| 国产成人精品片| 日本学生初尝黑人巨免费视频| 18成人免费观看视频| 一区二区视频国产| 欧美午夜美女看片| 欧美白人最猛性xxxxx| 欧美黑粗硬大| 免费人成在线观看视频播放| 在线丨暗呦小u女国产精品| 中文字幕制服丝袜| 一区二区三区视频免费在线观看| 国产精品综合网站| 少妇太紧太爽又黄又硬又爽小说| 99热播在线观看| 国产伦精品一区二区三区免| 成人毛片免费在线观看| 亚洲欧洲一区二区三区在线观看| 亚洲国产成人精品久久| 噜噜噜91成人网| 黄频免费在线观看| 黄网站网址视频| 五月天婷婷久久| 欧美性感一区二区三区| 日本高清不卡视频| 国产成人自拍网站| 久久国产视频播放| 国产亚洲成精品久久| 99精品热视频只有精品10| 视频一区二区在线| 日韩成人精品一区二区| 国产又粗又猛又爽又黄的网站| 2018狠狠干| 亚洲免费视频网站| 蝌蚪视频在线播放| 国产日产亚洲系列最新| 欧美另类交视频| 香蕉伊大人中文在线观看| 经典三级在线一区| 韩国午夜理伦三级不卡影院| 久久国内精品自在自线400部| 国产成人精品视频免费看| 日韩小视频网址| 亚洲视频免费播放| 精品伊人久久| 奇米狠狠一区二区三区| 制服丝袜中文字幕在线| 亚洲一级爰片777777| 欧美午夜大胆人体| 亚洲一区二区在线看| 欧美日韩精品一本二本三本| 一区二区三区激情| 国内小视频在线看| 曰本三级在线| 韩日在线视频| 免费观看v片在线观看| 一区二区不卡在线播放| 国产激情视频网址| 亚洲大香人伊一本线| 好吊妞这里只有精品| 欧美成人一二三| 国产成人精品一区二三区在线观看| 欧美性在线视频| 国模极品一区二区三区| 欧美日韩生活片| wwwww在线观看| 亚洲欧美日本国产有色| 日韩高清中文字幕一区二区| 亚洲成人三区| 国产一区清纯| 一区二区三区不卡在线视频| 国产三级做爰高清在线| 在线免费观看www| 91视频啊啊啊| 国产一国产二国产三| 性xxxfllreexxx少妇| 亚洲精品免费一区亚洲精品免费精品一区| 美女张开让男人捅| 色悠悠久久综合网| 国产白浆在线免费观看| 女性隐私黄www网站视频| 久久99久久久精品欧美| 国产精品一区二区三区四| 国产红桃视频| 国产伦精品一区二区三区免.费| a√在线中文网新版址在线| 日韩在线播放视频| 奇米成人av国产一区二区三区| 中文字幕第88页| 国产欧美视频一区二区三区| 国产在线制服美女| 精品日韩99亚洲| 97久久亚洲| 综合另类专区| 91久久在线| www.色呦呦| 国产亚洲第一页| 亚洲最大色图| av小说在线播放| 69久久99精品久久久久婷婷| 精品少妇人妻一区二区黑料社区| 欧洲黄色一区| 久久精品亚洲牛牛影视| 国内少妇毛片视频| 久久一区二区三区喷水| 亚洲妇熟xx妇色黄| 国产精品沙发午睡系列990531| 一级片avav网址| 国产精品国产福利国产秒拍| www.视频在线.com| h视频在线观看免费完整版| 国产超碰精品在线观看| 亚洲成**性毛茸茸| 欧美视频在线观看网站| 久久久久国产免费免费| 国产精品美乳在线观看| 福利资源在线久| 国产精品综合av一区二区国产馆| 制服丝袜亚洲网站| 99在线高清视频在线播放| 国产麻豆一级片| 91国内精品野花午夜精品| 精品国产区一区| 亚洲欧美精品久久| 一二三区高清| 一区二区三区黄色片| 亚洲图片欧美另类| 波多结衣在线观看| 亚洲色图丝袜美腿| 亚洲aa中文字幕| 九九九视频在线观看| 欧洲黄色一级视频| 亚洲理论中文字幕| 婷婷五月色综合香五月| 精品视频在线观看一区二区| 91精品国产高清久久久久久91裸体| 日韩污视频在线观看| 亚洲成人影院在线观看| 又粗又黑又大的吊av| 一区二区成人| 欧美日韩影院| 日韩人妻无码一区二区三区99| 欧美xxxx黑人xyx性爽| 亚洲视频自拍偷拍| 在线日韩网站| 九九精品调教| 欧美视频一区二区三区在线观看| 无码av免费一区二区三区试看| 欧美精品激情在线观看| 97视频免费在线观看| 色猫咪免费人成网站在线观看| 亚洲欧美综合一区二区| 青青青免费在线| av福利网址网站| 欧美综合另类| 国产又黄又大又爽| 国产精品免费一区二区三区在线观看| 偷拍视屏一区| 欧美××××黑人××性爽| 国产又爽又黄免费软件| 北条麻妃一区二区三区中文字幕| 色综合久久九月婷婷色综合| 日韩在线观看视频一区二区| 青青久在线视频免费观看| 欧美日韩在线一区二区| 亚洲成人动漫在线播放| a天堂中文在线官网在线| 国产一区二区不卡老阿姨| 高清亚洲成在人网站天堂| 成人在线国产精品| 自拍偷拍你懂的|