全て クラス 名前空間 関数 変数 型定義 列挙型 列挙値 ページ
公開メンバ関数 | 全メンバ一覧
dbdef クラス

テーブルスキーマ管理クラス (nocopyable noncreatable) [詳解]

#include <dbDef.h>

+ dbdef の継承関係図

公開メンバ関数

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)
 
fielddefinsertField (short tableIndex, short insertIndex)
 
keydefinsertKey (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)
 
tabledeftableDefs (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を返します。

void deleteField ( short  tableIndex,
short  deleteIndex 
)

tableIndexで指定されたテーブルの定義のdeleteIndexで指定されたフィールド を削除しテーブル情報をサーバーに保存します。 実行結果はstat()で取得します。成功するとゼロが返ります。

void deleteKey ( short  tableIndex,
short  deleteIndex 
)

tableIndexで指定されたテーブルの定義のdeleteIndexで指定されたインデックス を削除しテーブル情報をサーバーに保存します。 実行結果はstat()で取得します。成功するとゼロが返ります。

void deleteTable ( short  tableIndex)

tableIndexで指定されたテーブル定義を削除します。またサーバーから定義レコードを削除します。 実行結果はstat()で取得します。成功するとゼロが返ります。

short fieldNumByName ( short  tableIndex,
const _TCHAR *  name 
)

tableIndex指定されたテーブルからnameで指定されたフィールドの番号を返します。

short fieldNumByViewNum ( short  tableIndex,
short  index 
)

don't use. BizStation internal use only

uint_td fieldValidLength ( eFieldQuery  query,
uchar_td  fieldType 
)

フィールドのタイプ(型)に応じた長さ(フィールド領域)情報を返します。

引数
query調べたい長さの種類を指定します。詳しくはenum field_queryを参照してください。
fieldTypeフィールドの型を指定します。
戻り値
指定されたフィールド型の長さを返します。
short findKeynumByFieldNum ( short  tableIndex,
short  index 
)

tableIndex指定されたテーブルのインデックスから、indexが使用されている最初のキー番号を返します。 見つからない場合は-1を返します。

void getFileSpec ( fileSpec fs,
short  tableIndex 
)

tableIndexで指定されたテーブルのfileSpecオブジェクトをfsに書き込みます。 fsはインデックスの数に応じた十分な長さを確保しておく必要があります。

引数
[out]fs結果を返すfileSpecオブジェクトのアドレス
[in]tableIndexfileSpecを作成するテーブルの番号
fielddef * insertField ( short  tableIndex,
short  insertIndex 
)

tableIndexで指定されたテーブルの定義のinsertIndexで指定された位置に空のフィールド を挿入してそのアドレスを返します。 この操作はメモリ上での操作のみです。サーバーに保存するには updateTableDef() を呼び出してください。

keydef * insertKey ( short  tableIndex,
short  insertIndex 
)

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()によって確保します。

void renumberTable ( short  oldIndex,
short  newIndex 
)

テーブル番号を変更し、サーバーに保存します。 実行結果はstat()で取得します。成功するとゼロが返ります。

引数
oldIndex変更前の番号を指定します。
newIndex変更後の番号を指定します。
void reopen ( char_td  mode = TD_OPEN_READONLY)

スキーマテーブルをmodeで指定したモードで開きなおします。

void setVersion ( int  v)

データベース定義のバージョンを指定します。 現在のところ常にゼロをセットしてください。

short_td stat ( ) const
inline

最後に行われた操作のステータスコードを返します。

_TCHAR * statMsg ( _TCHAR *  retbuf)
inline

最後に行った処理のエラーメッセージを取得します。

引数
[out]retbufエラーメッセージを受け取るバッファを指定します。バッファ長さは必ず512バイト以上 を確保してください。
戻り値
メッセージをコピーしたバッファのアドレスを返します。
void synchronizeSeverSchema ( short  tableIndex)

tableIndexで指定したテーブルのスキーマ情報をサーバーにある現在のテーブルからダイナミックに取得して手元の値を更新し、最新の状態にします。
スキーマ情報には、TransactdオリジナルでMySQLには保存されない情報があります。そのため、このメソッドはサーバーから得られる部分のみ更新します。 フィールドな名前一致で対象フィールドを検索し更新します。キー情報はキー番号で検索し更新します。

注釈
この関数の呼び出しによって手元のスキーマ情報は最新になりますが、サーバー上のスキーマテーブルには保存されません。 保存したい場合は、この関数を呼び出した後に updateTableDef() を呼び出してください。
short tableCount ( ) const

スキーマに登録されたテーブルの最大idを返します。

注意
純粋なテーブル数ではありません。空き番号も含みます。
tabledef ** tableDefPtr ( int  index)

indexで指定されたテーブル番号のテーブル定義のポインタ格納アドレスを返します。

引数
indexテーブル番号
戻り値
テーブル定義のポインタ格納アドレス

無効なテーブル番号を指定するとNULLが返ります。 このメソッドは、テーブル定義がサーバーから未取得だった際にはサーバーから読み取ります。 読み取りに失敗した場合もNULLが返ります。読み取りオペレーションのステータスはstat()で取得できます。 テーブル定義はフィールドやインデックスを追加すると、内部でreallocが発生し取得済のテーブル定義 ポインタが無効になることがあります。この関数で得られるポインタ格納アドレスは固定アドレスですので このアドレスからテーブル定義を取得すると安全です。

tabledef * tableDefs ( int  index)

indexで指定されたテーブル番号のテーブル定義へのポインタを返します。

引数
indexテーブル番号
戻り値
テーブル定義へのポインタ

無効なテーブル番号を指定するとNULLが返ります。 このメソッドは、テーブル定義がサーバーから未取得だった際にはサーバーから読み取ります。 読み取りに失敗した場合もNULLが返ります。読み取りオペレーションのステータスはstat()で取得できます。

注意
テーブル定義はフィールドやインデックス定義を変更すると、内部でreallocが発生し取得済のテーブル定義 ポインタが無効になることがあります。
short tableNumByName ( const _TCHAR *  tableName)

tableNameで指定されたテーブル名のテーブル番号を返します。

short_td tdapErr ( HWND  hWnd,
_TCHAR *  retbuf = NULL 
)
inline

最後に行った処理のエラーメッセージを取得します。

引数
hWnd親ウィンドウハンドルを指定します。ハンドルを指定すると自動でmessageBoxをにてエラーを表示します。
retbufメッセージを受け取るバッファを指定します。バッファは512以上を確保してください。
戻り値
エラーコードを返します。通常はstat()と同じ値ですが、STATUS_EOFとSTATUS_NOT_FOUND_TI の場合、STATUS_SUCCESSを返します。
void updateTableDef ( short  tableIndex,
bool  forPsqlDdf = true 
)

tableIndexで指定されたテーブルの定義を更新しサーバーに保存します。 実行結果はstat()で取得します。成功するとゼロが返ります。

short validateTableDef ( short  tableIndex)

tableIndexで指定されたテーブルの定義に問題がないか検査します。 問題なければゼロが返ります。ゼロ以外の値の意味はstat()で取得した値と同様です。

int version ( ) const

データベース定義のバージョンを返します。

Transactd SDK 2018年07月31日(火) 19時40分33秒 doxygen