在线现看午夜福利片|女人16久久免费视频|鲁丝片一区鲁丝片二区鲁丝|一区二区三区欧美在线

  1. 
    
    <b id="glvx9"></b>
        1. <blockquote id="glvx9"><meter id="glvx9"></meter></blockquote>
            首頁 考試吧論壇 Exam8視線 考試商城 網(wǎng)絡課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載
            2011中考 | 2011高考 | 2012考研 | 考研培訓 | 在職研 | 自學考試 | 成人高考 | 法律碩士 | MBA考試
            MPA考試 | 中科院
            四六級 | 職稱英語 | 商務英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT
            新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學習 | 法語 | 德語 | 韓語
            計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證
            華為認證 | Java認證
            公務員 | 報關員 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 期貨從業(yè)資格 | 司法考試 | 法律顧問 | 導游資格
            報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師
            人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業(yè)資格 | 廣告師職業(yè)水平
            駕駛員 | 網(wǎng)絡編輯
            衛(wèi)生資格 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 執(zhí)業(yè)護士
            會計從業(yè)資格考試會計證) | 經(jīng)濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務師
            注冊資產(chǎn)評估師 | 高級會計師 | ACCA | 統(tǒng)計師 | 精算師 | 理財規(guī)劃師 | 國際內(nèi)審師
            一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監(jiān)理工程師 | 安全工程師
            質量工程師 | 物業(yè)管理師 | 招標師 | 結構工程師 | 建筑師 | 房地產(chǎn)估價師 | 土地估價師 | 巖土師
            設備監(jiān)理師 | 房地產(chǎn)經(jīng)紀人 | 投資項目管理師 | 土地登記代理人 | 環(huán)境影響評價師 | 環(huán)保工程師
            城市規(guī)劃師 | 公路監(jiān)理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師
            繽紛校園 | 實用文檔 | 英語學習 | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲

            數(shù)據(jù)庫工程師:在PB中用OLE存取blob類型數(shù)據(jù)(三)

              6、源程序建立

              1)首先在數(shù)據(jù)庫中建立如下結構的表blobsave:

               字段名稱  數(shù)據(jù)類型  備注

               id  char(4)  primairy key index

               s_path  char(50)

               pic   binary (50)

              2)在PB建立PBl庫blobsave.PBl

              3)在PBl庫blobsave.PBl中建立應用blobsave

              在應用的open事件中設置數(shù)據(jù)庫連接程序(本程序中采用的是odbc方式連接數(shù)據(jù)庫,讀者可根據(jù)自己所建立的數(shù)據(jù)庫的不同選用不同的連接方式,以下連接數(shù)據(jù)庫的代碼也有所改動,至于連接不同的數(shù)據(jù)庫的方法,請參考有關資料,本文不做詳細介紹):

              SQLCA.DBMS = "ODBC"
              SQLCA.AutoCommit = False
              SQLCA.DBParm = "Connectstring="DSN=blob""
              connect;
              open(w_main)

              其中命令按鈕cb_path的clicked中的代碼格式如下:open(w_path)

              其中命令按鈕cb_dbblob的clicked中的代碼格式如下:open(w_dbblob)

              其中命令按鈕cb_OLEblob的clicked中的代碼格式如下:open(w_OLEblob)

              4) 建立數(shù)據(jù)窗口dw_blobsave

              按照上文中建立數(shù)?荽翱詰腷lob列的方法建立數(shù)據(jù)窗口dw_blobsave如圖所示:

              其中:add,del,save,cancel,,retrieve等分別為數(shù)據(jù)窗口dw_blobsave的append row,delete row,update,retrieve動作按鈕。

            首先創(chuàng)建實例變量 OLEstorage stor1

              然后如圖建立窗口w_path,其中數(shù)據(jù)窗口控件dw_1的rowfocuschanged中的代碼如下:

              long row_num
              row_num=dw_1.getrow()
              if row_num >0 then
              ole_1.insertfile(dw_1.object.s_path[row_num])
              end if

              其中數(shù)據(jù)窗口dw_1的buttonclicked中的代碼如下:

              if dwo.name="cbselect" then
              long row_num
              row_num=dw_1.getrow()
              string filepath,filename
              getfileopenname("請選擇備注文件",filepath,filename)
              dw_1.object.s_path[row_num]=filepath
              ole_1.insertfile(filepath)
              end if

              保存窗口w_path

              6)建立窗口w_dbblob

              打開w_path,把其另存為w_dbblob,改變數(shù)據(jù)窗口dw_1的rowfocuschanged中的代碼如下:

              blob text1
              long row_num
              row_num=dw_1.getrow()
              if row_num>0 then
              string id
              id = dw_1.object.id[row_num]
              sqlca.autocommit=true
              selectblob pic into :text1 from blobsave where id = :id;
              ole_1.objectdata=text1
              sqlca.autocommit=false
              end if

              改變數(shù)據(jù)窗口dw_1的buttonclicked中的代碼如下:

              long row_num
              if dwo.name="cbselect" then
              row_num=dw_1.getrow()
              string filepath,filename
              getfileopenname("請選擇備注文件",filepath,filename)
              dw_1.object.s_path[row_num]=filepath
              ole_1.insertfile(filepath)
              end if
              if dwo.name="cbsave" then
              string id
              sqlca.autocommit = true
              blob text1
              text1 = ole_1.objectdata
              dw_1.update()
              commit;
              row_num=dw_1.getrow()
              id=dw_1.object.id[row_num]
              updateblob blobsave
              set pic = :text1
              where id = :id ;
              commit;
              sqlca.autocommit = FALSE
              dw_1.retrieve()
              dw_1.scrolltorow(row_num)
              end if
              保存窗口w_dbblob

              7)建立窗口w_OLEblob

              打開w_path,把其另存為w_OLEblob,在窗口w_OLEblob的open事件中寫入以下代碼:

              stor1 = create olestorage
              stor1.open("c:\p1.ole") //打開或創(chuàng)建ole文件
              在窗口w_OLEblob的close事件中寫入以下代碼:
              destroy stor1

              改變數(shù)據(jù)窗口dw_1的rowfocuschanged中的代碼如下:

              blob text1
              long row_num
              row_num=dw_1.getrow()
              if row_num>0 then
              string id
              id = dw_1.object.id[row_num]
              ole_1.open(stor1,"w"+id)
              end if

              改變數(shù)據(jù)窗口dw_1的buttonclicked中的代碼如下:

              long row_num
              if dwo.name="cbselect" then
              row_num=dw_1.getrow()
              string filepath,filename
              getfileopenname("請選擇備注文件",filepath,filename)
              dw_1.object.s_path[row_num]=filepath
              ole_1.insertfile(filepath)
              end if
              if dwo.name="cbsave" then
              string id
              row_num=dw_1.getrow()
              id=dw_1.object.id[row_num]
              ole_1.saveas(stor1,"w"+id)
              stor1.save()
              end if

              保存窗口w_OLEblob,運行應用程序即可。

              7、三種方法的優(yōu)缺點

              方法一:文件保存在固定的路徑下,數(shù)據(jù)庫中存取文件路徑和名稱可以節(jié)省數(shù)據(jù)空間,避免了數(shù)據(jù)庫過分膨脹,但備注文件必須在一定的目錄下,不能丟失,且同一目錄下文件不能重名,對文件的管理造成一定的困難,另外,在OLE控件中瀏覽顯示備注文件時,由于每次都要調用服務器程序,所以速度較慢。

              方法二:在數(shù)據(jù)庫中用blob類型或者varbinary類型字段存儲備注文件,當文件存儲在數(shù)據(jù)庫中以后,就可以刪除硬盤上原來的臨時文件,不需要復雜的二進制文件管理,且數(shù)據(jù)庫可以存儲在網(wǎng)絡服務器上,對數(shù)據(jù)的共享非常方便。

              方法三:在本地用OLE存儲結構存儲備注文件?梢园阉械亩M制文件信息存儲在一個OLE存儲文件中,管理比較方便。當二進制文件信息存儲后,可以刪除原來的臨時文件;因為打開存儲文件后不需要每次執(zhí)行服務器程序來顯示存儲信息,所以存取速度較快。 說明:本文在PB6.5,Sql anywhere數(shù)據(jù)庫和PB6.5,Sql Server數(shù)據(jù)庫下,windows98,windows me,NT4.0平臺上試驗通過。

            文章搜索
            軟件水平考試欄目導航
            版權聲明:如果軟件水平考試網(wǎng)所轉載內(nèi)容不慎侵犯了您的權益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉載本軟件水平考試網(wǎng)內(nèi)容,請注明出處。