![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク : SophiaFramework 3.0 |
| IDBRECORD_Remove | |
| Tips | BREW 2.0 以前の SDK および実機 |
IDBRECORD_Remove() をコールしてレコードを削除しても、 物理的なデータベースファイルそのものは直ちにアップデートされません。 削除した数が閾値に達した時にはじめて物理的なファイルがアップデートされます。 また、閾値以下のレコードを削除してデータベースを閉じた場合、 次回そのデータベースにアクセスした時に物理的なファイルがアップデートされます。 なお、閾値の値はメーカー様定義であり、実装によって異なります。
SDK 2.1 および実機では、データベースは IDBRECORD_Remove() を呼ぶごとに更新されます。
| パブリック関数 | |
|---|---|
| VoidPtr |
GetField(
AEEDBFieldName* name
, AEEDBFieldType* type
, UInt16Ptr length
)
フィールドからフィールド名、フィールドタイプ、フィールドの長さ、フィールドのデータを取得します。
|
| Bool |
GetFieldDWord(
UInt32Ptr field
)
フィールドタイプが AEE_FT_DWORD の場合に、4 バイトのフィールド値を取得します。
|
| WCharPtr |
GetFieldString( Void )
フィールドタイプが AEEDB_FT_STRING の場合に、文字列型のフィールド値を取得します。
|
| Bool |
GetFieldWord(
UInt16Ptr field
)
フィールドタイプが AEE_FT_WORD の場合に、2 バイトのフィールド値を取得します。
|
| UInt16 |
GetID( Void )
指定されたレコードの ID を取得します。
|
| AEEDBFieldType |
NextField(
AEEDBFieldName* name
, UInt16Ptr length
)
レコード内の次のフィールドを取得します。
|
| SFCError |
Remove(
SFBDBRecordSmpPtr record
)
レコードをデータベースから削除して、SFBDBRecord オブジェクトを解放します。
|
| Void |
Reset( Void )
レコード内の最初のフィールドをカレントフィールドにします。
|
| SFCError |
Update(
AEEDBField* fields
, SInt32 fieldsCount
)
任意のレコードを更新します。
|
[ public ] VoidPtr GetField( AEEDBFieldName* name // フィールド名へのポインタ。 AEEDBFieldType* type // フィールドタイプへのポインタ。 UInt16Ptr length // フィールドの長さ(バイト数)へのポインタ。 );
フィールドの内容を取得します。
// SFBDataMgr インスタンスを作成します。
SFBDBMgrSmp dbmgr = SFBDBMgr::NewInstance();
SFBDatabaseSmp database;
SFBDBRecordSmp record;
AEEDBFieldName fieldName;
AEEDBFieldType fieldType;
UInt16 len;
VoidPtr data;
// データベースをオープンします。
database = dbmgr->OpenDatabase("MyDataBase.db", true);
// データベース内から指定したインデックスのレコードを取得します。
record = database->GetRecordByID(3);
// 次のフィールドを取得します。
fieldType = record->NextField(&fieldName, &len);
// フィールドの内容を取得します。
data = record->GetField(&fieldName, &fieldType, &len);
4 バイトのフィールド値を取得します。
// SFBDataMgr インスタンスを作成します。
SFBDBMgrSmp dbmgr = SFBDBMgr::NewInstance();
SFBDatabaseSmp database;
SFBDBRecordSmp record;
AEEDBFieldName fieldName;
AEEDBFieldType fieldType;
UInt16 len;
UInt32 val;
// データベースをオープンします。
database = dbmgr->OpenDatabase("MyDataBase.db", true);
// データベース内から指定したインデックスのレコードを取得します。
record = database->GetRecordByID(0);
// 次のフィールドを取得します。
fieldType = record->NextField(&fieldName, &len);
// 4 バイトのフィールド値を取得します。
record->GetFieldDWord(&val);
[ public ] WCharPtr GetFieldString(Void);
文字列型のフィールドの値を取得します。
// SFBDataMgr インスタンスを作成します。
SFBDBMgrSmp dbmgr = SFBDBMgr::NewInstance();
SFBDatabaseSmp database;
SFBDBRecordSmp record;
AEEDBFieldName fieldName;
AEEDBFieldType fieldType;
UInt16 len;
SFXWideString str;
// データベースをオープンします。
database = dbmgr->OpenDatabase("MyDataBase.db", true);
// データベース内から指定したインデックスのレコードを取得します。
record = database->GetRecordByID(5);
// 次のフィールドを取得します。
fieldType = record->NextField(&fieldName, &len);
// 文字列型のフィールドの値を取得します。
str = SFXWideString(record->GetFieldString());
2 バイトのフィールド値を取得します。
// SFBDataMgr インスタンスを作成します。
SFBDBMgrSmp dbmgr = SFBDBMgr::NewInstance();
SFBDatabaseSmp database;
SFBDBRecordSmp record;
AEEDBFieldName fieldName;
AEEDBFieldType fieldType;
UInt16 len;
UInt16 val;
// データベースをオープンします。
database = dbmgr->OpenDatabase("MyDataBase.db", true);
// データベース内から指定したインデックスのレコードを取得します。
record = database->GetRecordByID(0);
// 次のフィールドを取得します。
fieldType = record->NextField(&fieldName, &len);
// 2 バイトのフィールド値を取得します。
record->GetFieldWord(&val);
[ public ] UInt16 GetID(Void);
レコードの ID を取得します。
// SFBDataMgr インスタンスを作成します。
SFBDBMgrSmp dbmgr = SFBDBMgr::NewInstance();
SFBDatabaseSmp database;
SFBDBRecordSmp record;
UInt16 id;
// レコードに設定するフィールドを作成します。
UInt32 val = 32;
AEEDBField field = {AEEDB_FT_DWORD, AEEDBFIELD_TEXT, 1, &val};
// データベースをオープンします。
database = dbmgr->OpenDatabase("MyDataBase.db", true);
// データベース内にレコードを 1 つ作成します。
record = database->CreateRecord(&field, 1);
// レコードの ID を取得します。
id = record->GetID();
[ public ] AEEDBFieldType NextField( AEEDBFieldName* name // 次のフィールドの名前へのポインタ。 UInt16Ptr length // 次のフィールドの長さへのポインタ。 );
次のフィールドを取得します。
// SFBDataMgr インスタンスを作成します。
SFBDBMgrSmp dbmgr = SFBDBMgr::NewInstance();
SFBDatabaseSmp database;
SFBDBRecordSmp record;
AEEDBFieldName fieldName;
AEEDBFieldType fieldType;
UInt16 size;
// データベースをオープンします。
database = dbmgr->OpenDatabase("MyDataBase.db", true);
// データベース内から指定したインデックスのレコードを取得します。
record = database->GetRecordByID(0);
// 次のフィールドを取得します。
fieldType = record->NextField(&fieldName, &size);
[ public ] SFCError Remove( SFBDBRecordSmpPtr record // 削除する SFBDBRecord インターフェース );
[ public ] Void Reset(Void);
[ public ] SFCError Update( AEEDBField* fields // 新しいフィールド値のセットへのポインタ。 SInt32 fieldsCount // 新しいセット内のフィールドの数。 );
レコードを更新します。
// SFBDataMgr インスタンスを作成します。
SFBDBMgrSmp dbmgr = SFBDBMgr::NewInstance();
SFBDatabaseSmp database;
SFBDBRecordSmp record;
// レコードに設定するフィールドを作成します。
AChar str[] = {"Update!!!"};
AEEDBField field = {AEEDB_FT_STRING, AEEDBFIELD_TEXT, STRLEN(str), str};
// データベースをオープンします。
database = dbmgr->OpenDatabase("MyDataBase.db", true);
// データベース内から指定したインデックスのレコードを取得します。
record = database->GetRecordByID(0);
// レコードを更新します。
record->Update(&field, 1);
|
Copyright (C) 2002 - 2009 Sophia Cradle, Inc. All Rights Reserved. |
![]() ![]() ![]()
|