![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク : SophiaFramework 3.0 |
| 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 )
データベースのレコード インデックスをリセットします。
|
[ 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);
[ public ] SFBDBRecordSmp GetNextRecord(Void);
データベース内の次のレコードを取得します。
// SFBDataMgr インスタンスを作成します。
SFBDBMgrSmp dbmgr = SFBDBMgr::NewInstance();
SFBDatabaseSmp database;
SFBDBRecordSmp record;
// データベースをオープンします。
database = dbmgr->OpenDatabase("MyDataBase.db", true);
// 次のレコードを取得します。
record = database->GetNextRecord();
[ public ] SFBDBRecordSmp GetRecordByID( UInt16 id // レコードのインデックス。 );
データベース内から指定したインデックスのレコードを取得します。
// SFBDataMgr インスタンスを作成します。
SFBDBMgrSmp dbmgr = SFBDBMgr::NewInstance();
SFBDatabaseSmp database;
SFBDBRecordSmp record;
// データベースをオープンします。
database = dbmgr->OpenDatabase("MyDataBase.db", true);
// データベース内から指定したインデックスのレコードを取得します。
record = database->GetRecordByID(3);
[ public ] UInt16 GetRecordCount(Void);
データベース内のレコード数を取得します。
// SFBDataMgr インスタンスを作成します。
SFBDBMgrSmp dbmgr = SFBDBMgr::NewInstance();
SFBDatabaseSmp database;
UInt32 recordCount;
// データベースをオープンします。
database = dbmgr->OpenDatabase("MyDataBase.db", true);
// データベース内のレコード数を取得します。
recordCount = database->GetRecordCount();
[ public ] Void Reset(Void);
|
Copyright (C) 2002 - 2009 Sophia Cradle, Inc. All Rights Reserved. |
![]() ![]() ![]()
|