對于ADO,一向以為是Access進階中不能不說,又不能細說的問題。不能不說,是因為鑒于某些特殊要求,這是幾乎繞不過去的;而不能細說,則是自認掌握得不夠深刻,深怕誤人子弟。
然而我還是要說。前些日子,版友枯木一線在論壇里說了記錄集和表的區(qū)別,原文大體是“表是數(shù)據(jù)表,記錄集可以是表,可以是查詢”。竊以為流于膚淺,有灌水之嫌疑,便回復(fù)了。對于灌水我向來寬容,但在常規(guī)交流上灌水則深惡痛絕,原因有三,一是容易影響那些真正需要求助的帖子被跟進回復(fù),成為沉底。二則影響版友搜索資料,浪費時間和精力;三則容易引發(fā)歧義,造成理解偏差。
不過,我仍然覺得“理解過于膚淺”并不為過。從可操作的對象來說,記錄集并不僅僅可以操作表和查詢,還通過SQL語句創(chuàng)建記錄集,又或者讀取SQLServer里的表、存儲過程等等,讀Excel文件,甚至讀取本地的ADTG文件等等。而對于表,則可以是外部的鏈接數(shù)據(jù),或者本地的數(shù)據(jù)。從具體操作來說,并非所有鏈接表都能在Access里進行操作,如,希望修改Excel表的數(shù)據(jù),只能通過打開該Excel文件來處理。而記錄集則可以通過建立連接,然后讀取記錄集來更新Excel表的數(shù)據(jù)。另外,它們之間的方法屬性等等也完全迥異,這里不一一細說。
言歸正傳。下面,我們開始講解ADO吧。由于掌握得不夠深刻,部分子集我會繞過去或者略談,例如記錄對象(Record)和流對象(Stream)。記錄對象代表一組數(shù)據(jù),可以是記錄集中的一條記錄,或者只有一條記錄的記錄集。既然如此,那么在Access里就不必專門去創(chuàng)建這么一個對象了,因為這完全可以通過某些特定條件和方法去記錄集中獲。ɡ缬肳here設(shè)置條件,用Move移動光標位置等等)。而流對象則代表文本文件、XML文檔或者web文檔,甚至一些OLE對象的數(shù)據(jù)流(詳見紅塵如煙寫過一個 上傳下載的例子和附上我之前改進的一個例子: http://m.mzhfr.cn/thread-97193-1-1.html)。 由于文字比較多,這次大約分四部分講完,附件將在最后一節(jié)上傳。 是以為序言。 |