テーブルスキーマ管理クラス (nocopyable noncreatable) [詳解]
#include <dbDef.h>
公開メンバ関数 | |
void * | allocRelateData (int size) |
bool | compAsBackup (short tableIndex) |
void | deleteField (short tableIndex, short deleteIndex) |
void | deleteKey (short tableIndex, short deleteIndex) |
void | deleteTable (short tableIndex) |
short | fieldNumByName (short tableIndex, const _TCHAR *name) |
short | fieldNumByViewNum (short tableIndex, short index) |
uint_td | fieldValidLength (eFieldQuery query, uchar_td fieldType) |
short | findKeynumByFieldNum (short tableIndex, short index) |
void | getFileSpec (fileSpec *fs, short tableIndex) |
fielddef * | insertField (short tableIndex, short insertIndex) |
keydef * | insertKey (short tableIndex, short insertIndex) |
void | insertTable (tabledef *tableDef) |
short | openMode () const |
void | popBackup (short tableIndex) |
void | pushBackup (short tableIndex) |
void * | relateData () const |
void | renumberTable (short oldIndex, short newIndex) |
void | reopen (char_td mode=TD_OPEN_READONLY) |
void | setVersion (int v) |
short_td | stat () const |
_TCHAR * | statMsg (_TCHAR *retbuf) |
void | synchronizeSeverSchema (short tableIndex) |
short | tableCount () const |
tabledef ** | tableDefPtr (int index) |
tabledef * | tableDefs (int index) |
short | tableNumByName (const _TCHAR *tableName) |
short_td | tdapErr (HWND hWnd, _TCHAR *retbuf=NULL) |
void | updateTableDef (short tableIndex, bool forPsqlDdf=true) |
short | validateTableDef (short tableIndex) |
int | version () const |
テーブルスキーマ管理クラス (nocopyable noncreatable)
Transactdではテーブルスキーマ情報の書かれたテーブルを持ちます。このクラスは そのテーブルへのアクセスを提供します。 生成と破棄の管理はすべてdatabaseクラスが行います。コピーもできません。 このクラスは、databaseのcloneインスタンス間で共有されます。
void * allocRelateData | ( | int | size | ) |
このデータベースに関連付けるメモリをアロケートします。
size | アロケートするメモリのサイズを指定します。 |
確保できない場合はNULLが返ります。
bool compAsBackup | ( | short | tableIndex | ) |
tableIndex指定されたテーブル定義と pushBackup()で退避させた定義を比較します。 内容が異なる場合はtrueを返します。同じ場合がfalseを返します。
tableIndexで指定されたテーブルの定義のdeleteIndexで指定されたフィールド を削除しテーブル情報をサーバーに保存します。 実行結果はstat()で取得します。成功するとゼロが返ります。
tableIndexで指定されたテーブルの定義のdeleteIndexで指定されたインデックス を削除しテーブル情報をサーバーに保存します。 実行結果はstat()で取得します。成功するとゼロが返ります。
void deleteTable | ( | short | tableIndex | ) |
tableIndexで指定されたテーブル定義を削除します。またサーバーから定義レコードを削除します。 実行結果はstat()で取得します。成功するとゼロが返ります。
tableIndex指定されたテーブルからnameで指定されたフィールドの番号を返します。
uint_td fieldValidLength | ( | eFieldQuery | query, |
uchar_td | fieldType | ||
) |
フィールドのタイプ(型)に応じた長さ(フィールド領域)情報を返します。
query | 調べたい長さの種類を指定します。詳しくはenum field_queryを参照してください。 |
fieldType | フィールドの型を指定します。 |
tableIndex指定されたテーブルのインデックスから、indexが使用されている最初のキー番号を返します。 見つからない場合は-1を返します。
tableIndexで指定されたテーブルのfileSpecオブジェクトをfsに書き込みます。 fsはインデックスの数に応じた十分な長さを確保しておく必要があります。
[out] | fs | 結果を返すfileSpecオブジェクトのアドレス |
[in] | tableIndex | fileSpecを作成するテーブルの番号 |
tableIndexで指定されたテーブルの定義のinsertIndexで指定された位置に空のフィールド を挿入してそのアドレスを返します。 この操作はメモリ上での操作のみです。サーバーに保存するには updateTableDef() を呼び出してください。
tableIndexで指定されたテーブルの定義のinsertIndexで指定された位置に空のインデックス を挿入してそのアドレスを返します。 この操作はメモリ上での操作のみです。サーバーに保存するには updateTableDef() を呼び出してください。
void insertTable | ( | tabledef * | tableDef | ) |
テーブルをインサートしテーブル情報をサーバーに保存します。 tableDefパラメータは事前にゼロで初期してください。 また、tabledef::idを必ず指定します。
インサート時に必須なのはidのみです。 インサート後は渡したパラメータのtableDefは使用せず tabledef()関数にてポインタを取得し直してください。
short openMode | ( | ) | const |
スキーマテーブルの現在のオープンモードを返します。 スキーマテーブルがオープンされていない場合は1が返ります。
void popBackup | ( | short | tableIndex | ) |
tableIndex指定されたテーブル定義をpushBackup() で退避させたテーブル定義に変更します。
void pushBackup | ( | short | tableIndex | ) |
tableIndex指定されたテーブル定義を退避させます。
void * relateData | ( | ) | const |
このデータベースに関連付けられたデータのアドレスを返します。 このデータのメモリは allocData()によって確保します。
テーブル番号を変更し、サーバーに保存します。 実行結果はstat()で取得します。成功するとゼロが返ります。
oldIndex | 変更前の番号を指定します。 |
newIndex | 変更後の番号を指定します。 |
void reopen | ( | char_td | mode = TD_OPEN_READONLY | ) |
スキーマテーブルをmodeで指定したモードで開きなおします。
void setVersion | ( | int | v | ) |
データベース定義のバージョンを指定します。 現在のところ常にゼロをセットしてください。
|
inline |
最後に行われた操作のステータスコードを返します。
|
inline |
最後に行った処理のエラーメッセージを取得します。
[out] | retbuf | エラーメッセージを受け取るバッファを指定します。バッファ長さは必ず512バイト以上 を確保してください。 |
void synchronizeSeverSchema | ( | short | tableIndex | ) |
tableIndexで指定したテーブルのスキーマ情報をサーバーにある現在のテーブルからダイナミックに取得して手元の値を更新し、最新の状態にします。
スキーマ情報には、TransactdオリジナルでMySQLには保存されない情報があります。そのため、このメソッドはサーバーから得られる部分のみ更新します。 フィールドな名前一致で対象フィールドを検索し更新します。キー情報はキー番号で検索し更新します。
short tableCount | ( | ) | const |
スキーマに登録されたテーブルの最大idを返します。
tabledef ** tableDefPtr | ( | int | index | ) |
indexで指定されたテーブル番号のテーブル定義のポインタ格納アドレスを返します。
index | テーブル番号 |
無効なテーブル番号を指定するとNULLが返ります。 このメソッドは、テーブル定義がサーバーから未取得だった際にはサーバーから読み取ります。 読み取りに失敗した場合もNULLが返ります。読み取りオペレーションのステータスはstat()で取得できます。 テーブル定義はフィールドやインデックスを追加すると、内部でreallocが発生し取得済のテーブル定義 ポインタが無効になることがあります。この関数で得られるポインタ格納アドレスは固定アドレスですので このアドレスからテーブル定義を取得すると安全です。
tabledef * tableDefs | ( | int | index | ) |
indexで指定されたテーブル番号のテーブル定義へのポインタを返します。
index | テーブル番号 |
無効なテーブル番号を指定するとNULLが返ります。 このメソッドは、テーブル定義がサーバーから未取得だった際にはサーバーから読み取ります。 読み取りに失敗した場合もNULLが返ります。読み取りオペレーションのステータスはstat()で取得できます。
short tableNumByName | ( | const _TCHAR * | tableName | ) |
tableNameで指定されたテーブル名のテーブル番号を返します。
|
inline |
最後に行った処理のエラーメッセージを取得します。
hWnd | 親ウィンドウハンドルを指定します。ハンドルを指定すると自動でmessageBoxをにてエラーを表示します。 |
retbuf | メッセージを受け取るバッファを指定します。バッファは512以上を確保してください。 |
void updateTableDef | ( | short | tableIndex, |
bool | forPsqlDdf = true |
||
) |
tableIndexで指定されたテーブルの定義を更新しサーバーに保存します。 実行結果はstat()で取得します。成功するとゼロが返ります。
tableIndexで指定されたテーブルの定義に問題がないか検査します。 問題なければゼロが返ります。ゼロ以外の値の意味はstat()で取得した値と同様です。
int version | ( | ) | const |
データベース定義のバージョンを返します。