引数
このメソッドの引数は、次のとおりです。
引数 | 説明 |
---|---|
ByteArray |
データを格納するバイト配列の最初の要素。
|
offset |
データのコピー前にスキップするフィールド内のバイト数。 |
numbytes |
コピーするバイト数。 |
備考
可能な場合、GetChunkByte
メソッドは、ローカル・キャッシュから指定されたバイト数を取り出します。ただし、一部のデータは、リソース節約のために、ローカルに格納されない場合があります。この場合、GetChunkByte
メソッドは、必要に応じてデータベースから必要なデータを要求します。この処理の一部として、ダイナセット内のすべてのフィールド(LONGまたはLONG
RAW
型のフィールドを除く)からデータが取り出されて、一貫性検査のためにキャッシュされている値と比較されます。元の部分データのフェッチ後に変更があった場合、GetChunkByte
メソッドは操作を停止し、エラーが発生します。中止の場合、戻される文字列はNull
になります。
LONG
またはLONG
RAW
型のフィールドが65280バイト未満の場合は、GetChunkByte
メソッドを使用せずにValue
プロパティを使用すると、データを速く取り出すことができます。GetChunkByte
メソッドは、別名を付けたLONG
またはLONG
RAW
型のフィールドには使用できません。
例
この例では、GetChunkByte
メソッドを使用してデータベース内のLONG
RAW
型の列を取り出し、ファイルとして保存する方法を示します。この例では、longraw
という列を含んだ表を示すOraDynaset
という有効なダイナセットが存在していると想定しています。このコードをコピーして、フォームの定義セクションに貼り付けてください。このプロシージャは、有効なファイル名を使用してコールしてください。
Sub GetChunkByteExample (FName As String) 'Declare various variables Dim CurSize As Integer, ChunkSize As Long Dim I As Integer, FNum As Integer, CurChunk() As Byte 'Set the size of each chunk ChunkSize = 10240 'Redim CurChunk Array ReDim CurChunk(ChunkSize) frmChunk.MousePointer = HOURGLASS 'Get a free file number FNum = FreeFile 'Open the file Open FName For Binary As #FNum I = 0 'Loop through all of the chunks 'Oracle does not return the size of columns > 64KB. We should loop until the 'length of our block is less than we asked for. Do CurSize = OraDynaset.Fields("type_longraw").GetChunkByte(CurChunk(0), I * ChunkSize, ChunkSize) If CurSize > 0 AND CurSize < ChunkSize Then ReDim CurChunk(CurSize) CurSize = OraDynaset.Fields("type_longraw").GetChunkByte(CurChunk(0), I * ChunkSize, CurSize) End If Put #FNum, , CurChunk 'Write chunk to file. I = I + 1 Loop Until CurSize <= 0 'Close the file. Close FNum frmChunk.MousePointer = DEFAULT End Sub