国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 學院 > 開發設計 > 正文

從DAO轉換到ADO

2019-11-18 17:46:30
字體:
來源:轉載
供稿:網友
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->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
精品国产二区三区| 高清av在线| 国产九九在线| 国产秒拍福利视频露脸| 国产美女性感在线观看懂色av| 久草.com| 国产成人亚洲综合小说区| 国产福利在线| 四虎成年永久免费网站| 九七电影韩国女主播在线观看| 非洲黑人最猛性xxxx交| 国产污视频在线| av亚洲男人天堂| 国产免费a∨片在线观看不卡| 国产黄网站在线观看| 亚洲成人福利| 国产人成网在线播放va免费| 91在线超碰| 国产精品自拍在线观看| 精灵使的剑舞无删减版在线观看| 亚洲成人av在线影院| 天天操天天艹| 四虎国产精品永久地址998| 国产亚洲精品一区二区在线观看| 亚洲欧美自拍另类| 最新黄网在线观看| av在线你懂的| 精品一区二区三区高清免费不卡| 九色在线网站| 四虎一区二区三区| 2018狠狠干| 国产精品乱码一区二区三区视频| 在线播放国产区| 国产特黄在线| 天天操人人干| 国产在线超碰| 欧美成人久久电影香蕉| av片在线观看| 亚洲免费网站在线观看| 91极品在线| 国产xxxxx| 91涩漫在线观看c| 国产精品777一区二区| 国产麻豆视频网站| 国产中文第一页| 国产在线观看网站| 黄网址在线播放免费| 亚洲免费网站在线观看| 国产wwww| 在线观看av的网站| 四虎成人欧美精品在永久在线| 国产黄视频在线观看| 2019中文字幕在线视频| 国产黄色av免费看| 精品一区二区观看| 午夜在线不卡| 狠狠干在线视频| 国产乱视频在线观看| 综合激情丁香| 国产激情视频一区二区三区| 在线观看的av网站| 欧美一级久久久久久久久大| 青娱乐在线视频观看| 玖玖在线视频| 国产福利片在线| wwww亚洲| 国产精品视频一区二区久久| 国产成人福利| 久久久久久久久免费视频| 国产小视频在线高清播放| 91久久精品国产性色| 青青草免费在线观看| 国产一二区视频| 亚洲an天堂an在线观看| 国产一卡2卡3卡免费网站| 91在线超碰| 国产中文字幕在线看| 国产视频福利在线| 欧美亚洲天堂| a√在线视频| 国产乱码在线| 怡红院av在线| 国产高清免费在线播放| 青青草视频免费在线观看| 国产国产国产国产国产国产| 可以免费看污视频的网站| 99久久国产视频| 91麻豆免费在线视频| 国产一卡二卡3卡4卡四卡在线| 欧美日韩一区二区三区在线播放| 国产高清视频在线观看| 国产一区二区三区不卡在线| www.久草.com| av中文在线| 亚洲欧美日韩成人网| 国产激情视频在线观看| 国产卡二和卡三的视频| 男人天堂v视频| 天天插天天射| 青青艹在线视频| 青青青手机在线视频观看| h网址在线观看| 夜夜操com| 伊人中文字幕在线| 天堂中文在线观看| www.夜夜操| 久草在线资源福利| 男人天堂v视频| 久久精品蜜桃| 五月综合网站| 国产黄色大片在线观看| 69精品视频| 亚洲成人国产综合| 久久精品国产亚洲777| 超碰国产在线观看| 激情五月色综合亚洲小说| 国产美女被遭强高潮免费网站| 狠狠操五月天| 国产日本韩国在线播放| av网站大全在线| 欧美婷婷久久五月精品三区| 九色成人在线| 中文字幕在线观看播放| 国产日产精品久久久久久婷婷| 国产xxxx做受性欧美88| 日本一二三区视频免费高清| 美女国产在线| 国产成人亚洲欧美电影| 日本不卡影院| 国产精品区一区二| 麻豆网站在线免费观看| 国产精品麻豆一区二区三区| 天天插天天射| 精品国内一区二区三区免费视频| av高清在线| 国产小视频在线| 蜜桃av网站| 国产激情视频在线| 狠狠干婷婷色| av网址在线免费观看| 国产农村一级特黄α**毛片| av在线中文| av大片在线播放| 97国产视频| 中文字幕成人乱码在线电影| 在线观看中文| 国产porn在线| 国产区在线看| 国产一二区在线| 超碰在线人人| 四虎一区二区三区| aaa大片在线观看| 国产精品视频二区三区| 黄色毛片在线观看| 超碰免费在线观看| 天堂网中文在线| 亚洲国产精华液| 亚洲欧美精品日韩欧美| 91精品国产高久久久久久五月天| 丁香综合在线| 国产免费视频| 狠狠干天天爱| 99热在线观看免费| 国产乱子视频| 国产日本韩国在线播放| 国产日本在线观看| 国产精品视频一区二区三区麻豆 | 久久这里精品| v天堂福利视频在线观看| av在线播放国产| 亚洲第一区视频| 中文天堂av| 热99re久久精品精品免费| 国产精品外围在线观看| wwww亚洲| eeuss影影院www在线播放| 亚洲视频网站在线| 国产天堂在线播放视频| 中文字幕在线免费看| 国产三级在线| 国产不卡在线| 蜜桃av网站| 天天av综合网| 中文乱码字幕av网站| gogogo影视剧免费观看在线观看| 亚洲网站视频在线观看| www免费在线观看视频| 黄色av电影在线播放| 国产小视频在线高清播放| 91精品国产高久久久久久五月天| 日本一二三区视频免费高清| 国产免费专区| 99re热视频在线| 黄色电影网站在线观看| 国产欧美日韩专区| 久热精品视频在线播放| 国产精品69一区二区三区| www亚洲天堂| 国产成在线观看免费视频| eeuss影院在线观看|