用VB如何實現文件數據對SQL Server上傳下載

              本文以VisualBasic6.0和SQLServer2000環境下的數據庫為例,介紹文件數據SQLServer2000數據庫的上傳和下載。

              很多單位尤其是制造業、設計院,計算機應用開展的較早。在這些單位,各種法規文件的下達以及日常工作中產生的大量數據,形成了種類繁雜、數量龐大檔案資料(各種文件)。面對海量數據,原有檔案管理系統在進行數據的備份、還原、更新與維護時多數已力不從心。傳統的基于文件的管理方式,還給各種檔案的保密工作帶來了隱患。為此,越來越多的單位開始開發基于數據庫的文件檔案管理系統,以期克服這些毛病。

              數據庫的連接  對數據庫的操作一定在已經與本地抑或是網絡數據庫建立了聯系的基礎上,建立連接這一需求可以通過兩種方式實現。  為便于理解,這里假定服務器名為Data_Server,檔案數據庫名為Science_File,其中的一個數據表名為office,設計有一個名稱為office、類型為Image的字段,用于保存文件。為便于將不同大小的文件存儲在SQLServer的數據表中,必須在數據表中創建一個Image型的字段,該字段可存儲的最大文件達2GB字節。  1、利用Adodc控件連接  VisualBasic提供了一個Adodc控件。它通過Adodc屬性的設置,按照向導提示完成數據庫的連接。具體過程如下:  首先在屬性頁中選擇生成按鈕,進入數據鏈接屬性對話框;然后選擇該對話框中的連接屬性頁,選擇或輸入服務器名稱和數據庫等重要信息;最后測試連接,連接成功后,按確定按鈕,返回到屬性頁對話框,可獲得連接字符串,如下例:Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;Persist;SecurityInfo=False;InitialCatalog=Science_File;DataSource=Data_Server  通過下列語句,即可連接到指定的數據庫:dimodbcstrasString,adoconAsNewADODB.Connectionodbcstr=Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;_InitialCatalog=Science_File;DataSource=Data_Serveradocon.Openodbcstr"連接到數據庫  2、利用NetServerEnum函數  該函數是一個API函數,通過它可獲得一個安裝了SQLServer數據庫管理系統的服務器列表。方法如下:PrivateDeclareFunctionNetServerEnumLibnetapi32_(lpServerAsAny,ByVallLevelAsLong,vBufferAsAny,_lPreferedMaxLenAsLong,lEntriesReadAsLong,lTotalEntriesAsLong,_ByVallServerTypeAsLong,ByValsDomain$,vResumeAsAny)AsLongPrivateDeclareSubCopyMemoryLibkernel32AliasRtlMoveMemory(Destination_AsAny,SourceAsAny,ByValLengthAsLong)PrivateDeclareFunctionlstrlenWLibkernel32(ByVallpStringAsLong)AsLongPrivateTypeSV_100 platformAsLong nameAsLongEndTypedimsv100AsSV_100,nRetAsLong,iaslong,lServerInfoAsLongdimlServerInfoAsLong,lPreferedMaxLenAsLong,lEntriesReadAsLongdimlTotalEntriesAsLong,sDomainAsString,vResumeAsVariantdimbuffer()AsByte,nLenAsLonglPreferedMaxLen=65536nRet=NetServerEnum(0,101,lServerInfo,lPreferedMaxLen,lEntriesRead,lTotalEntries,4,sDomain,vResume)IfnRet=0ornRet=234Then Fori=0TolEntriesRead-1  CopyMemorysv100,ByVallServerInfo,Len(sv100)  nLen=lstrlenW(sv100.name)*2  IfnLenThen   ReDimbuffer(0To(nLen-1))AsByte   CopyMemorybuffer(0),ByValsv100.name,nLen  EndIf  Combo1.List(i)=buffer"服務器名  lServerInfo=lServerInfo+24 NextiEndIf  得到的服務器名通過Combo1控件顯示,可從中選擇儲存檔案數據的服務器名,再通過下列語句連接到選定服務器中的數據庫:odbcstr=Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;_InitialCatalog=Science_File;DataSource=Form2.Combo1.Textadocon.Openodbcstr"連接到數據庫  其中的變量含義與前述相同,Form2.Combol.Text的內容即為選定的服務器名。  通過以上兩種方法皆可達到連接目的,前者簡潔但有很大局限性,當數據服務器名稱發生變化時,必須修改源代碼,很不方便。后者既有較強的操作性又很直觀。在筆者開發的科技檔案管理系統采用了第二種方法。數據的上傳  數據的上傳就是將檔案文件存儲到數據表中。在數據上傳時,因情況不同一般有兩種方式,即單一上傳和批量上傳,前者指一次上傳一個文件(在數據表中增加一條記錄),后者指一次將一個文件夾中的所有文件上傳到數據庫。兩者在實質上是統一的,批量上傳時,只需用一個循環語句就可。以下介紹單一上傳的過程。1、打開數據表  通過以下語句打開數據表:dimoffice_rstAsNewADODB.Recordsetadocon.CursorLocation=adUseClientoffice_rst.Openoffice,adocon,adOpenDynamic,adLockOptimistic,adCmdTable

              欧洲 亚洲 国产图片综合| 亚洲欧洲中文日韩久久AV乱码| 亚洲国产精品综合久久一线| 亚洲精品国产啊女成拍色拍| 亚洲情XO亚洲色XO无码| 亚洲精品无码aⅴ中文字幕蜜桃| 2022年亚洲午夜一区二区福利| 亚洲日产韩国一二三四区| 久久影视国产亚洲| 久久久久国产亚洲AV麻豆 | 亚洲日韩激情无码一区| 久久久久亚洲AV成人网人人网站| 亚洲国产精品成人AV无码久久综合影院| 亚洲日韩一区二区三区| 亚洲精品自偷自拍无码| 亚洲欧美中文日韩视频| 亚洲精品动漫免费二区| 亚洲AV第一成肉网| 国产午夜亚洲精品不卡电影| 99亚洲乱人伦aⅴ精品| 国产成人不卡亚洲精品91 | 亚洲综合精品香蕉久久网97| 亚洲国产精品一区二区久久| 久久国产亚洲精品麻豆| 亚洲福利视频一区| 亚洲香蕉免费有线视频| 亚洲精品动漫在线| 性xxxx黑人与亚洲| 亚洲人成色4444在线观看| 久久精品熟女亚洲av麻豆| 亚洲国产午夜中文字幕精品黄网站| 亚洲日本韩国在线| 亚洲乱码国产乱码精品精| 亚洲AV人无码综合在线观看| 亚洲高清美女一区二区三区| 亚洲喷奶水中文字幕电影| 亚洲色大成网站www永久网站| 大桥未久亚洲无av码在线| 亚洲AV网站在线观看| 国产av无码专区亚洲av果冻传媒 | 天天爽亚洲中文字幕|