TNB Library
公開型 | 公開メンバ関数 | 静的公開メンバ関数 | 全メンバ一覧
CTinyMsSqlAccessor クラス

簡易 MS SQL アクセサクラス [詳解]

#include <TnbTinyMsSqlAccessor.h>

+ CTinyMsSqlAccessor の継承関係図

公開型

typedef TNB::CPointerHandleBaseT< SQLHSTMT, TPhFreeStmtHandle > CStmtHandle
 簡易 SQL アクセサ用 STMT ハンドルハンドル. [詳解]
 
enum  EType {
  Type_Null = SQL_TYPE_NULL , Type_Binary = SQL_BINARY , Type_AsciiString = SQL_CHAR , Type_UnicodeString = SQL_WCHAR ,
  Type_DoubleFloat = SQL_DOUBLE , Type_Float = SQL_FLOAT , Type_Integer = SQL_INTEGER , Type_Short = SQL_SMALLINT ,
  Type_TimeStamp = SQL_TYPE_TIMESTAMP , Type_Bit = SQL_BIT
}
 値種類 [詳解]
 

公開メンバ関数

bool Commit (void)
 [設定] コミット. [詳解]
 
bool Connect (LPCTSTR lpszConnect, SQLUSMALLINT options=SQL_DRIVER_NOPROMPT)
 [設定] 接続. [詳解]
 
bool Connect (LPCTSTR lpszDataBaseName, LPCTSTR lpszUserName, LPCTSTR lpszPassword)
 [設定] 接続. [詳解]
 
bool Connect (LPCTSTR lpszDriverName, LPCTSTR lpszDataBaseName, LPCTSTR lpszUserName, LPCTSTR lpszPassword, SQLUSMALLINT options=SQL_DRIVER_NOPROMPT)
 [設定] 接続. [詳解]
 
bool ConnectDataFile (LPCTSTR lpszManageName=NULL)
 [設定] 接続. [詳解]
 
CStatement CreateStatement (void)
 [作成] ステートメント作成. [詳解]
 
bool Disconnect (void)
 [設定] 切断. [詳解]
 
CReturnCode GetLastReturnCode (void) const
 [取得] 戻り値詳細取得. [詳解]
 
bool IsAutoCommit (void)
 [取得] 自動コミット状態確認 [詳解]
 
bool IsConnecting (void) const
 [確認] 接続中か? [詳解]
 
bool IsStarted (void) const
 [確認] 開始している?. [詳解]
 
CPreparedStatement PreparedStatement (LPCTSTR lpszSql)
 [作成] プリペアドステートメント作成. [詳解]
 
bool Rollback (void)
 [設定] ロールバック. [詳解]
 
bool SetAutoCommit (bool isEnable)
 [設定] 自動コミット設定. [詳解]
 
void SetQueryTimeout (DWORD tm)
 [設定] タイムアウト設定. [詳解]
 
bool Start (void)
 [設定] 開始. [詳解]
 
bool Stop (void)
 [設定] 停止. [詳解]
 

静的公開メンバ関数

static bool AttachDataFile (LPCTSTR lpszManageName, LPCTSTR lpszMdfPath, LPCTSTR lpszDriver, LPCTSTR lpszServer=NULL)
 [設定] データファイルのアタッチ. [詳解]
 
static bool BackupDataFile (LPCTSTR lpszBackupFileName, LPCTSTR lpszManageName, LPCTSTR lpszServer=NULL)
 [設定] データファイルのバックアップ. [詳解]
 
static bool DetachDataFile (LPCTSTR lpszManageName, LPCTSTR lpszDriver, LPCTSTR lpszServer=NULL)
 [設定] データファイルのデタッチ. [詳解]
 
static SQLTCHAR * GetSqlChar (CStr &_s, size_t len=0)
 [変換] 文字列ポインタ取得. [詳解]
 
static bool IsDataFileAttached (LPCTSTR lpszManageName, LPCTSTR lpszDriver)
 [確認] データファイルのアタッチ済み?. [詳解]
 
static bool RestoreDataFile (LPCTSTR lpszBackupFileName, LPCTSTR lpszManageName, LPCTSTR lpszServer=NULL)
 [設定] データファイルのリストア. [詳解]
 
static CStr SystemTimeToString (const SYSTEMTIME &time)
 [変換] 時間文字列化. [詳解]
 

詳解

簡易 MS SQL アクセサクラス

AttachDataFile() を使ってアタッチした MDF ファイルに接続し、 SQL を実行することが出来ます。
戻り値を取得することが出来ます。
アタッチ例
// testdb1.mdf を XYZ と言う名前でアタッチ
CTinyMsSqlAccessor::AttachDataFile("XYZ", "c:\\home\\temp\\testdb1.mdf", "SQL Server Native Client 10.0");
static bool AttachDataFile(LPCTSTR lpszManageName, LPCTSTR lpszMdfPath, LPCTSTR lpszDriver, LPCTSTR lpszServer=NULL)
[設定] データファイルのアタッチ.
デタッチ例
// XYZ と言う名前でデタッチ
CTinyMsSqlAccessor::DetachDataFile("XYZ", "SQL Server Native Client 10.0");
static bool DetachDataFile(LPCTSTR lpszManageName, LPCTSTR lpszDriver, LPCTSTR lpszServer=NULL)
[設定] データファイルのデタッチ.
使用例
CTinyMsSqlAccessor sql;
bool r = sql.ConnectDataFile("XYZ");
CTinyMsSqlAccessor::CReturnCode rc = sql.GetLastReturnCode();
if ( r ) {
;
}
TRACE1("ret = %s\n", rc.GetErrorString());
return;
必要ファイル
TnbTinyMsSqlAccessor.h
日付
12/01/20 新規作成
12/01/26 AttachDataFile() のエラーチェックを強化。

TnbTinyMsSqlAccessor.h189 行目に定義があります。

列挙型メンバ詳解

◆ EType

enum EType
inherited

値種類

列挙値
Type_Null 

値なし

Type_Binary 

バイナリ

Type_AsciiString 

ASCII文字列

Type_UnicodeString 

UNICODE文字列

Type_DoubleFloat 

64bit double float 実数

Type_Float 

32bit float 実数

Type_Integer 

32bit signed 整数

Type_Short 

16bit signed 整数

Type_TimeStamp 

タイムスタンプ

Type_Bit 

1bit 値

TnbTinySqlAccessor.h145 行目に定義があります。

関数詳解

◆ AttachDataFile()

static bool AttachDataFile ( LPCTSTR  lpszManageName,
LPCTSTR  lpszMdfPath,
LPCTSTR  lpszDriver,
LPCTSTR  lpszServer = NULL 
)
static

[設定] データファイルのアタッチ.

指定のデータファイルを指定の管理名でデータベースに登録します。

覚え書き
一度アタッチすると、デタッチするまで、残ります。
注意
sqlcmd の応答文字が不明のため、本メソッド実行中にダイアログが出て、ユーザに是非を判断させる可能性があります。
引数
lpszManageName管理名。
lpszMdfPathMDF ファイルのパス。
lpszDriverドライバー名。
lpszServerサーバー名。省略すると .¥SQLEXPRESS になります。
戻り値
true成功。
false失敗。

TnbTinyMsSqlAccessor.h223 行目に定義があります。

◆ BackupDataFile()

static bool BackupDataFile ( LPCTSTR  lpszBackupFileName,
LPCTSTR  lpszManageName,
LPCTSTR  lpszServer = NULL 
)
static

[設定] データファイルのバックアップ.

引数
lpszBackupFileNameバックアップファイル名。
lpszManageName管理名。
lpszServerサーバー名。省略すると .¥SQLEXPRESS になります。
戻り値
true成功。
false失敗。

TnbTinyMsSqlAccessor.h311 行目に定義があります。

◆ Commit()

bool Commit ( void  )
inherited

[設定] コミット.

覚え書き
Start()Connect() している必要があります。
戻り値
true成功。詳細は GetLastReturnCode() で得られます。
false失敗。詳細は GetLastReturnCode() で得られます。

TnbTinySqlAccessor.h1894 行目に定義があります。

◆ Connect() [1/3]

bool Connect ( LPCTSTR  lpszConnect,
SQLUSMALLINT  options = SQL_DRIVER_NOPROMPT 
)
inherited

[設定] 接続.

指定の設定で、データベースと接続します。

覚え書き
Start() していない場合、スタートします。
引数
lpszConnect接続名.
optionsオプション.
戻り値
true成功。詳細は GetLastReturnCode() で得られます。
false失敗。詳細は GetLastReturnCode() で得られます。

TnbTinySqlAccessor.h1789 行目に定義があります。

◆ Connect() [2/3]

bool Connect ( LPCTSTR  lpszDataBaseName,
LPCTSTR  lpszUserName,
LPCTSTR  lpszPassword 
)
inherited

[設定] 接続.

指定の設定で、データベースと接続します。

覚え書き
Start() していない場合、スタートします。
引数
lpszDataBaseNameデータベース名.
lpszUserNameユーザー名
lpszPasswordパスワード
戻り値
true成功。詳細は GetLastReturnCode() で得られます。
false失敗。詳細は GetLastReturnCode() で得られます。

TnbTinySqlAccessor.h1762 行目に定義があります。

◆ Connect() [3/3]

bool Connect ( LPCTSTR  lpszDriverName,
LPCTSTR  lpszDataBaseName,
LPCTSTR  lpszUserName,
LPCTSTR  lpszPassword,
SQLUSMALLINT  options = SQL_DRIVER_NOPROMPT 
)
inherited

[設定] 接続.

指定の設定で、データベースと接続します。

覚え書き
Start() していない場合、スタートします。
引数
lpszDriverNameドライバー名.
lpszDataBaseNameデータベース名.
lpszUserNameユーザー名
lpszPasswordパスワード
optionsオプション.
戻り値
true成功。詳細は GetLastReturnCode() で得られます。
false失敗。詳細は GetLastReturnCode() で得られます。

TnbTinySqlAccessor.h1820 行目に定義があります。

◆ ConnectDataFile()

bool ConnectDataFile ( LPCTSTR  lpszManageName = NULL)

[設定] 接続.

指定の設定で、データベースと接続します。

覚え書き
Start() していない場合、スタートします。
引数
lpszManageName管理名。AttachDataFile() を使い、MDF ファイルに管理名を付けてアタッチしておく必要があります。
戻り値
true成功。詳細は GetLastReturnCode() で得られます。
false失敗。詳細は GetLastReturnCode() で得られます。

TnbTinyMsSqlAccessor.h202 行目に定義があります。

◆ CreateStatement()

CStatement CreateStatement ( void  )
inherited

[作成] ステートメント作成.

戻り値
ステートメント。 CStatement::IsValid() で成功の有無がわかります。

TnbTinySqlAccessor.h1841 行目に定義があります。

◆ DetachDataFile()

static bool DetachDataFile ( LPCTSTR  lpszManageName,
LPCTSTR  lpszDriver,
LPCTSTR  lpszServer = NULL 
)
static

[設定] データファイルのデタッチ.

AttachDataFile() でアタッチしたものをデタッチします。

引数
lpszManageName管理名。
lpszDriverドライバー名。
lpszServerサーバー名。省略すると .¥SQLEXPRESS になります。
戻り値
true成功。
false失敗。

TnbTinyMsSqlAccessor.h276 行目に定義があります。

◆ Disconnect()

bool Disconnect ( void  )
inherited

[設定] 切断.

Connect() で行った接続を切断します。

覚え書き
切断前にコミットしますので、変更を無効にしたい場合、先に Rollback() をコールする必要があります。
戻り値
true成功。詳細は GetLastReturnCode() で得られます。
false失敗。詳細は GetLastReturnCode() で得られます。

TnbTinySqlAccessor.h1734 行目に定義があります。

◆ GetLastReturnCode()

CReturnCode GetLastReturnCode ( void  ) const
inherited

[取得] 戻り値詳細取得.

戻り値
戻り値.

TnbTinySqlAccessor.h1916 行目に定義があります。

◆ GetSqlChar()

static SQLTCHAR * GetSqlChar ( CStr _s,
size_t  len = 0 
)
staticinherited

[変換] 文字列ポインタ取得.

CStr から SQLTCHAR のポインタを取得します( CStr::GetBuffer() を使用 )。

覚え書き
通常使う必要ありません。
引数
[in,out]_s対象。
[in]lenバッファサイズ。
戻り値
文字列ポインタ。 使用後、 _s に対し CStr::ReleaseBuffer() を使用してください。

TnbTinySqlAccessor.h1944 行目に定義があります。

◆ IsAutoCommit()

bool IsAutoCommit ( void  )
inherited

[取得] 自動コミット状態確認

覚え書き
Start()Connect() している必要があります。
戻り値
true自動コミット状態が有効。
false自動コミット状態が無効、か、エラーです。エラーか否かは GetLastReturnCode() で得られます。

TnbTinySqlAccessor.h1862 行目に定義があります。

◆ IsConnecting()

bool IsConnecting ( void  ) const
inherited

[確認] 接続中か?

戻り値
true接続中。
false否。

TnbTinySqlAccessor.h1722 行目に定義があります。

◆ IsDataFileAttached()

static bool IsDataFileAttached ( LPCTSTR  lpszManageName,
LPCTSTR  lpszDriver 
)
static

[確認] データファイルのアタッチ済み?.

覚え書き
AttachDataFile() でアタッチしたもの以外も指定の名前があれば、アタッチ済みになります。
引数
lpszManageName管理名。
lpszDriverドライバー名。
戻り値
trueアタッチ済み。
false否。

TnbTinyMsSqlAccessor.h298 行目に定義があります。

◆ IsStarted()

bool IsStarted ( void  ) const
inherited

[確認] 開始している?.

Start()Connect() を実行すると、SQLアクセス準備が開始されます。

戻り値
true開始している
falseしていない

TnbTinySqlAccessor.h1647 行目に定義があります。

◆ PreparedStatement()

CPreparedStatement PreparedStatement ( LPCTSTR  lpszSql)
inherited

[作成] プリペアドステートメント作成.

引数
lpszSqlSQL 文
戻り値
プリペアド ステートメント。 CStatement::IsValid() で成功の有無がわかります。

TnbTinySqlAccessor.h1851 行目に定義があります。

◆ RestoreDataFile()

static bool RestoreDataFile ( LPCTSTR  lpszBackupFileName,
LPCTSTR  lpszManageName,
LPCTSTR  lpszServer = NULL 
)
static

[設定] データファイルのリストア.

引数
lpszBackupFileNameバックアップファイル名。
lpszManageName管理名。
lpszServerサーバー名。省略すると .¥SQLEXPRESS になります。
戻り値
true成功。
false失敗。

TnbTinyMsSqlAccessor.h334 行目に定義があります。

◆ Rollback()

bool Rollback ( void  )
inherited

[設定] ロールバック.

覚え書き
Start()Connect() している必要があります。
戻り値
true成功。詳細は GetLastReturnCode() で得られます。
false失敗。詳細は GetLastReturnCode() で得られます。

TnbTinySqlAccessor.h1906 行目に定義があります。

◆ SetAutoCommit()

bool SetAutoCommit ( bool  isEnable)
inherited

[設定] 自動コミット設定.

覚え書き
Start()Connect() している必要があります。
引数
isEnabletrue なら自動コミットを有効します。 false なら無効にします。
戻り値
true成功。詳細は GetLastReturnCode() で得られます。
false失敗。詳細は GetLastReturnCode() で得られます。

TnbTinySqlAccessor.h1881 行目に定義があります。

◆ SetQueryTimeout()

void SetQueryTimeout ( DWORD  tm)
inherited

[設定] タイムアウト設定.

引数
tmQUERYタイムアウト値(s)

TnbTinySqlAccessor.h1832 行目に定義があります。

◆ Start()

bool Start ( void  )
inherited

[設定] 開始.

覚え書き
本メソッドを使わなくても、 Connect() を使うことで、自動的にSQLアクセス準備が開始されます。
戻り値
true成功。詳細は GetLastReturnCode() で得られます。
false失敗。詳細は GetLastReturnCode() で得られます。

TnbTinySqlAccessor.h1690 行目に定義があります。

◆ Stop()

bool Stop ( void  )
inherited

[設定] 停止.

Start()Connect() を実行すると、SQLアクセス準備が開始されます。 このメソッドをコールすると、停止します。 また、接続されていた場合、切断も行います。

覚え書き
停止すると、本クラスから生成したクラスのインスタンスも正しく動かなくなります。
戻り値
true成功。詳細は GetLastReturnCode() で得られます。
false失敗。詳細は GetLastReturnCode() で得られます。

TnbTinySqlAccessor.h1661 行目に定義があります。

◆ SystemTimeToString()

static CStr SystemTimeToString ( const SYSTEMTIME time)
staticinherited

[変換] 時間文字列化.

SYSTEMTIME を Timestamp で使用する文字列(YYYY-MM-DD HH:MM:SS)に変換します。

引数
time時間.
戻り値
文字列。

TnbTinySqlAccessor.h1927 行目に定義があります。