| |
数据库技术在BREW中的应用 |
|
时间: 2003-11-25 来自:sunwhite |
 |
|
3、关闭数据库
代码:
// IDATABASE_Release closes the open database files, and frees //
any memory associated with the database. if
(pIDatabase) { IDATABASE_Release (pIDatabase); }
//
Release IDBMgr object. This step needs to be done // only if no further
use of the IDBMgr object is needed. if (pIDBMgr) { IDBMGR_Release
(pIDBMgr); } | 4、创建一条记录
代码:
boolean CreateOneRecord(IDatabase * pIDatabase, AEEDBField * dbField,
int nNumfields) { IDBRecord * pIDBRecord = NULL;
//
IDATABASE_CreateRecord: creates a new database record with the fields
// specified by pDBFields. if ((pIDBRecord = IDATABASE_CreateRecord
(pIDatabase, dbField, nNumfields)) != NULL) { // Successfully
created a database record.
// Release record IDBRECORD_Release
(pIDBRecord);
return TRUE; } else {
//Create DB
Record Failed }
return
FALSE; } | dbField指向数据库记录域,nNumfields是域的个数。可以创建一个这样的记录:
代码:
{ AEEDBField dbField[3]; int nNumfields = 3; const char
firstName [] = "John"; const char lastName [] = "Smith"; const char
address [] = "123 First Street, USA"; AEEDBFieldType
fieldType; AEEDBFieldName fieldName;
// Data fill values used to
create a database record. // The parameter dbField is a three item
array of type // AEEDBField. Each array item corresponds to three
fields // of the record. dbField[0].fName =
AEEDBFIELD_FIRSTNAME; dbField[0].fType =
AEEDB_FT_STRING; dbField[0].pBuffer = (void
*)firstName; dbField[0].wDataLen = STRLEN
(firstName);
dbField[1].fName =
AEEDBFIELD_LASTNAME; dbField[1].fType =
AEEDB_FT_STRING; dbField[1].pBuffer = (void
*)lastName; dbField[1].wDataLen = STRLEN
(lastName);
dbField[2].fName =
AEEDBFIELD_ADDRESS; dbField[2].fType =
AEEDB_FT_STRING; dbField[2].pBuffer = (void
*)address; dbField[2].wDataLen = STRLEN (address);
return
CreateOneRecord(pIDatabase, dbField,
3); }
| 5、获取记录个数
代码:
uint32 GetRecordCount(IDatabase * pIDatabase) { //
IDATABASE_GetRecordCount: returns the number of records in the //
database specified. This gives the number of records in the // database
prior to creating any records in the database. return
IDATABASE_GetRecordCount
(pIDatabase); } | 6、读取记录域
代码:
boolean GetRecordByID(IDatabase * pIDatabase, uint16
u16RecID) { IDBRecord * pIDBRec1 = NULL; AEEDBFieldType
fType; AEEDBFieldName fName; uint16 fLen; byte * data =
NULL;;
// This will reset the record Index to 0. IDATABASE_Reset
(pIDatabase);
// IDATABASE_GetRecordByID: returns a pointer to the
record whose // record ID is specified. pIDBRec1 =
IDATABASE_GetRecordByID (pIDatabase, u16RecID);
// Get the raw data
of the field for(;;) { // Get record 1 first field and display
it fType = IDBRECORD_NextField (pIDBRec1, &fName,
&fLen);
data = IDBRECORD_GetField (pIDBRec1, &fName,
&fType, &fLen); if (data !=
NULL) { switch(fName) { case
AEEDBFIELD_FIRSTNAME; break; case
AEEDBFIELD_LASTNAME; break; case
AEEDBFIELD_ADDRESS; break; default: break; } } else { break;
//break for } }
// Now remove record
1. IDBRECORD_Release(pIDBRec1); return TRUE; }
|
|
|
|
|
|
|
|
|