前のページ次のページ上に戻るホーム BREW C++ ライブラリ & GUI フレームワーク : SophiaFramework 3.0
SFBDatabase
IDatabase インターフェイスのラッパークラスです。
#include <SFBDatabase.h.hpp>
class SFBDatabase : public SFBBase;
SFMTYPEDEFWRAPPER(SFBDatabase)

継承図

SFBDatabase クラスの継承図

協調図

SFBDatabase クラスの協調図

参照

BREW API IDatabase

バグ情報

IDATABASE_CreateRecord
バグ A5304T、BREW SDK 2.0.1.5

IDATABASE_CreateRecord は、レコードの作成に失敗した場合、 null を返すようデザインされていますが、現在、ファイルシステムが full の時に、 作成に失敗しても null を返さないというバグが報告されています。

なお、実際にレコードが作成されたかどうかは、 IDBRECORD_GetID でレコードの ID を調べることで確認することが出来ます。 作成されたレコードの ID が 0xffff の場合はレコードの作成に失敗していますので、 作成された IDBRecord オブジェクトをリリースしてください。

pme->m_pDBRecNew = IDATABASE_CreateRecord(pme->m_pDB, pDBFields, iNumFields);
	    
if ( pme->m_pDBRecNew == null )
    return null;
	    
if ( IDBRECORD_GetID(pme->m_pDBRecNew) == 0xffff )
{
    IDBRECORD_Release(pme->m_pDBRecNew);
    pme->m_pDBRecNew = null;
    return null;
}
else {
    return pme->m_pDBRecNew;
}

メンバ

パブリック関数
SFBDBRecordSmp CreateRecord( AEEDBField* fields , SInt32 count )
データベース内に新しいレコードを作成します。
SFBDBRecordSmp GetNextRecord( Void )
データベース内の次のレコードを取得します。
SFBDBRecordSmp GetRecordByID( UInt16 id )
データベース内から指定したインデックスのレコードを取得します。
UInt16 GetRecordCount( Void )
データベース内のコード数を取得します。
Void Reset( Void )
データベースのレコード インデックスをリセットします。

SFBDatabase::CreateRecord
データベース内に新しいレコードを作成します。
[ public ]
SFBDBRecordSmp CreateRecord(
    AEEDBField* fields   // この関数で作成する新しいレコードに設定するデータベースフィールドへのポインタ。
    SInt32 count         // レコード内のフィールドの数。
);

使用例

データベース内にレコードを 1 つ作成します。

// SFBDataMgr インスタンスを作成します。
SFBDBMgrSmp         dbmgr = SFBDBMgr::NewInstance();
SFBDatabaseSmp      database;
SFBDBRecordSmp      record;

// レコードに設定するフィールドを作成します。
AChar                   str[] = {"abcdefg"};
AEEDBField              field = {AEEDB_FT_STRING, AEEDBFIELD_TEXT, STRLEN(str), str};

// データベースをオープンします。
database = dbmgr->OpenDatabase("MyDataBase.db", true);

// データベース内にレコードを 1 つ作成します。
record = database->CreateRecord(&field, 1);

参照

BREW API IDATABASE_CreateRecord | AEEDBField


SFBDatabase::GetNextRecord
データベース内の次のレコードを取得します。
[ public ]
SFBDBRecordSmp GetNextRecord(Void);

使用例

データベース内の次のレコードを取得します。

// SFBDataMgr インスタンスを作成します。
SFBDBMgrSmp     dbmgr = SFBDBMgr::NewInstance();
SFBDatabaseSmp  database;
SFBDBRecordSmp  record;

// データベースをオープンします。
database = dbmgr->OpenDatabase("MyDataBase.db", true);

// 次のレコードを取得します。
record = database->GetNextRecord();

参照

BREW API IDATABASE_GetNextRecord | SFBDatabase::Reset


SFBDatabase::GetRecordByID
データベース内から指定したインデックスのレコードを取得します。
[ public ]
SFBDBRecordSmp GetRecordByID(
    UInt16 id   // レコードのインデックス。
);

使用例

データベース内から指定したインデックスのレコードを取得します。

// SFBDataMgr インスタンスを作成します。
SFBDBMgrSmp     dbmgr = SFBDBMgr::NewInstance();
SFBDatabaseSmp  database;
SFBDBRecordSmp  record;

// データベースをオープンします。
database = dbmgr->OpenDatabase("MyDataBase.db", true);

// データベース内から指定したインデックスのレコードを取得します。
record = database->GetRecordByID(3);

参照

BREW API IDATABASE_GetRecordByID


SFBDatabase::GetRecordCount
データベース内のコード数を取得します。
[ public ]
UInt16 GetRecordCount(Void);

使用例

データベース内のレコード数を取得します。

// SFBDataMgr インスタンスを作成します。
SFBDBMgrSmp         dbmgr = SFBDBMgr::NewInstance();
SFBDatabaseSmp      database;
UInt32              recordCount;

// データベースをオープンします。
database = dbmgr->OpenDatabase("MyDataBase.db", true);

// データベース内のレコード数を取得します。
recordCount = database->GetRecordCount();

参照

BREW API IDATABASE_GetRecordCount


SFBDatabase::Reset
データベースのレコード インデックスをリセットします。
[ public ]
Void Reset(Void);

参照

BREW API IDATABASE_Reset | SFBDatabase::GetNextRecord