指定した列オフセットからの文字ストリームを、配列としてバッファに読み込みます。読み込みは、指定したバッファ オフセットから開始されます。
Public Overridable Function GetChars( _
ByVal i As Integer, _ ByVal dataIndex As Long, _ ByVal buffer() As Char, _ ByVal bufferIndex As Integer, _ ByVal length As Integer _) As Long Implements IDataRecord.GetChars
[C#]
public virtual long GetChars(inti,longdataIndex,char[] buffer,intbufferIndex,intlength);
[C++]
public: virtual __int64 GetChars(inti,__int64dataIndex,__wchar_tbuffer __gc[],intbufferIndex,intlength);
[JScript]
public function GetChars(
i : int,dataIndex : long,buffer : Char[],bufferIndex : int,length : int) : long;
パラメータ
- i
列の 0 から始まる序数。 - dataIndex
読み込みを開始する行内のインデックス。 - buffer
データのコピー先のバッファ。 - bufferIndex
読み取り操作を開始する buffer のインデックス。 - length
読み取り対象の最大文字数。
戻り値
実際に読み込まれた文字数。
実装
解説
GetChars は、フィールド内で利用可能な文字数を返します。ほとんどの場合、これは正確なフィールド長です。ただし、既に GetChars を使用してフィールドから文字を取得している場合は、返される文字数が、フィールドの実際の長さよりも小さくなることがあります。これは、 SqlDataReader が大きいデータ構造体をバッファに読み込んでいるときなどに起こります。詳細については、 CommandBehavior の SequentialAccess 設定のトピックを参照してください。
フィールドの末尾に達した場合は、実際に読み込まれる文字数が、要求した文字数より少なくなることがあります。 null 参照 (Visual Basic では Nothing) のバッファを渡すと、 GetChars は、文字単位のフィールド長を返します。
変換は実行されません。したがって、取得されたデータは既に文字配列である必要があります。
メモ CommandBehavior が SequentialAccess に設定されている場合は、 GetChars を使用して VarChar 列をチャンクとして読み取ることはできません。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET
参照
SqlDataReader クラス | SqlDataReader メンバ | System.Data.SqlClient 名前空間