• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于VFP9語言編程的超大文件存入MS-SQL的實(shí)現(xiàn)研究

      2020-09-02 06:16:10
      無線互聯(lián)科技 2020年11期
      關(guān)鍵詞:程序代碼分塊字節(jié)

      曾 紅

      (四川省自貢市第一人民醫(yī)院,四川 自貢 643000)

      在計算機(jī)網(wǎng)絡(luò)應(yīng)用中,會經(jīng)常用文件傳輸協(xié)議(File Transfer Protocol,F(xiàn)TP)來傳遞文件,有時會感到很不方便,于是,本文用MS-SQL數(shù)據(jù)庫來傳遞,編寫應(yīng)用程序,把各類文件存儲到數(shù)據(jù)庫服務(wù)器中,需要時再從數(shù)據(jù)庫中還原文件。

      實(shí)現(xiàn)思路:采用microsoft SQL數(shù)據(jù)庫建立一個表,由字段自動遞增(Identity,ID)、文件名稱(nvarchar字符類型)和文件內(nèi)容(text備注類型)字段組成,開發(fā)語言采用Visual FoxPro 9。

      1 MS-SQL數(shù)據(jù)庫結(jié)構(gòu)

      (1)數(shù)據(jù)庫名稱為文件管理。(2)IP地址:192.168.0.100。(3)賬號:sa。(4)密碼:123456。(5)數(shù)據(jù)庫建表命令為CREATE TABLE文件(ID int IDENTITY(1,1)NOT NULL,文件名稱nvarchar(100),文件內(nèi)容text NULL)ON [PRIMARY]TEXTIMAGE_ON[PRIMARY]。

      2 把文件存儲到SQL中的程序代碼

      rem 創(chuàng)建SQL數(shù)據(jù)庫鏈接[1]

      con=sqlstringconnect(“driver=SQL Server;Server=192.168.0.100;Uid=sa;pwd=123456;database=文件管理”)rem 找到需要存儲的文件

      rem 關(guān)閉數(shù)據(jù)鏈接,完成存儲

      SQLDISCONNECT(con)

      3 從SQL中還原文件的代碼

      rem 創(chuàng)建SQL數(shù)據(jù)庫鏈接

      con=sqlstringconnect(“driver=SQL Server;Server=192.168.0.100;Uid=sa;pwd=123456;database=文件管理”)

      G=SQLEXEC(con,”select * from 文件”,”文件”)

      rem 關(guān)閉數(shù)據(jù)鏈接

      SQLDISCONNECT(con)

      select 文件

      rem 把文件內(nèi)容進(jìn)行base64反編碼

      content=STRCONV(文件內(nèi)容,14)

      filename=ALLTRIM(文件名稱)

      rem 還原文件

      STRTOFILE(filename, content)

      4 實(shí)際應(yīng)用中遇到的問題

      實(shí)際運(yùn)用中,經(jīng)常遇到大文件,比如視頻、壓縮包等,很多文件大小都在10 M以上,有時可能達(dá)到幾百兆、幾千兆以上。運(yùn)行時,當(dāng)文件換成base64編碼后,數(shù)據(jù)長度如果超過16 777 184字節(jié),程序就會自動切斷超長部分,在還原文件時,長度就變小,還原的文件肯定就是錯誤的。

      5 采用分塊存儲技術(shù)解決超大文件的存儲問題

      要解決上面的問題,就必須修改程序,通過反復(fù)思考,決定把文件分成若干塊,再分別存儲到數(shù)據(jù)庫中,即分塊存儲技術(shù),需要還原時,再把這些塊組合起來,即完成還原文件。

      對上面程序代碼進(jìn)行改進(jìn),打開文件后,按照12 000 000字節(jié)大小分塊,再轉(zhuǎn)換成base64編碼不會超過16 777 184字節(jié)長,最后,存入數(shù)據(jù)庫中,由于存儲時間較長,程序運(yùn)行時有進(jìn)度提示,實(shí)現(xiàn)代碼如下:

      6 從SQL中讀取分塊存儲的數(shù)據(jù),還原文件的代碼

      對上面還原程序代碼進(jìn)行改進(jìn),從數(shù)據(jù)庫中讀取出記錄后,把每塊內(nèi)容進(jìn)行base64反編碼,最后,寫入指定的還原文件中,由于存儲時間較長,程序運(yùn)行時有進(jìn)度提示,實(shí)現(xiàn)代碼如下:

      7 結(jié)語

      當(dāng)文件尺寸小于12 M時,可以直接存儲到數(shù)據(jù)庫中;當(dāng)文件尺寸大于12 M時,就必須采用分塊技術(shù)存儲到數(shù)據(jù)庫。采用VFP9語言編程,完美實(shí)現(xiàn)了超大文件的存儲和還原。為了方便程序調(diào)用,可以進(jìn)一步把程序修改成函數(shù)。

      猜你喜歡
      程序代碼分塊字節(jié)
      No.8 字節(jié)跳動將推出獨(dú)立出口電商APP
      分塊矩陣在線性代數(shù)中的應(yīng)用
      No.10 “字節(jié)跳動手機(jī)”要來了?
      計算機(jī)網(wǎng)絡(luò)信息安全未來發(fā)展趨勢
      簡談MC7字節(jié)碼
      基于圖元裝接模式由程序流程圖自動生成源代碼
      軟件工程(2016年11期)2017-01-17 16:56:57
      反三角分塊矩陣Drazin逆新的表示
      基于自適應(yīng)中值濾波的分塊壓縮感知人臉識別
      基于多分辨率半邊的分塊LOD模型無縫表達(dá)
      人類進(jìn)入“澤它時代”
      彰化县| 当阳市| 苍南县| 巴林左旗| 仙桃市| 满城县| 雷州市| 哈巴河县| 山东省| 台江县| 朝阳区| 瑞金市| 太康县| 米易县| 紫云| 万载县| 施甸县| 新巴尔虎左旗| 墨脱县| 乌拉特中旗| 光山县| 左云县| 集安市| 盘锦市| 沙洋县| 宁国市| 弋阳县| 霍城县| 子洲县| 会宁县| 大姚县| 凤翔县| 仪陇县| 西安市| 永福县| 泗阳县| 林口县| 黑龙江省| 博乐市| 永州市| 英超|