CBookDb Class Reference

List of all members.

Public Member Functions

 ~CBookDb ()
TInt OpenDb (const TFileName &aExistingBookFile)
TInt CreateDb (const TFileName &aNewBookFile)
TInt RemoveDb (const TFileName &aExistingBookFile)
TInt Close ()
TBool IsOpen () const
TInt AddBookWithSql (const TDesC &aAuthor, const TDesC &aTitle, const TDesC &aDescription)
TInt AddBookWithCppApiL (const TDesC &aAuthor, const TDesC &aTitle, const TDesC &aDescription)
CDesCArrayFlat * GetAllBooksL ()
CDesCArrayFlat * GetBooksByKeyL (const TDesC &aColumnName, const TDesC &aSearchString)
TInt GetABookFast (const TDesC &aTitle, TDes &aResult)
TInt RemoveBooks (const TDesC &aTitle, TInt &aResultCount)
TInt RemoveAllBooks (TInt &aResultCount)
TInt UpdateBookTitle (const TDesC &aOldTitleKey, const TDesC &aNewTitle)
CDesCArrayFlat * ColumnNamesAndSizesL ()
TInt HasDateColumn (TBool &aReturnValue)
TInt AddDateColumn ()
TInt RemoveDateColumn ()

Static Public Member Functions

static CBookDbNewL ()

Detailed Description

Class: CBookDb

Description: An instance of class CBookDb provides simple Book database access: creating & manipulating Book database files and database entries (books).

Database definition:

The Book contains one table as follows:

Table name: Books Column: Type: Max length: ------ ----- ----------- Author EDbColText 50 (using default) Title EDbColText 60 (see KTitleMaxLength) Description EDbColLongText 128 (see KDescriptionMaxLength) In run time: PublishDate EDbColDateTime

Note that underlying database allows description to be up to 2GB long, but this engine limits the size to 128 unicode characters. The PublishDate does not exist, when the database is created. It can be added on the fly (see AddDateColumnL method).

There is also index for Books table with name "BooksIndex". It consists of two columns:

Author, Title

Index provides quick find.

Definition at line 99 of file DBMSEngine.h.


Constructor & Destructor Documentation

CBookDb::~CBookDb (  ) 

Function: ~CBookDb

Description: Destroy the object.

Definition at line 59 of file DBMSEngine.cpp.


Member Function Documentation

CBookDb * CBookDb::NewL (  )  [static]

Function: NewL

Description: Get instance of a CBookDb object.

Definition at line 45 of file DBMSEngine.cpp.

TInt CBookDb::OpenDb ( const TFileName &  aExistingBookFile  ) 

Function: OpenDbL

Description: Open existing Book database in exclusive (non-shared) mode.

Param: aExistingBookFile is full path to Book database file.

Return: KErrNone, if no error. KErrNotFound, if the file does not exist.

Leaves: With one of the system wide error codes, if the file is not a correct database file.

Definition at line 92 of file DBMSEngine.cpp.

TInt CBookDb::CreateDb ( const TFileName &  aNewBookFile  ) 

Function: CreateDbL

Description: Creates and opens a new Book database. Creates a database file, table structure and an index. The database will be open in exclusive (non-shareable) mode. The database must be closed, when not used any more. If the database exists, it is replaced.

Param: aNewBookFile Name of the new database file. Is a full path (incl. the filename). Operations following this call are performed to the new database file.

Return: returns always KErrNone

Leaves: If the file cannot be created or database initialized. Leaves with system wide error codes.

Definition at line 121 of file DBMSEngine.cpp.

TInt CBookDb::RemoveDb ( const TFileName &  aExistingBookFile  ) 

Function: RemoveDbL

Description: Removes Book database. Closes any open database, before dropping the database.

Param: aExistingBookFile is full path to Book database file.

Leaves: If the file file is not a valid database file or the database does not containt Books table, the method leaves with system wide error codes.

Definition at line 151 of file DBMSEngine.cpp.

TInt CBookDb::Close (  ) 

Function: Close

Description: Closes the database opened with either OpenDbL or CreateDbL. It is safe to close the database even if it is closed.

Return: KErrNone, if no error. KErrNotFound, if the file does not exist.

Definition at line 181 of file DBMSEngine.cpp.

TBool CBookDb::IsOpen (  )  const

Function: IsOpen

Description: Return status, whether the database is open and ready for operations.

Definition at line 198 of file DBMSEngine.cpp.

TInt CBookDb::AddBookWithSql ( const TDesC &  aAuthor,
const TDesC &  aTitle,
const TDesC &  aDescription 
)

Function: AddBookWithSql

Description: Adds a new book to Books table. The book is inserted using SQL and RDbView.

Param: aAuthor Author of the book. Must be shorter than the default max text length in Book API (=50). Must not be empty.

Param: aTitle Title of the book. Must be shorter than KTitleMaxLength. Must not be empty.

Param: aDescription Description of the book. It must not be longer than KDescriptionMaxLength. Must not be empty.

Definition at line 279 of file DBMSEngine.cpp.

TInt CBookDb::AddBookWithCppApiL ( const TDesC &  aAuthor,
const TDesC &  aTitle,
const TDesC &  aDescription 
)

Function: AddBookWithCppApiL

Description: Adds a new book to Books table. The book is inserted using RDbTable API.

Param: aAuthor Author of the book. Must be shorter than the default max text length in Book API (=50). Must not be empty.

Param: aTitle Title of the book. Must be shorter than KTitleMaxLength. Must not be empty.

Param: aDescription Description of the book. It must not be longer than KDescriptionMaxLength. Must not be empty.

Definition at line 351 of file DBMSEngine.cpp.

CDesCArrayFlat * CBookDb::GetAllBooksL (  ) 

Function: GetAllBooksL

Description: Retrieve all books from database.

Returns: Array of books. Each array item is represented as follows: <Author>|<Title>| Maximum length of each item is KBookItemMaxLength Caller takes ownership of the array.

Definition at line 410 of file DBMSEngine.cpp.

CDesCArrayFlat * CBookDb::GetBooksByKeyL ( const TDesC &  aColumnName,
const TDesC &  aSearchString 
)

Function: GetBooksByKeyL

Description: Retrieve books from database, which match given column and search pattern. Implementation uses SQL.

Param: aColumnName Name of the column to apply the search pattern. Must be either KBooksAuthorCol or KBooksTitleCol

Param: aSearchString Search pattern used to restrict results to.

Returns: Array of books. Each array item is represented as follows: <Author>|<Title>| Maximum length of each item is KBookItemMaxLength Caller takes ownership of the array.

Definition at line 540 of file DBMSEngine.cpp.

TInt CBookDb::GetABookFast ( const TDesC &  aTitle,
TDes &  aResult 
)

Function: GetABookFast

Description: Retrieves book information for given book name. This method uses index to find first occurrence of the book. Implementation uses exact match.

Param: aTitle is name of the book to search for.

Param: aResult If there is a matching book, the complete book info is written to aResult. It is in the following format: <Author>|<Title>| Length of the given descriptor must be KBookItemMaxLength

Definition at line 466 of file DBMSEngine.cpp.

TInt CBookDb::RemoveBooks ( const TDesC &  aTitle,
TInt &  aResultCount 
)

Function: RemoveBooks

Description: Deletes book(s) from database.

Param: aTitle is name of the book to delete. It can contain wildcard characters (% for single char, * for zero or multiple chars).

Param: aResultCount will contain number of deleted books.

Returns: KErrNone or one of the system wide error codes.

Definition at line 629 of file DBMSEngine.cpp.

TInt CBookDb::RemoveAllBooks ( TInt &  aResultCount  ) 

Function: RemoveAllBooksL

Description: Deletes all books from database.

Param: aResultCount will contain number of deleted books.

Returns: KErrNone or one of the system wide error codes.

Definition at line 671 of file DBMSEngine.cpp.

TInt CBookDb::UpdateBookTitle ( const TDesC &  aOldTitleKey,
const TDesC &  aNewTitle 
)

Function: UpdateBookTitle

Description: Changes the title for a book (or books, if there are multiple books with the name aOldTitleKey).

Param: aOldTitleKey Book title used for getting books for update.

Param: aNewTitle New title for the book(s).

Returns: KErrNone or one of the system wide error codes.

Definition at line 706 of file DBMSEngine.cpp.

CDesCArrayFlat * CBookDb::ColumnNamesAndSizesL (  ) 

Function: ColumnNamesAndSizes

Description: Get array of colum names in the Books table. The result array includes also the size of the textual columns. This is here just to demonstrate iterating column names from a table.

Returns: Array of column names. Caller takes ownership.

Definition at line 729 of file DBMSEngine.cpp.

TInt CBookDb::HasDateColumn ( TBool &  aReturnValue  ) 

Function: HasDateColumn

Description: Tests whether the Books table has date column.

Returns: KErrNone or one of the system wide error codes.

Definition at line 779 of file DBMSEngine.cpp.

TInt CBookDb::AddDateColumn (  ) 

Function: AddDateColumn

Description: Adds date column to Books table. This here just to demonstrate how to alter table definition. This fails, if the date column already exists.

Returns: KErrNone or one of the system wide error codes.

Definition at line 819 of file DBMSEngine.cpp.

TInt CBookDb::RemoveDateColumn (  ) 

Function: RemoveDateColumn

Description: Removes date column from Books table. This here just to demonstrate how to alter table definition. This fails, if the date column does not exist.

Returns: KErrNone or one of the system wide error codes.

Definition at line 830 of file DBMSEngine.cpp.


Generated by  doxygen 1.6.2