クラス SQLiteCSLib.SQLiteDataReader

SQLiteデータリーダ. [詳細]

SQLiteCSLib.SQLiteDataReaderのコラボレーション図
Collaboration graph
[凡例]

Public メソッド

 SQLiteDataReader (OSQLiteStmtWrap stmt)
 コンストラクタ
bool NextResult ()
 次にステップ
void Close ()
 閉じる
bool Read ()
 次にステップ
DataTable GetSchemaTable ()
 データスキーマ作成
void Dispose ()
 破棄
string GetName (int i)
 カラム名取得
string GetColumnTableName (int i)
 カラムテーブル名取得 ※独特のメソッド
string GetColumnOriginalName (int i)
 カラムの元名称取得 ※独特のメソッド
string GetColumnDecltype (int i)
 カラムの宣言型情報取得 ※独特のメソッド
int GetInt32 (int i)
 整数取得
short GetInt16 (int i)
 16ビット整数取得
bool GetBoolean (int i)
 真偽取得 ※擬似サポート
float GetFloat (int i)
 浮動小数点取得
string GetString (int i)
 文字列取得
double GetDouble (int i)
 浮動小数点取得
decimal GetDecimal (int i)
 実数取得
long GetInt64 (int i)
 長精度整数型取得
long GetBytes (int i, long fieldOffset, byte[] buffer, int bufferoffset, int length)
 バイナリ取得
object GetValue (int i)
 値取得
int GetValues (object[] values)
 全カラム取得
string GetDataTypeName (int i)
 型名取得
Type GetFieldType (int i)
 型取得
bool IsDBNull (int i)
 NULLチェック.
byte GetByte (int i)
 バイト値取得 ※未サポート
Guid GetGuid (int i)
 GUID取得 ※未サポート.
DateTime GetDateTime (int i)
 日付取得 ※未サポート
int GetOrdinal (string name)
 Ordinal取得 ※未サポート.
IDataReader GetData (int i)
 レコード取得 ※未サポート
long GetChars (int i, long fieldoffset, char[] buffer, int bufferoffset, int length)
 文字列取得 ※未サポート
char GetChar (int i)
 文字取得 ※未サポート

Protected 変数

OSQLiteStmtWrap m_stmt = null
 SQL実行結果.
int m_affected = 0
 影響行数

プロパティ

int RecordsAffected [get]
 影響行数プロパティ
bool IsClosed [get]
 閉じる確認プロパティ
int Depth [get]
 入れ子の深さプロパティ
int FieldCount [get]
 カラム数プロパティ
object this [string name] [get]
 値取得

説明

SQLiteデータリーダ.

SQLiteDataReader.cs12 行で定義されています。


コンストラクタとデストラクタ

SQLiteCSLib.SQLiteDataReader.SQLiteDataReader ( OSQLiteStmtWrap  stmt  ) 

コンストラクタ

引数:
stmt STMTラッパー

SQLiteDataReader.cs23 行で定義されています。

00024                 {
00025                         m_stmt = stmt;
00026                 }


メソッド

void SQLiteCSLib.SQLiteDataReader.Close (  ) 

閉じる

SQLiteDataReader.cs73 行で定義されています。

00074                 {
00075                         if( m_stmt != null )
00076                         {
00077                                 m_stmt.Dispose();
00078                                 m_stmt = null;
00079                         }
00080                 }

void SQLiteCSLib.SQLiteDataReader.Dispose (  ) 

破棄

SQLiteDataReader.cs159 行で定義されています。

00160                 {
00161                         Close();
00162                 }

bool SQLiteCSLib.SQLiteDataReader.GetBoolean ( int  i  ) 

真偽取得 ※擬似サポート

引数:
i カラム位置(0起点)
戻り値:
真偽値

SQLiteDataReader.cs244 行で定義されています。

00245                 {
00246                         short sVal = (short)m_stmt.getInt( i );
00247 
00248                         return ( sVal == 0 ) ? false:true;
00249                 }

byte SQLiteCSLib.SQLiteDataReader.GetByte ( int  i  ) 

バイト値取得 ※未サポート

引数:
i カラム位置(0起点)
戻り値:
バイト値

SQLiteDataReader.cs452 行で定義されています。

00453                 {
00454                         return 0;
00455                 }

long SQLiteCSLib.SQLiteDataReader.GetBytes ( int  i,
long  fieldOffset,
byte[]  buffer,
int  bufferoffset,
int  length 
)

バイナリ取得

引数:
i カラム位置(0起点)
fieldOffset 読み取り操作を開始するフィールド内のインデックス
buffer バイト ストリームの読み込み先のバッファ
bufferoffset 読み込みを開始する buffer のインデックス
length 読み込むバイト数
戻り値:
読み込みバイト数

SQLiteDataReader.cs310 行で定義されています。

00311                 {
00312                         if( buffer == null )
00313                         {
00314                                 return m_stmt.getSize( i );
00315                         }
00316 
00317                         MemoryStream blobstream = m_stmt.getBlob( i );
00318                         blobstream.Seek( fieldOffset, SeekOrigin.Begin );
00319                         if( blobstream.Length <= fieldOffset )
00320                                 return 0;
00321 
00322                         long lLen = blobstream.Length - fieldOffset;
00323                         lLen = ( lLen < (bufferoffset+length) ) ? lLen:(bufferoffset+length);
00324 
00325                         return (long)blobstream.Read( buffer, bufferoffset, (int)lLen );
00326                 }

char SQLiteCSLib.SQLiteDataReader.GetChar ( int  i  ) 

文字取得 ※未サポート

引数:
i カラム位置(0起点)
戻り値:
文字

SQLiteDataReader.cs528 行で定義されています。

00529                 {
00530                         return '¥0';
00531                 }

long SQLiteCSLib.SQLiteDataReader.GetChars ( int  i,
long  fieldoffset,
char[]  buffer,
int  bufferoffset,
int  length 
)

文字列取得 ※未サポート

引数:
i カラム位置(0起点)
fieldoffset 読み取り操作を開始する行内のインデックス
buffer バイト ストリームの読み込み先のバッファ
bufferoffset 読み込みを開始する buffer のインデックス
length 読み込むバイト数
戻り値:
実際に読み込んだ文字数

SQLiteDataReader.cs517 行で定義されています。

00518                 {
00519                         return 0;
00520                 }

string SQLiteCSLib.SQLiteDataReader.GetColumnDecltype ( int  i  ) 

カラムの宣言型情報取得 ※独特のメソッド

引数:
i カラム位置(0起点)
戻り値:
カラムの宣言型情報

SQLiteDataReader.cs213 行で定義されています。

00214                 {
00215                         return m_stmt.getColumnDecltype( i );
00216                 }

string SQLiteCSLib.SQLiteDataReader.GetColumnOriginalName ( int  i  ) 

カラムの元名称取得 ※独特のメソッド

引数:
i カラム位置(0起点)
戻り値:
カラムの元名称

SQLiteDataReader.cs202 行で定義されています。

00203                 {
00204                         return m_stmt.getColumnOriginalName( i );
00205                 }

string SQLiteCSLib.SQLiteDataReader.GetColumnTableName ( int  i  ) 

カラムテーブル名取得 ※独特のメソッド

引数:
i カラム位置(0起点)
戻り値:
カラムテーブル名

SQLiteDataReader.cs191 行で定義されています。

00192                 {
00193                         return m_stmt.getColumnTableName( i );
00194                 }

IDataReader SQLiteCSLib.SQLiteDataReader.GetData ( int  i  ) 

レコード取得 ※未サポート

引数:
i カラム位置(0起点)
戻り値:
データリーダ

SQLiteDataReader.cs502 行で定義されています。

00503                 {
00504                         return null;
00505                 }

string SQLiteCSLib.SQLiteDataReader.GetDataTypeName ( int  i  ) 

型名取得

引数:
i カラム位置(0起点)
戻り値:
型名(.Net型)

SQLiteDataReader.cs388 行で定義されています。

00389                 {
00390                         return GetValue( i ).GetType().Name;
00391                 }

DateTime SQLiteCSLib.SQLiteDataReader.GetDateTime ( int  i  ) 

日付取得 ※未サポート

引数:
i カラム位置(0起点)
戻り値:
日付値

SQLiteDataReader.cs474 行で定義されています。

00475                 {
00476                         return new DateTime ();
00477                 }

decimal SQLiteCSLib.SQLiteDataReader.GetDecimal ( int  i  ) 

実数取得

引数:
i カラム位置(0起点)
戻り値:
実数値

SQLiteDataReader.cs286 行で定義されています。

00287                 {
00288                         return (decimal)m_stmt.getDouble( i );
00289                 }

double SQLiteCSLib.SQLiteDataReader.GetDouble ( int  i  ) 

浮動小数点取得

引数:
i カラム位置(0起点)
戻り値:
浮動小数点値

SQLiteDataReader.cs276 行で定義されています。

00277                 {
00278                         return m_stmt.getDouble( i );
00279                 }

Type SQLiteCSLib.SQLiteDataReader.GetFieldType ( int  i  ) 

型取得

引数:
i カラム位置(0起点)
戻り値:

SQLiteDataReader.cs398 行で定義されています。

00399                 {
00400                         object fieldval = GetValue( i );
00401                         if( fieldval == null )
00402                                 return null;
00403                         return fieldval.GetType();
00404                 }

float SQLiteCSLib.SQLiteDataReader.GetFloat ( int  i  ) 

浮動小数点取得

引数:
i カラム位置(0起点)
戻り値:
浮動小数点値

SQLiteDataReader.cs256 行で定義されています。

00257                 {
00258                         return (float)m_stmt.getDouble( i );
00259                 }

Guid SQLiteCSLib.SQLiteDataReader.GetGuid ( int  i  ) 

GUID取得 ※未サポート.

引数:
i カラム位置(0起点)
戻り値:
GUID

SQLiteDataReader.cs463 行で定義されています。

00464                 {
00465                         return new Guid ();
00466                 }

short SQLiteCSLib.SQLiteDataReader.GetInt16 ( int  i  ) 

16ビット整数取得

引数:
i カラム位置(0起点)
戻り値:
16ビット整数値

SQLiteDataReader.cs233 行で定義されています。

00234                 {
00235                         return (short)m_stmt.getInt( i );
00236                 }

int SQLiteCSLib.SQLiteDataReader.GetInt32 ( int  i  ) 

整数取得

引数:
i カラム位置(0起点)
戻り値:
整数値

SQLiteDataReader.cs223 行で定義されています。

00224                 {
00225                         return m_stmt.getInt( i );
00226                 }

long SQLiteCSLib.SQLiteDataReader.GetInt64 ( int  i  ) 

長精度整数型取得

引数:
i カラム位置(0起点)
戻り値:
長精度整数値

SQLiteDataReader.cs296 行で定義されています。

00297                 {
00298                         return m_stmt.getInt64( i );
00299                 }

string SQLiteCSLib.SQLiteDataReader.GetName ( int  i  ) 

カラム名取得

引数:
i カラム位置(0起点)
戻り値:
カラム名

SQLiteDataReader.cs180 行で定義されています。

00181                 {
00182                         return m_stmt.getColumnName( i );
00183                 }

int SQLiteCSLib.SQLiteDataReader.GetOrdinal ( string  name  ) 

Ordinal取得 ※未サポート.

引数:
name フィールド名
戻り値:
カラム位置(0起点),-1..無し

SQLiteDataReader.cs485 行で定義されています。

00486                 {
00487                         for( int iIdx=0; iIdx<m_stmt.column_count(); iIdx++ )
00488                         {
00489                                 if( name.ToUpper() == m_stmt.getColumnName( iIdx ).ToUpper() )
00490                                         return iIdx;
00491                         }
00492 
00493                         return -1;
00494                 }

DataTable SQLiteCSLib.SQLiteDataReader.GetSchemaTable (  ) 

データスキーマ作成

戻り値:
DataTableクラス(インメモリ データ)

SQLiteDataReader.cs115 行で定義されています。

00116                 {
00117                         DataTable dt = new DataTable();
00118 
00119                         int iColCnt = -1;
00120 
00121                         while( Read() == true )
00122                         {
00123                                 if( iColCnt == -1 )
00124                                 {
00125                                         iColCnt = m_stmt.column_count();
00126 
00127                                         for( int iCol=0; iCol<iColCnt; iCol++ )
00128                                         {
00129                                                 //カラム作成
00130                                                 DataColumn dc = new DataColumn();
00131                                                 Type fieldtype = GetFieldType( iCol );
00132                                                 if( fieldtype != null )
00133                                                 {
00134                                                         dc.DataType = fieldtype;
00135                                                 }
00136                                                 dc.Caption = m_stmt.getColumnName( iCol );
00137                                                 dc.ColumnName = dc.Caption;
00138                                                 dt.Columns.Add( dc );
00139                                         }
00140                                 }
00141 
00142                                 //値セット
00143                                 object[] rowdata = new object[iColCnt];
00144                                 int iResCnt = GetValues(rowdata);
00145                                 DataRow row = dt.NewRow();
00146                                 for( int iIdx=0; iIdx<iResCnt; iIdx++ )
00147                                 {
00148                                         row[ dt.Columns[iIdx] ] = rowdata[ iIdx ] ;
00149                                 }
00150                                 dt.Rows.Add( row );
00151                         }
00152 
00153                         return dt;
00154                 }

string SQLiteCSLib.SQLiteDataReader.GetString ( int  i  ) 

文字列取得

引数:
i カラム位置(0起点)
戻り値:
文字列値

SQLiteDataReader.cs266 行で定義されています。

00267                 {
00268                         return m_stmt.getText( i );
00269                 }

object SQLiteCSLib.SQLiteDataReader.GetValue ( int  i  ) 

値取得

引数:
i カラム位置(0起点)
戻り値:
値(long,double,string,byte[],null)

SQLiteDataReader.cs333 行で定義されています。

00334                 {
00335                         switch( m_stmt.getType( i ) )
00336                         {
00337                                 case DATATYPE.INTEGER:
00338                                         return GetInt64( i );
00339 
00340                                 case DATATYPE.FLOAT:
00341                                         return GetDouble( i );
00342 
00343                                 case DATATYPE.TEXT:
00344                                         return GetString( i );
00345 
00346                                 case DATATYPE.BLOB:
00347                                 {
00348                                         long binsize = GetBytes( i, 0, null, 0, 0 );
00349                                         byte[] val = new byte[binsize];
00350                                         GetBytes( i, 0, val, 0, (int)binsize );
00351                                         return val;
00352                                 }
00353 
00354                                 case DATATYPE.DBNULL:
00355                                         return null;
00356                         }
00357 
00358                         return null;
00359                 }

int SQLiteCSLib.SQLiteDataReader.GetValues ( object[]  values  ) 

全カラム取得

引数:
values セットされる配列(与える配列数分)
戻り値:
結果セット数

SQLiteDataReader.cs366 行で定義されています。

00367                 {
00368                         int iResCount = 0;
00369 
00370                         int iResultCol = m_stmt.column_count();
00371                         for( int iValIdx=0; iValIdx<values.Length; iValIdx++ )
00372                         {
00373                                 if( iValIdx >= iResultCol )
00374                                         break;
00375 
00376                                 values[ iValIdx ] = GetValue( iValIdx );
00377                                 iResCount++;
00378                         }
00379                         
00380                         return iResCount;
00381                 }

bool SQLiteCSLib.SQLiteDataReader.IsDBNull ( int  i  ) 

NULLチェック.

引数:
i カラム位置(0起点)
戻り値:
真偽値

SQLiteDataReader.cs439 行で定義されています。

00440                 {
00441                         if( m_stmt.getType( i ) == DATATYPE.DBNULL )
00442                                 return true;
00443                         return false;
00444                 }

bool SQLiteCSLib.SQLiteDataReader.NextResult (  ) 

次にステップ

戻り値:

SQLiteDataReader.cs62 行で定義されています。

00063                 {
00064                         if( m_stmt.Step() == ResultEnum.ROW )
00065                                 return true;
00066 
00067                         return false;
00068                 }

bool SQLiteCSLib.SQLiteDataReader.Read (  ) 

次にステップ

戻り値:

SQLiteDataReader.cs86 行で定義されています。

00087                 {
00088                         ResultEnum iRes = m_stmt.Step();
00089                         if( iRes == ResultEnum.ROW )
00090                                 return true;
00091 
00092                         if( iRes != ResultEnum.DONE &&
00093                                 iRes != ResultEnum.OK &&
00094                                 iRes != ResultEnum.NOTFOUND )
00095                                 throw new SQLiteException( m_stmt );
00096 
00097                         return false;
00098                 }


構造体

影響行数

SQLiteDataReader.cs31 行で定義されています。

SQL実行結果.

SQLiteDataReader.cs17 行で定義されています。


プロパティ

int SQLiteCSLib.SQLiteDataReader.Depth [get]

入れ子の深さプロパティ

SQLiteDataReader.cs104 行で定義されています。

int SQLiteCSLib.SQLiteDataReader.FieldCount [get]

カラム数プロパティ

SQLiteDataReader.cs168 行で定義されています。

bool SQLiteCSLib.SQLiteDataReader.IsClosed [get]

閉じる確認プロパティ

SQLiteDataReader.cs48 行で定義されています。

int SQLiteCSLib.SQLiteDataReader.RecordsAffected [get]

影響行数プロパティ

SQLiteDataReader.cs37 行で定義されています。

object SQLiteCSLib.SQLiteDataReader.this[string name] [get]

値取得

SQLiteDataReader.cs410 行で定義されています。


このクラスの説明は次のファイルから生成されました:

SQLite3 Wrap ADO For .Net1.1 or Compact Frameworkに対してMon Nov 9 13:42:14 2009に生成されました。  doxygen 1.6.1