Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries. Thanks for all your past and future contributions.

How to import landmarks from file to database

From Wiki
Jump to: navigation, search
Article Metadata
Created: Den123 (12 Apr 2008)
Last edited: hamishwillee (16 Dec 2011)

You can use class CPosLandmarkParser for parsing the landmark content, this functionality can be used for importing data from files. The type (e.g. the mime type) must be specified for creating instance of this class. You can use mime type "application/".

The following code snippet demonstrates how to import data from the XML-file to the specified local landmark database. It is necessary to include the following headers:

#include <epos_cposlmdatabasemanager.h>
#include <epos_hposlmdatabaseinfo.h>
#include <epos_cposlandmarkparser.h>

And link against:

LIBRARY  eposlandmarks.lib
LIBRARY eposlmdbmanlib.lib
// db URI
_LIT( KNewDbUri, "file://C:new.ldb" );
TBuf<32> newDbUri( KNewDbUri );
// file with landmarks
_LIT( KSrcFile, "C:\\LmBackup\\my_lms.xml" );
// db manager
CPosLmDatabaseManager* dbManager = CPosLmDatabaseManager :: NewL();
CleanupStack :: PushL( dbManager );
// create database, if necessary
if( !dbManager->DatabaseExistsL( newDbUri ) )
HPosLmDatabaseInfo* dbInfo = HPosLmDatabaseInfo :: NewLC( newDbUri );
dbManager->CreateDatabaseL( *dbInfo );
CleanupStack :: PopAndDestroy( dbInfo );
// open DB and init it, if necessary
CPosLandmarkDatabase* db = CPosLandmarkDatabase :: OpenL( newDbUri );
CleanupStack :: PushL( db );
if( db->IsInitializingNeeded() )
ExecuteAndDeleteLD( db->InitializeL() );
// clear the database (batch mode)
ExecuteAndDeleteLD( db->RemoveAllLandmarksL() );
// MIME type for import & export
_LIT8( KPosMimeTypeLandmarkCollectionXml, "application/" );
// Create the parser to be used for importing landmarks
CPosLandmarkParser* parser = CPosLandmarkParser :: NewL( KPosMimeTypeLandmarkCollectionXml );
CleanupStack :: PushL( parser );
// import data (batch mode)
parser->SetInputFileL( KSrcFile );
ExecuteAndDeleteLD( db->ImportLandmarksL( *parser, CPosLandmarkDatabase::EDefaultOptions ) );
CleanupStack :: PopAndDestroy( 3 ); // parser db dbManager

Related Links:

This page was last modified on 16 December 2011, at 04:40.
36 page views in the last 30 days.