扒开腿挺进岳湿润的花苞视频|将军边走边挺进她H树林|挺进朋友人妻张婉莹身体|岳脱得精光让我挺进去视频|第一次挺进莹莹的身体里视频|脱岳裙子从后面挺进去视频

新疆軟件開發(fā)

本站首頁 軟件開發(fā) 成功案例 公司新聞 公司簡介 客服中心 軟件技術(shù) 網(wǎng)站建設(shè)
  您現(xiàn)在的位置: 新疆二域軟件開發(fā)公司 >> 開發(fā)語言 >> 文章正文

BLOB是如何使用的

在開發(fā)數(shù)據(jù)庫管理系統(tǒng)時,根據(jù)設(shè)計需要,我們往往會設(shè)置BLOB類型的字段,BLOB字段的處理直接影響到系統(tǒng)的靈活性,下面筆者將簡單介紹在PowerBuilder和Delphi編程環(huán)境下使用BLOB字段的方法。

  1.BLOB數(shù)據(jù)類型

  BLOB全稱為Binary Large Objects,即大型二進制對象。實際上,在一些數(shù)據(jù)庫系統(tǒng)中并不將其稱之為BLOB字段,如Access中的OLE對象和備注類型、VFP中的MEMO類型、Oracle中的LONG BINARY類型、Sybase中的 LONG VARCHAR、SQL Server中的IMAGE等等,但從廣義上講,它們都屬于BLOB類型。我們可以把BLOB區(qū)別為三種形式:聲像數(shù)據(jù)、二進制數(shù)據(jù)和大文本數(shù)據(jù)。因此,最常見的應(yīng)用就是存儲圖形、聲音等對象,此外大型的二進制對象、OLE對象也可以通過BLOB類型存入數(shù)據(jù)庫,如果文本對象過大,超出了文本類型的規(guī)定長度,則必須用BLOB字段進行存儲。我們在經(jīng)常使用的編程環(huán)境中并不能直接支持BLOB字段,因此需要調(diào)用相應(yīng)的函數(shù)完成BLOB的使用。

 2
.Delphi環(huán)境下的BLOB使用

  實現(xiàn)文字材料的數(shù)據(jù)庫管理時,經(jīng)常會遇到特殊字符的輸入和顯示問題,如在檔案管理中,檔案文件名中經(jīng)常會出現(xiàn)類似于 C3I 這樣的上下標(biāo)形式或其它特殊形式和字符,雖然特殊字符部分可以在編輯控件中顯示或瀏覽,但大多數(shù)格式字符如上下標(biāo)、根號等的顯示是不允許的,因此可以利用BLOB字段解決特殊字符輸入和顯示問題。下面以PARADOX數(shù)據(jù)庫環(huán)境為例簡單介紹在Delphi環(huán)境下的BLOB使用方法。

  首先考慮到BLOB字段的性質(zhì)是不可能直接進行顯示的,即不能用類型轉(zhuǎn)化之類的方法,但作為數(shù)據(jù)集字段可以調(diào)用諸如LOADFROMFILE或SAVETOFILE之類的函數(shù),這與OLE控件的方法完全類似,因此可以在原文件表中建立一個新的字段,其類型為BLOB,并為此字段生成一個顯示的全局變量。

  (1)錄入

  首先完成OLE控件的編輯工作,按下錄入按鈕后將其內(nèi)容保存到當(dāng)前記錄的NEW字段中,由于目前是處理編輯狀態(tài),所以標(biāo)識當(dāng)前字段的批示符為“I”。其實現(xiàn)方法是先利用SaveToFile將OLE控件中內(nèi)容保存在臨時文件TEMPOLE.NNN中,再將此文件內(nèi)容調(diào)入到表中的NEW字段中(即BLOB字段),在調(diào)入前必須保證表處理為可編輯狀態(tài)。

  procedure TForm1.Button1Click(Sender: TObject);

  //錄入按鈕的響應(yīng)事件

  begin

   ole1.SaveToFile('tempole.nnn');

  //保存OLE控件中內(nèi)容到臨時文件中

   table1.edit; //設(shè)置表的編輯狀態(tài)

   table1new.LoadFromFile('tempole.nnn');

  //調(diào)整表中NEW字段的內(nèi)容為臨時文件的內(nèi)容

  DBGrid1.Fields[5].AsString:='1';

  //調(diào)整表中特殊標(biāo)志字段的內(nèi)容為1

  end;

  (2)顯示

  下面的事件處理是將當(dāng)前記錄的NEW字段內(nèi)容讀出到OLE控件中,以便用戶查看。按下顯示按鈕的作用就是將當(dāng)前記錄對應(yīng)的特殊文件名在下面的OLE控件中進行顯示。

  procedure TForm1.Button2Click(Sender: TObject);

  begin

  if DBGrid1.Fields[5].AsString='1' then

  //若含特殊字符

  begin

   table1new.SaveToFile('tempole.nnn');

  //將表NEW字段的內(nèi)容保存為臨時文件

   ole1.LoadFromFile('tempole.nnn');

  //將OLE控件的內(nèi)容調(diào)整為臨時文件內(nèi)容

   end;

  end;

  (3)瀏覽

  實際上瀏覽的實現(xiàn)所采用的方法就是前面的錄入和顯示方法。

  在以上方法基礎(chǔ)上就可以方便地實現(xiàn)帶特殊字符的表格式瀏覽了。這里用到了動態(tài)創(chuàng)建OleContainer方法,并根據(jù)是否有特殊字符將內(nèi)容調(diào)入。

  procedure TForm1.Button3Click(Sender: TObject);

  var

  temp:Array[1..100]of TOleContainer;

  i:integer;

  begin

   showole:=not showole;

  //是否瀏覽

   table1.First;

   i:=0;

   while not table1.eof do

   begin

   i:=i+1;

   if showole=true then

   begin

   temp[i]:=TOleContainer.Create(self);

  //動態(tài)創(chuàng)建OLE控件

   temp[i].parent:=form1;

   temp[i].width:=200;

  //設(shè)置每個動態(tài)生成的OLE控件的大小、位置

   temp[i].height:=25;

   temp[i].left:=DBGrid1.Left-200;

   temp[i].top:=temp[i].Height*(i-1)+DBGrid1.Top+20;

   if(table1ole.AsString='1') then //若含特殊字符

   begin

   table1new.SaveToFile('tempole.nnn');//取字段內(nèi)容,保存為臨時文件

   temp[i].LoadFromFile('tempole.nnn');

  //將內(nèi)容調(diào)入到動態(tài)生成的OLE控件中

   end

   end

   else //取消瀏覽

   temp[i].visible:=false;

  //撤消動態(tài)生成的OLE控件的顯示狀態(tài)

   table1.Next;

   end;

  end;

  這里只利用按鈕方式切換瀏覽狀態(tài),要求在瀏覽和取消瀏覽操作之間不要有其它操作,但在實際應(yīng)用中我們是利用多頁面的切換自動完成瀏覽狀態(tài)的切換的。

  (3)補充

  在以上的作法中,需要聲明一個table1new變量,即根據(jù)表中的NEW字段(BLOB類型)所聲明的一個長久變量table1new:TblobField,在查詢中不可能提前定義好所有可能的字段變量,因此可以用強制類型的方法實現(xiàn)。假設(shè)存在查詢控件query1和OLE控件filename2,則顯示時可以采用以下語句:

  with query1.fields.FieldByName('NEW') as TBlobField do savetofile('tempole.nnn');

  form1.filename2.LoadFromFile('tempole.nnn');

  以上簡要介紹了在Delphi環(huán)境下BLOB數(shù)據(jù)類型的使用方法,希望大家在今后的編程中用好BLOB數(shù)據(jù)類型。 
作者:未知 | 文章來源:網(wǎng)絡(luò) | 更新時間:2007-10-26 11:07:05

  • 上一篇文章:

  • 下一篇文章:

  • 相關(guān)文章:
    Domino平臺的優(yōu)缺點分析
    使用經(jīng)驗整理-TestDirector8.0數(shù)據(jù)庫備份和還原
    丟失日志文件后數(shù)據(jù)庫還能不能恢復(fù)了
    delphi實現(xiàn)利用arp欺騙來實現(xiàn)計費功能
    一個delphi開發(fā)托盤程序的例子
    c#如何連接各類數(shù)據(jù)庫
    基礎(chǔ)學(xué)習(xí):基于SQL的sysColumns 數(shù)據(jù)庫字段表
    處理一個數(shù)據(jù)庫實例在登陸時報ORA-27140錯誤
    利用CodeSmith生成sql
    如何解決MySQL數(shù)據(jù)庫中文問題
    軟件技術(shù)
    · 開發(fā)語言
    · Java技術(shù)
    · .Net技術(shù)
    · 數(shù)據(jù)庫開發(fā)
    最新文章  
    ·搜集整理的asp.net的驗證方
    ·各種FOR循環(huán)結(jié)構(gòu)的整理
    ·軟件項目開發(fā)中應(yīng)該考慮那
    ·搜集整理的javascript sel
    ·軟件開發(fā)中項目經(jīng)理有那些
    ·學(xué)習(xí)如何在Lambda表達式進
    ·C++基礎(chǔ)知識:結(jié)構(gòu)體數(shù)據(jù)的
    ·C#實現(xiàn)短信發(fā)送程序的例子
    ·sun最近修補了一部分java的
    ·rss定制的另外一種實現(xiàn)方式
    ·delphi實現(xiàn)利用arp欺騙來實
    ·基礎(chǔ)學(xué)習(xí):基于WF的流程框
    ·網(wǎng)絡(luò)編程中怎樣得知一次數(shù)
    ·如何逆序輸出單鏈表?
    ·軟件開發(fā)過程中的性能設(shè)計
    關(guān)于我們 | 軟件開發(fā) | 下載試用 | 客服中心 | 聯(lián)系我們 | 友情鏈接 | 網(wǎng)站地圖 | 新疆電子地圖 | RSS訂閱
    版權(quán)所有 © 2016 新疆二域軟件開發(fā)網(wǎng) m.jdtbank.com All Rights Reserved 新ICP備14003571號
    新疆軟件開發(fā)總機:0991-4842803、4811639.
    客服QQ:596589785 ;地址:新疆烏魯木齊北京中路華聯(lián)大廈A-5C 郵編:830000
     
    凌云县| 新巴尔虎右旗| 于田县| 金沙县| 垣曲县| 巴塘县| 邳州市| 涡阳县| 平舆县| 法库县| 漯河市| 耒阳市| 丹巴县| 岗巴县| 涡阳县| 鄄城县| 南宁市| 松潘县| 揭东县| 龙陵县| 衢州市| 新沂市| 永春县| 青铜峡市| 临高县| 体育| 阳春市| 泰来县| 吉木萨尔县| 思茅市| 海伦市| 湖北省| 鹤庆县| 育儿| 万年县| 牟定县| 姚安县| 邢台市| 富裕县| 汾西县| 满城县|