亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
蜜臀va亚洲va欧美va天堂| 亚洲日本护士毛茸茸| 91久久一区二区| 成人18视频日本| www.日本不卡| av中文字幕在线不卡| 成人免费高清视频| av一区二区三区在线| 97se亚洲国产综合自在线| 色综合天天综合在线视频| 欧美在线一二三| 欧美体内she精高潮| 欧美剧情电影在线观看完整版免费励志电影 | 国产一区二区精品久久| 国产一区二三区| 成人ar影院免费观看视频| 99久久99久久精品免费观看| 不卡的看片网站| 色偷偷88欧美精品久久久| 欧洲一区二区三区在线| 欧美日韩国产综合视频在线观看| 欧美精品第1页| 久久婷婷国产综合精品青草| 樱花草国产18久久久久| 亚州成人在线电影| 国产一区二区三区在线看麻豆| 国产成人aaa| 欧洲色大大久久| 日韩免费视频一区二区| 久久精品综合网| 一区二区三区高清在线| 久久99热这里只有精品| 成人国产亚洲欧美成人综合网| 日本久久一区二区三区| 91精品欧美一区二区三区综合在| 久久精品一级爱片| 亚洲一区二区三区四区中文字幕| 麻豆成人91精品二区三区| av中文字幕一区| 日韩亚洲欧美高清| 亚洲免费大片在线观看| 久久国产精品99精品国产 | 亚洲一级在线观看| 国产一区二区三区不卡在线观看 | 欧美一区二区三区视频在线| 亚洲国产高清在线| 免费在线观看一区二区三区| 成人激情小说乱人伦| 日韩一区二区在线观看视频播放| 国产精品美女久久久久久2018| 日韩黄色小视频| 99精品一区二区| 精品人在线二区三区| 一区二区三区四区精品在线视频| 精品一区二区三区在线播放视频| 在线看日本不卡| 亚洲欧洲日韩综合一区二区| 久久99精品一区二区三区三区| 欧美优质美女网站| 中文字幕一区二区日韩精品绯色| 玖玖九九国产精品| 制服.丝袜.亚洲.另类.中文| 亚洲三级在线免费| 成人久久视频在线观看| 久久久国际精品| 激情文学综合网| 日韩欧美成人激情| 日韩在线卡一卡二| 777欧美精品| 亚洲成人在线免费| 欧美在线一二三| 亚洲午夜视频在线观看| 色婷婷激情综合| 亚洲欧洲成人精品av97| 国产福利一区二区三区在线视频| 精品久久人人做人人爰| 极品少妇一区二区三区精品视频| 欧美久久久久久久久中文字幕| 亚洲无人区一区| 欧美日韩久久久一区| 亚洲成人免费观看| 91毛片在线观看| 亚洲精品videosex极品| 欧美中文字幕亚洲一区二区va在线| 亚洲人妖av一区二区| 成人av午夜电影| 日韩美女久久久| 欧美亚洲国产怡红院影院| 亚洲精品乱码久久久久久日本蜜臀| 99免费精品视频| 一区av在线播放| 在线精品国精品国产尤物884a| 亚洲黄色片在线观看| 欧美日韩一级二级| 日韩国产一二三区| 日韩精品一区二区三区蜜臀| 国产一区二区三区在线观看免费| 国产欧美精品一区二区色综合朱莉| 国产成人夜色高潮福利影视| 中文字幕在线免费不卡| 欧美影院一区二区| 九色|91porny| 国产精品久久久久一区二区三区 | 日韩经典一区二区| 久久久蜜桃精品| 色伊人久久综合中文字幕| 日日摸夜夜添夜夜添国产精品 | aaa亚洲精品一二三区| 亚洲曰韩产成在线| www亚洲一区| 色婷婷亚洲精品| 免费视频一区二区| 中文字幕一区二区在线播放| 欧美精三区欧美精三区| 国产99一区视频免费 | 日本视频在线一区| 国产精品护士白丝一区av| 欧美日本精品一区二区三区| 国产精品综合二区| 亚洲成人一区二区在线观看| 久久精品欧美一区二区三区不卡| 91黄视频在线观看| 国产.欧美.日韩| 国产精品一区二区果冻传媒| 亚洲在线视频网站| 国产精品毛片久久久久久| 91麻豆精品国产91久久久久久| 粉嫩高潮美女一区二区三区| 日日夜夜免费精品| 亚洲欧美一区二区不卡| 久久夜色精品国产噜噜av| 欧美三级视频在线观看| 9色porny自拍视频一区二区| 久久99精品国产.久久久久久| 亚洲精品老司机| 国产精品久久久久一区| 久久综合久色欧美综合狠狠| 欧美日本在线一区| 在线一区二区三区四区五区| 国产91精品露脸国语对白| 久久精品国产第一区二区三区| 亚洲最大成人综合| 自拍偷拍欧美精品| 国产精品久久久久毛片软件| 久久精品夜夜夜夜久久| 精品国产自在久精品国产| 91精品国产色综合久久ai换脸| 99久久精品国产毛片| 高清国产一区二区| 岛国一区二区三区| 国产精品一区久久久久| 国产在线精品一区二区不卡了 | 激情综合网天天干| 青青草原综合久久大伊人精品优势 | 欧美私模裸体表演在线观看| 91免费版在线| 一本大道av一区二区在线播放| 成人午夜在线播放| 成人免费毛片嘿嘿连载视频| 国产91精品入口| 91视频精品在这里| 欧美在线一区二区三区| 欧美日韩国产色站一区二区三区| 欧美美女bb生活片| 欧美一区午夜视频在线观看| 日韩亚洲欧美在线观看| 欧美xxxxxxxx| 国产情人综合久久777777| 国产精品嫩草影院av蜜臀| 中文字幕在线一区| 亚洲一级二级在线| 日韩激情一二三区| 国产一区二区三区黄视频| 国产成a人无v码亚洲福利| 波多野结衣欧美| 91成人免费在线| 欧美成人一区二区三区| 国产欧美一区二区精品性色超碰| 中文字幕第一区二区| 一区二区三区高清在线| 日本亚洲电影天堂| 成人精品在线视频观看| 在线一区二区三区四区五区| 日韩欧美一区二区免费| 国产精品久久久久一区二区三区共| 一区二区三区欧美视频| 蜜臀精品久久久久久蜜臀| 成人午夜在线免费| 欧美区在线观看| 中文一区二区在线观看| 亚洲一二三四区| 国产精品亚洲第一区在线暖暖韩国| 99久久久免费精品国产一区二区| 在线播放日韩导航| 一色屋精品亚洲香蕉网站| 天天爽夜夜爽夜夜爽精品视频| 国产一区二区伦理| 欧美日韩国产高清一区二区| 国产日产欧美一区| 日韩va欧美va亚洲va久久|