亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 052.htm

?? delphi教程
?? HTM
?? 第 1 頁 / 共 4 頁
字號:
face="宋體" lang="ZH-CN">對象的意義就在于:一方面可以使</font><font
face="Arial">Delphi</font><font face="宋體" lang="ZH-CN">應用程序充分利用多媒體數據庫的數據管理能力;另一方面又能利用</font><font
face="Arial">Object Pascal</font><font face="宋體" lang="ZH-CN">的強大程序設計能力給多媒體數據庫提供全方向的功能擴展余地。</p>
<p>  使用</font><font face="Arial">TBlobStream</font><font face="宋體"
lang="ZH-CN">對象可以在多媒體數據庫的</font><font face="Arial">BLOB</font><font
face="宋體" lang="ZH-CN">字段存儲任意格式的數據。一般說來,許多多媒體數據庫只能支持圖像、語音或者</font><font
face="Arial">OLE</font><font face="宋體" lang="ZH-CN">服務器支持的數據。利用</font><font
face="Arial">TBlobStream</font><font face="宋體" lang="ZH-CN">則不同,只要是程序能夠定義的數據格式,它都能在</font><font
face="Arial">BLOB</font><font face="宋體" lang="ZH-CN">字段中讀寫,而不需要其它輔助工具。</p>
<p>  </font><font face="Arial">TBlobStream</font><font face="宋體" lang="ZH-CN">用構造方法</font><font
face="Arial">Create</font><font face="宋體" lang="ZH-CN">建立數據庫域和</font><font
face="Arial">BLOB</font><font face="宋體" lang="ZH-CN">流的聯接。用</font><font
face="Arial">Read</font><font face="宋體" lang="ZH-CN">或</font><font face="Arial">Write
</font><font face="宋體" lang="ZH-CN">方法訪問和改變域中的內容;用</font><font
face="Arial">Seek</font><font face="宋體" lang="ZH-CN">方法,在域中定位;用</font><font
face="Arial">Truncate</font><font face="宋體" lang="ZH-CN">方法刪除域中當前位置起所有的數據。</p>
<p> </font><font face="Arial"></p>
<p>20.1.7.1 TBlobStream</font><font face="宋體" lang="ZH-CN">的屬性和方法</p>
<p> </p>
<p>  </font><font face="Arial">TBlobStream</font><font face="宋體" lang="ZH-CN">對象從</font><font
face="Arial">TStream</font><font face="宋體" lang="ZH-CN">直接繼承,沒有增添新的屬性。它覆蓋了</font><font
face="Arial">Read</font><font face="宋體" lang="ZH-CN">、</font><font face="Arial">Write
</font><font face="宋體" lang="ZH-CN">和</font><font face="Arial">Seek</font><font
face="宋體" lang="ZH-CN">方法,提供了對</font><font face="Arial">BLOB</font><font
face="宋體" lang="ZH-CN">字段的訪問操作;它增添了</font><font face="Arial">Truncate</font><font
face="宋體" lang="ZH-CN">方法以實現</font><font face="Arial">BLOB</font><font
face="宋體" lang="ZH-CN">字段中的刪除操作。</p>
<p>  </font><font face="Arial">1. Read</font><font face="宋體" lang="ZH-CN">方法</p>
<p>  聲明:</font><font face="Arial">function Read(var Buffer; Count: Longint):
Longint; </p>
<p>Read</font><font face="宋體" lang="ZH-CN">方法從數據庫域的當前位置起復制</font><font
face="Arial">Count</font><font face="宋體" lang="ZH-CN">個字節的內容到</font><font
face="Arial">Buffer</font><font face="宋體" lang="ZH-CN">中。</font><font face="Arial">Buffer</font><font
face="宋體" lang="ZH-CN">也必須至少分配</font><font face="Arial">Count</font><font
face="宋體" lang="ZH-CN">個字節。</font><font face="Arial">Read</font><font
face="宋體" lang="ZH-CN">方法返回實際傳輸的字節數,因為傳輸的字節數可能小于</font><font
face="Arial">Count</font><font face="宋體" lang="ZH-CN">,所以需要選擇符的邊界判斷。</p>
<p>  </font><font face="Arial">2. Write</font><font face="宋體" lang="ZH-CN">方法</p>
<p>  聲明:</font><font face="Arial">function Write(const Buffer; Count: Longint);
override; Longint; </p>
<p>Write</font><font face="宋體" lang="ZH-CN">方法從</font><font face="Arial">Buffer</font><font
face="宋體" lang="ZH-CN">中向數據庫域的當前位置復制</font><font
face="Arial">Count</font><font face="宋體" lang="ZH-CN">個字節的內容。</font><font
face="Arial">Buffer</font><font face="宋體" lang="ZH-CN">必須分配有</font><font
face="Arial">Count</font><font face="宋體" lang="ZH-CN">個字節的內存空間,函數返回實際傳輸的字節數,傳輸過程也要進行選擇符邊界判斷。</p>
<p>  </font><font face="Arial">3. Seek</font><font face="宋體" lang="ZH-CN">方法</p>
<p>  聲明:</font><font face="Arial">function Seek(Offset: Longint; Origin: Word):
Longint; </font><font face="宋體" lang="ZH-CN"></p>
<p>  </font><font face="Arial">Seek</font><font face="宋體" lang="ZH-CN">方法重新設置</font><font
face="Arial">BLOB</font><font face="宋體" lang="ZH-CN">流中的指針位置。如果</font><font
face="Arial">Origin</font><font face="宋體" lang="ZH-CN">的值是</font><font
face="Arial">soFromBeginning</font><font face="宋體" lang="ZH-CN">,則新的指針位置是</font><font
face="Arial">Offset; </font><font face="宋體" lang="ZH-CN">如</font><font face="Arial">Origin</font><font
face="宋體" lang="ZH-CN">的值是</font><font face="Arial">soFromCurrent</font><font
face="宋體" lang="ZH-CN">,則新的指針位置是</font><font face="Arial">Position+Offset</font><font
face="宋體" lang="ZH-CN">;如果</font><font face="Arial">Origin</font><font
face="宋體" lang="ZH-CN">的值是</font><font face="Arial">SoFromCurrent</font><font
face="宋體" lang="ZH-CN">,則新的指針位置是</font><font face="Arial">Size+Offset</font><font
face="宋體" lang="ZH-CN">。函數返回新的指針位置值。當</font><font
face="Arial">Origin</font><font face="宋體" lang="ZH-CN">為</font><font face="Arial">0(SoFromBegin)</font><font
face="宋體" lang="ZH-CN">時,</font><font face="Arial">Offset</font><font
face="宋體" lang="ZH-CN">的值必須大于等于零</font><font face="Arial">; </font><font
face="宋體" lang="ZH-CN">當</font><font face="Arial">Origin</font><font face="宋體"
lang="ZH-CN">的值為</font><font face="Arial">2(SoFromEnd)</font><font face="宋體"
lang="ZH-CN">,</font><font face="Arial">Offset</font><font face="宋體" lang="ZH-CN">的值必須小于等于零。</p>
<p>  </font><font face="Arial">4. Truncate</font><font face="宋體" lang="ZH-CN">方法</p>
<p>  聲明:</font><font face="Arial">procedure Truncate; </p>
<p>Truncate</font><font face="宋體" lang="ZH-CN">方法撤消</font><font face="Arial">TBlobField</font><font
face="宋體" lang="ZH-CN">、</font><font face="Arial">TBytesField</font><font
face="宋體" lang="ZH-CN">或</font><font face="Arial">TVarBytesField</font><font
face="宋體" lang="ZH-CN">中從當前位置起的數據。</p>
<p>  </font><font face="Arial">5. Create</font><font face="宋體" lang="ZH-CN">方法</p>
<p>  聲明:</font><font face="Arial">constructor Create(Field: TBlobField; Mode:
TBlobStreamMode); </font><font face="宋體" lang="ZH-CN"></p>
<p>  </font><font face="Arial">Create</font><font face="宋體" lang="ZH-CN">方法使用</font><font
face="Arial">Field</font><font face="宋體" lang="ZH-CN">參數建立</font><font
face="Arial">BLOB</font><font face="宋體" lang="ZH-CN">流與</font><font face="Arial">BLOB</font><font
face="宋體" lang="ZH-CN">字段的聯接。</font><font face="Arial">Mode </font><font
face="宋體" lang="ZH-CN">的值可為</font><font face="Arial">bmRead</font><font
face="宋體" lang="ZH-CN">、</font><font face="Arial">bmWrite</font><font face="宋體"
lang="ZH-CN">和</font><font face="Arial">bmReadWrite</font><font face="宋體"
lang="ZH-CN">。</p>
<p> </font><font face="Arial"></p>
<p>20.1.7.2 TBlobStream</font><font face="宋體" lang="ZH-CN">的實現原理</p>
<p> </p>
<p>  說明</font><font face="Arial">TBlobStream</font><font face="宋體"
lang="ZH-CN">對象的實現原理,不可避免地要涉及它的私有域,下面是私有域的定義:</p>
<p> </p>
<p></font><font face="Arial">TBlobStream = class(TStream)</p>
<p>private</p>
<p>FField: TBlobField;</font><font face="宋體" lang="ZH-CN"></p>
<p></font><font face="Arial">FDataSet: TDataSet;</font><font face="宋體" lang="ZH-CN"></p>
<p></font><font face="Arial">FRecord: PChar;</p>
<p>FBuffer: PChar;</p>
<p>FFieldNo: Integer;</p>
<p>FOpened: Boolean;</p>
<p>FModified: Boolean;</p>
<p>FPosition: Longint;</p>
<p></font><font face="宋體" lang="ZH-CN">…</p>
<p></font><font face="Arial">public</p>
<p></font><font face="宋體" lang="ZH-CN">…</p>
<p></font><font face="Arial">end;</p>
<p> </font><font face="宋體" lang="ZH-CN"></p>
<p>  </font><font face="Arial">FField</font><font face="宋體" lang="ZH-CN">是與</font><font
face="Arial">BLOB</font><font face="宋體" lang="ZH-CN">流相聯的數據庫</font><font
face="Arial">BLOB</font><font face="宋體" lang="ZH-CN">域,該域用于</font><font
face="Arial">BLOB</font><font face="宋體" lang="ZH-CN">流的內部訪問。</font><font
face="Arial">FDataSet</font><font face="宋體" lang="ZH-CN">是代表</font><font
face="Arial">FField</font><font face="宋體" lang="ZH-CN">所在的數據庫,它可以是</font><font
face="Arial">TTable</font><font face="宋體" lang="ZH-CN">部件,也可以是</font><font
face="Arial">TQuery </font><font face="宋體" lang="ZH-CN">部件。</font><font
face="Arial">FRecord</font><font face="宋體" lang="ZH-CN">和</font><font face="Arial">FBuffer</font><font
face="宋體" lang="ZH-CN">都是</font><font face="Arial">BLOB</font><font face="宋體"
lang="ZH-CN">流內部使用的緩沖區,用于存儲</font><font face="Arial">FField</font><font
face="宋體" lang="ZH-CN">所在記錄的數據,該數據記錄中不包含</font><font
face="Arial">BLOB</font><font face="宋體" lang="ZH-CN">數據,</font><font
face="Arial">TBlobStream</font><font face="宋體" lang="ZH-CN">使用</font><font
face="Arial">FRecord</font><font face="宋體" lang="ZH-CN">作為調用</font><font
face="Arial">BDE API</font><font face="宋體" lang="ZH-CN">函數的參數值。</font><font
face="Arial">FFieldNo</font><font face="宋體" lang="ZH-CN">代表</font><font
face="Arial">BLOB</font><font face="宋體" lang="ZH-CN">字段的字段號,也用于</font><font
face="Arial">BDE API</font><font face="宋體" lang="ZH-CN">的參數傳遞,</font><font
face="Arial">FOpened</font><font face="宋體" lang="ZH-CN">和</font><font face="Arial">FMocified</font><font
face="宋體" lang="ZH-CN">都是狀態信息,</font><font face="Arial">FPosition</font><font
face="宋體" lang="ZH-CN">表示</font><font face="Arial">BLOB</font><font face="宋體"
lang="ZH-CN">流的當前位置,下面介紹</font><font face="Arial">TBlobStream</font><font
face="宋體" lang="ZH-CN">方法實現。</p>
<p>  </font><font face="Arial">1. Create</font><font face="宋體" lang="ZH-CN">方法和</font><font
face="Arial">Destroy</font><font face="宋體" lang="ZH-CN">方法的實現</p>
<p>  </font><font face="Arial">Create</font><font face="宋體" lang="ZH-CN">方法的功能主要是建立</font><font
face="Arial">BlobStream</font><font face="宋體" lang="ZH-CN">流與</font><font
face="Arial">BLOB</font><font face="宋體" lang="ZH-CN">字段的聯系并初始化某些私有變量。其實現如下:</p>
<p>  </p>
<p></font><font face="Arial">constructor TBlobStream.Create(Field: TBlobField; Mode:
TBlobStreamMode);</p>
<p>var</p>
<p>OpenMode: DbiOpenMode;</p>
<p>begin</p>
<p>FField := Field;</p>
<p>FDataSet := Field.DataSet;</p>
<p>FRecord := FDataSet.ActiveBuffer;</p>
<p>FFieldNo := Field.FieldNo;</p>
<p>if FDataSet.State = dsFilter then</p>
<p>DBErrorFmt(SNoFieldAccess, [FField.DisplayName]);</p>
<p>if not FField.FModified then</p>
<p>begin</p>
<p>if Mode = bmRead then</p>
<p>begin</p>
<p>FBuffer := AllocMem(FDataSet.RecordSize);</p>
<p>FRecord := FBuffer;</p>
<p>if not FDataSet.GetCurrentRecord(FBuffer) then Exit;</p>
<p>OpenMode := dbiReadOnly;</p>
<p>end else</p>
<p>begin</p>
<p>if not (FDataSet.State in [dsEdit, dsInsert]) then DBError(SNotEditing);</p>
<p>OpenMode := dbiReadWrite;</p>
<p>end;</p>
<p>Check(DbiOpenBlob(FDataSet.Handle, FRecord, FFieldNo, OpenMode));</p>
<p>end;</p>
<p>FOpened := True;</p>
<p>if Mode = bmWrite then Truncate;</p>
<p>end;</p>
<p> </p>
<p></font><font face="宋體" lang="ZH-CN"> 該方法首先是用傳入的</font><font
face="Arial">Field</font><font face="宋體" lang="ZH-CN">參數給</font><font
face="Arial">FField</font><font face="宋體" lang="ZH-CN">,</font><font face="Arial">FDataSet</font><font
face="宋體" lang="ZH-CN">,</font><font face="Arial">FRecord</font><font face="宋體"
lang="ZH-CN">和</font><font face="Arial">FFieldNo</font><font face="宋體" lang="ZH-CN">賦值。方法中用</font><font
face="Arial">AllocMem</font><font face="宋體" lang="ZH-CN">按當前記錄大小分配內存,并將指針賦給</font><font
face="Arial">FBuffer</font><font face="宋體" lang="ZH-CN">,用</font><font
face="Arial">DataSet</font><font face="宋體" lang="ZH-CN">部件的</font><font
face="Arial">GetCurrentRecord</font><font face="宋體" lang="ZH-CN">方法,將記錄的值賦給</font><font
face="Arial">FBuffer</font><font face="宋體" lang="ZH-CN">,但不包括</font><font
face="Arial">BLOB</font><font face="宋體" lang="ZH-CN">數據。</p>
<p>  方法中用到的</font><font face="Arial">DbiOpenBlob</font><font face="宋體"
lang="ZH-CN">函數是</font><font face="Arial">BDE</font><font face="宋體" lang="ZH-CN">的</font><font
face="Arial">API</font><font face="宋體" lang="ZH-CN">函數,該函數用于打開數據庫中的</font><font

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品三级在线观看| 亚洲国产精品av| 色婷婷激情综合| 99久久99久久久精品齐齐| 国产精品白丝jk白祙喷水网站| 国产乱子伦一区二区三区国色天香| 日本三级亚洲精品| 精品中文字幕一区二区小辣椒| 久久99精品国产91久久来源| 国产乱码精品一区二区三区五月婷| 国产在线播精品第三| 国产99精品国产| 91小视频在线| 欧美日韩精品一区二区三区蜜桃 | 久久国内精品视频| 久久66热偷产精品| 大美女一区二区三区| 91美女片黄在线观看91美女| 欧美偷拍一区二区| 日韩女优制服丝袜电影| 久久精品亚洲精品国产欧美 | 亚洲天天做日日做天天谢日日欢 | 7777精品伊人久久久大香线蕉完整版 | 国产精品综合视频| 成人免费av资源| 欧美在线不卡一区| 精品久久久久久久久久久久久久久久久| 欧美一卡二卡在线观看| 久久午夜老司机| 一片黄亚洲嫩模| 久久99久久99| 91黄色免费看| 亚洲精品一区二区三区在线观看 | 欧美精品一区二| 亚洲精品免费在线观看| 久久91精品久久久久久秒播| 91免费版在线| 久久婷婷国产综合精品青草 | 日韩福利视频网| 国产不卡视频在线播放| 欧美日韩电影在线| 中文在线免费一区三区高中清不卡| 亚洲高清免费观看高清完整版在线观看| 久久精品久久99精品久久| 色久优优欧美色久优优| 久久精品欧美一区二区三区不卡 | 99国产精品久久久| 日韩欧美高清dvd碟片| 亚洲女厕所小便bbb| 久久成人久久爱| 欧美日韩一区二区在线观看| 欧美精品一区二区蜜臀亚洲| 亚洲成精国产精品女| caoporen国产精品视频| 亚洲精品一区二区三区在线观看 | 国产日韩综合av| 美女www一区二区| 欧美精品在线观看播放| 亚洲男女毛片无遮挡| 成人国产电影网| 国产亚洲自拍一区| 国产精品夜夜嗨| 久久青草国产手机看片福利盒子| 免费成人美女在线观看| 日韩毛片视频在线看| 国产成人午夜99999| 精品久久久久香蕉网| 毛片av一区二区三区| 欧美一级日韩一级| 婷婷久久综合九色综合伊人色| 欧美优质美女网站| 亚洲免费视频中文字幕| 97国产一区二区| 亚洲免费在线看| 色婷婷av一区二区| 亚洲综合精品久久| 色欧美片视频在线观看| 日韩美女啊v在线免费观看| 99久久免费精品| 亚洲免费观看高清| 在线观看www91| 午夜精品在线视频一区| 3d成人h动漫网站入口| 麻豆精品在线看| 久久久激情视频| 成人激情黄色小说| 一区二区三区四区激情| 欧美在线视频全部完| 日韩激情在线观看| 久久天天做天天爱综合色| 国产+成+人+亚洲欧洲自线| 激情综合一区二区三区| 日本一区二区三区高清不卡| 不卡的av网站| 午夜久久久久久电影| 欧美成人欧美edvon| 国产成人超碰人人澡人人澡| 最新不卡av在线| 91精品国产综合久久婷婷香蕉| 久久国产精品99精品国产 | 91精品婷婷国产综合久久性色| 日韩成人一区二区| 久久久综合九色合综国产精品| 国产成人aaa| 亚洲成人第一页| 国产亚洲精品bt天堂精选| 99v久久综合狠狠综合久久| 丝袜美腿高跟呻吟高潮一区| 久久一留热品黄| 欧美影片第一页| 国产福利一区二区| 亚洲3atv精品一区二区三区| 久久久久久麻豆| 91国内精品野花午夜精品| 狠狠色综合播放一区二区| 中文字幕在线不卡国产视频| 91精品婷婷国产综合久久性色 | 精品欧美一区二区三区精品久久| 国产麻豆成人精品| 亚洲成人先锋电影| 中文字幕国产一区二区| 91精品在线一区二区| 91婷婷韩国欧美一区二区| 老司机精品视频线观看86| 亚洲精品乱码久久久久久日本蜜臀| 精品久久久网站| 欧美一区在线视频| 91色.com| 成人激情校园春色| 狠狠久久亚洲欧美| 日韩激情视频在线观看| 亚洲精品中文在线影院| 日本一区二区电影| 精品成人佐山爱一区二区| 日韩一区二区精品| 欧美色欧美亚洲另类二区| 94-欧美-setu| 日韩欧美一区二区免费| 在线亚洲精品福利网址导航| 国产99久久久精品| 国产成人免费视频精品含羞草妖精| 秋霞影院一区二区| 日本网站在线观看一区二区三区 | 日韩高清不卡一区| 亚洲国产三级在线| 亚洲理论在线观看| 亚洲免费观看高清完整版在线| 日本一区二区在线不卡| 国产精品美女一区二区三区| 国产三级精品三级| 国产精品美女视频| 久久久久高清精品| 久久久精品国产99久久精品芒果| 精品人在线二区三区| www激情久久| 久久久91精品国产一区二区精品| 久久久不卡网国产精品一区| 久久蜜桃av一区精品变态类天堂| 久久久久国色av免费看影院| 久久久一区二区三区| 欧美激情一区在线观看| 国产精品你懂的在线欣赏| 最新热久久免费视频| 亚洲欧洲一区二区三区| 亚洲一区二区三区四区在线| 亚洲成人免费视| 麻豆精品新av中文字幕| 国产一区999| 91香蕉视频污| 51精品久久久久久久蜜臀| 日韩免费看的电影| 国产精品色眯眯| 亚洲午夜av在线| 美女精品自拍一二三四| 国产iv一区二区三区| 在线观看国产精品网站| 日韩欧美国产一二三区| 欧美高清在线一区二区| 一区二区三区小说| 久久国产精品第一页| 成人性生交大片免费看中文| 欧美在线播放高清精品| 精品日韩一区二区三区| 最新成人av在线| 免费成人在线观看| 91日韩精品一区| 精品久久人人做人人爽| 一区二区在线观看视频在线观看| 日韩电影在线免费看| 国产91丝袜在线18| 欧美在线免费观看亚洲| 国产色产综合色产在线视频| 亚洲va欧美va国产va天堂影院| 国产乱子伦视频一区二区三区| 在线中文字幕一区| 国产日韩欧美在线一区| 蜜桃视频在线一区| 欧美在线小视频| 国产精品网站在线| 激情综合网天天干|