// ----------------------------------------------------------------------------- // ----------------------------------------------------------------------------- // void PosLmLandmarkHandler::ReadFieldsL( CPosLmLocalDbAccess& aDbAccess, CPosLandmark& aLandmark, TBool aHasRequestedFields, const RArray<TUint>& aRequestedFields) { if (!aHasRequestedFields || aRequestedFields.Count() > 0) { HBufC* sql = HBufC::NewLC(KPosLmSqlStatementMaxLen); sql->Des().Format(KPosLmSqlFindUint, &KPosLmSqlAll, &KPosLmLandmarkFieldTable, &KPosLmLandmarkIdCol, aLandmark.LandmarkId()); RDbView view; aDbAccess.PrepareViewLC(CPosLmLocalDbAccess::EUpdatablePreparation, view, *sql); HBufC* textFieldBuffer = HBufC::NewLC(KPosLmMaxTextFieldLength); while (view.NextL()) { view.GetL(); TUint16 fieldType = view.ColUint16(EPosLmLfcFieldTypeCol); if (!aHasRequestedFields || aRequestedFields.Find(fieldType) != KErrNotFound) { TPtr buffer = textFieldBuffer->Des(); PosLmLongTextColHandler::ReadFromLongTextColumnL( buffer, view, EPosLmLfcFieldStringCol); aLandmark.SetPositionFieldL(fieldType, *textFieldBuffer); } } CleanupStack::PopAndDestroy(3, sql); //&view, textFieldBuffer } }