Exemplo n.º 1
0
/**
Inserts the data into the URIPropertiesTbl. 

@param aUri URI object
@param [out] aUriId The URI will be filled upon successful insertion. This ID
	uniquelly indentifies the URI.

@return Returns the number of rows inserted. Normally 1. Otherwise returns with
		system-wide error code.
*/
TInt CUriListInterface::InsertIntoUriPropsTblL ( TInt aUriId, const CInetUriProperties& aUriProps, TInt& aPropId )
	{
	const TInt KMaxLen = 128;
	const TDesC8& propId ( iStringPool.String (URILIST::EPropId,URILIST::Table).DesC() );
	aPropId = GetMaxIdValueL ( KUriPropsTblName(), propId ) + 1;
	_LIT8 ( KInsertStmt, "INSERT INTO %S VALUES (%d, %d, %d, %d, %d, :V1)");
	RBuf8 queryBuf;
	CleanupClosePushL (queryBuf);
	queryBuf.CreateL ( KMaxLen );
	queryBuf.AppendFormat ( KInsertStmt, &(KUriPropsTblName()), aUriId, aPropId, aUriProps.ServiceType(), aUriProps.ListType(), aUriProps.Permission() );
	MDBTransaction* dbTrans = iDbAccessor->PrepareTransactionL ( queryBuf );
	CleanupStack::PushL ( TCleanupItem ( CUriListInterface::DestroyTransObj, dbTrans ) );
	dbTrans->BindTextL ( 0, aUriProps.FavouriteName () ); // Bind with parameter index 0
	TInt result = dbTrans->ExecuteL ();
	CleanupStack::PopAndDestroy (2); // queryBuf, dbTrans
	
	return result;
	}