<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 用VB如何實現(xiàn)文件數(shù)據(jù)對SQL Server上傳下載

          用VB如何實現(xiàn)文件數(shù)據(jù)對SQL Server上傳下載

          作者: 時間:2010-12-12 來源:網(wǎng)絡(luò) 收藏

          本文以VisualBasic6.0和2000環(huán)境下的庫為例,介紹2000庫的上傳和下載。

          本文引用地址:http://www.ex-cimer.com/article/151220.htm

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

          數(shù)據(jù)庫的連接

            對數(shù)據(jù)庫的操作一定在已經(jīng)與本地抑或是網(wǎng)絡(luò)數(shù)據(jù)庫建立了聯(lián)系的基礎(chǔ)上,建立連接這一需求可以通過兩種方式。

            為便于理解,這里假定服務(wù)器名為Data_,檔案數(shù)據(jù)庫名為Science_File,其中的一個數(shù)據(jù)表名為office,設(shè)計有一個名稱為office、類型為Image的字段,用于保存文件。為便于將不同大小的文件存儲在Server的數(shù)據(jù)表中,必須在數(shù)據(jù)表中創(chuàng)建一個Image型的字段,該字段可存儲的最大文件達(dá)2GB字節(jié)。

            1、利用Adodc控件連接

            VisualBasic提供了一個Adodc控件。它通過Adodc屬性的設(shè)置,按照向?qū)崾就瓿蓴?shù)據(jù)庫的連接。具體過程如下:

            首先在屬性頁中選擇生成按鈕,進(jìn)入數(shù)據(jù)鏈接屬性對話框;然后選擇該對話框中的連接屬性頁,選擇或輸入服務(wù)器名稱和數(shù)據(jù)庫等重要信息;最后測試連接,連接成功后,按確定按鈕,返回到屬性頁對話框,可獲得連接字符串,如下例:

          Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;Persist;SecurityInfo=False;InitialCatalog=Science_File;DataSource=Data_Server

            通過下列語句,即可連接到指定的數(shù)據(jù)庫:

          dimodbcstrasString,adoconAsNewADODB.Connection
          odbcstr=Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;_
          InitialCatalog=Science_File;DataSource=Data_Server
          adocon.Openodbcstr'連接到數(shù)據(jù)庫

            2、利用NetServerEnum函數(shù)

            該函數(shù)是一個API函數(shù),通過它可獲得一個安裝了SQLServer數(shù)據(jù)庫管理系統(tǒng)的服務(wù)器列表。方法如下:

          PrivateDeclareFunctionNetServerEnumLibnetapi32_
          (lpServerAsAny,ByVallLevelAsLong,vBufferAsAny,_
          lPreferedMaxLenAsLong,lEntriesReadAsLong,lTotalEntriesAsLong,_
          ByVallServerTypeAsLong,ByValsDomain$,vResumeAsAny)AsLong
          PrivateDeclareSubCopyMemoryLibkernel32AliasRtlMoveMemory(Destination_
          AsAny,SourceAsAny,ByValLengthAsLong)
          PrivateDeclareFunctionlstrlenWLibkernel32(ByVallpStringAsLong)AsLong

          PrivateTypeSV_100
           platformAsLong
           nameAsLong
          EndType

          dimsv100AsSV_100,nRetAsLong,iaslong,lServerInfoAsLong
          dimlServerInfoAsLong,lPreferedMaxLenAsLong,lEntriesReadAsLong
          dimlTotalEntriesAsLong,sDomainAsString,vResumeAsVariant
          dimbuffer()AsByte,nLenAsLong
          lPreferedMaxLen=65536
          nRet=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'服務(wù)器名
            lServerInfo=lServerInfo+24
           Nexti
          EndIf

            得到的服務(wù)器名通過Combo1控件顯示,可從中選擇儲存檔案數(shù)據(jù)的服務(wù)器名,再通過下列語句連接到選定服務(wù)器中的數(shù)據(jù)庫:

          odbcstr=Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;_
          InitialCatalog=Science_File;DataSource=Form2.Combo1.Text
          adocon.Openodbcstr'連接到數(shù)據(jù)庫

            其中的變量含義與前述相同,F(xiàn)orm2.Combol.Text的內(nèi)容即為選定的服務(wù)器名。

            通過以上兩種方法皆可達(dá)到連接目的,前者簡潔但有很大局限性,當(dāng)數(shù)據(jù)服務(wù)器名稱發(fā)生變化時,必須修改源代碼,很不方便。后者既有較強(qiáng)的操作性又很直觀。在筆者開發(fā)的科技檔案管理系統(tǒng)采用了第二種方法。
          數(shù)據(jù)的上傳

            數(shù)據(jù)的上傳就是將檔案文件存儲到數(shù)據(jù)表中。在數(shù)據(jù)上傳時,因情況不同一般有兩種方式,即單一上傳和批量上傳,前者指一次上傳一個文件(在數(shù)據(jù)表中增加一條記錄),后者指一次將一個文件夾中的所有文件上傳到數(shù)據(jù)庫。兩者在實質(zhì)上是統(tǒng)一的,批量上傳時,只需用一個循環(huán)語句就可。以下介紹單一上傳的過程。1、打開數(shù)據(jù)表

            通過以下語句打開數(shù)據(jù)表:

          dimoffice_rstAsNewADODB.Recordset
          adocon.CursorLocation=adUseClient
          office_rst.Openoffice,adocon,adOpenDynamic,adLockOptimistic,adCmdTable


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();