void CSCOMOAdapterDb::UpdateRetryCountForLuidL(TInt aLuid, TInt aRetryCount) { TFileName sqlQuery; PrepareLuidQuery(aLuid, sqlQuery); BeginDatabaseTransaction(); RDbView view; view.Prepare(iDatabase, TDbQuery(sqlQuery)); CleanupClosePushL(view); view.EvaluateAll(); view.FirstL(); if(view.AtRow()) { view.UpdateL(); view.SetColL(7, aRetryCount); view.PutL(); } CleanupStack::PopAndDestroy(1); // view CommitDatabaseTransaction(); }
// ----------------------------------------------------------------------------- // ----------------------------------------------------------------------------- // void PosLmLandmarkHandler::UpdateFieldsForLandmarkL( CPosLmLocalDbAccess& aDbAccess, const RArray<TUint>& aFieldIds, const CPosLandmark& aLandmark) { for (TInt i = 0; i < aFieldIds.Count(); i++) { HBufC* sql = HBufC::NewLC(KPosLmSqlStatementMaxLen); sql->Des().Format(KPosLmSqlFind2Uint, &KPosLmSqlAll, &KPosLmLandmarkFieldTable, &KPosLmLandmarkIdCol, aLandmark.LandmarkId(), &KPosLmFieldTypeCol, aFieldIds[i]); RDbView view; aDbAccess.PrepareViewLC(CPosLmLocalDbAccess::EUpdatablePreparation, view, *sql); TPtrC fieldValue; User::LeaveIfError(aLandmark.GetPositionField( (TPositionFieldId)aFieldIds[i], fieldValue)); if (view.NextL()) { view.UpdateL(); PosLmLongTextColHandler::WriteToLongTextColumnL(fieldValue, view, EPosLmLfcFieldStringCol); view.PutL(); } CleanupStack::PopAndDestroy(2, sql); //&view } }
/* ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- */ void CScheduleDB::UpdateDatabaseL(CMsgStored* aData) { if(aData) { TFileName QueryBuffer; QueryBuffer.Copy(_L("SELECT * FROM ")); QueryBuffer.Append(KtxtItemlist2); QueryBuffer.Append(_L(" WHERE ")); QueryBuffer.Append(NCol0); QueryBuffer.Append(_L(" = ")); QueryBuffer.AppendNum(aData->iIndex); iItemsDatabase.Begin(); RDbView Myview; Myview.Prepare(iItemsDatabase,TDbQuery(QueryBuffer)); CleanupClosePushL(Myview); Myview.EvaluateAll(); Myview.FirstL(); if(Myview.AtRow()) { Myview.UpdateL(); if(aData->iMessage) Myview.SetColL(2,*aData->iMessage); Myview.PutL(); } CleanupStack::PopAndDestroy(1); // Myview iItemsDatabase.Commit(); } }
static void ViewTestL() { RDbView view; CleanupClosePushL(view); TheTest.Next(_L("Prepare()")); TInt err = view.Prepare(TheDb1, TDbQuery(_L("SELECT * FROM ATbl"))); TEST2(err, KErrNone); TheTest.Next(_L("Update()")); TBool res = view.FirstL(); TEST(res); view.GetL(); view.UpdateL(); view.SetColL(2, 100); view.SetColL(3, 200); view.PutL(); CleanupStack::PopAndDestroy(&view); TheTest.Next(_L("Prepare() with an update sql")); CleanupClosePushL(view); err = view.Prepare(TheDb1, TDbQuery(_L("UPDATE ATbl SET DATA1 = 400 WHERE ID = 0"))); TEST2(err, KErrArgument); CleanupStack::PopAndDestroy(&view); }
/* ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- */ void CScheduleDB::UpdateDatabaseL(CMsgSched* aData) { if(aData) { TFileName QueryBuffer; QueryBuffer.Copy(_L("SELECT * FROM ")); QueryBuffer.Append(KtxtItemlist); QueryBuffer.Append(_L(" WHERE ")); QueryBuffer.Append(NCol0); QueryBuffer.Append(_L(" = ")); QueryBuffer.AppendNum(aData->iIndex); iItemsDatabase.Begin(); RDbView Myview; Myview.Prepare(iItemsDatabase,TDbQuery(QueryBuffer)); CleanupClosePushL(Myview); Myview.EvaluateAll(); Myview.FirstL(); if(Myview.AtRow()) { Myview.UpdateL(); if(aData->iUnicode) Myview.SetColL(2,0x100); else Myview.SetColL(2,0x000); if(aData->iNunmber) Myview.SetColL(3,*aData->iNunmber); if(aData->iMessage) Myview.SetColL(4,*aData->iMessage); Myview.SetColL(5,aData->iTime); Myview.SetColL(6,aData->iRepeat); if(aData->iEnabled) Myview.SetColL(7,0x100); else Myview.SetColL(7,0x000); if(aData->iFlashSMS) Myview.SetColL(8,0x100); else Myview.SetColL(8,0x000); Myview.PutL(); } CleanupStack::PopAndDestroy(1); // Myview iItemsDatabase.Commit(); } }
void CAlmSettingsSession::ProcessDataL(void) { TInt func=Message().Function(); _LIT(KSQL,"select id,name,cid,value from settings where cid=%u and name='%S'"); RDbView view; TBuf<128> sql; TUint32 cid=CategoryL(Message().Ptr0()); HBufC8* param1=ValueLC(Message().Ptr1()); TPtrC name((const TUint16*)param1->Ptr(),param1->Length()/2); sql.Format(KSQL,cid,&name); User::LeaveIfError(view.Prepare(iServer.DbL(),TDbQuery(sql),(func==ESettingsServerRequestSet)?RDbView::EUpdatable:RDbView::EReadOnly)); CleanupClosePushL(view); User::LeaveIfError(view.EvaluateAll()); TBool first=view.FirstL(); if(func==ESettingsServerRequestSet) { if(first) view.UpdateL(); else view.InsertL(); CleanupCancelPushL(view); if(!first) { view.SetColL(2,name); view.SetColL(3,cid); } HBufC8* value=ValueLC(Message().Ptr2()); view.SetColL(4,*value); view.PutL(); CleanupStack::Pop(); //view cancel CleanupStack::PopAndDestroy(); //value iServer.Notify(); } else { if(!first) User::Leave(KErrNotFound); view.GetL(); TInt len=view.ColSize(4); if(func==ESettingsServerRequestGetData) { HBufC8* data=HBufC8::NewLC(len); TPtr8 ptr(data->Des()); RDbColReadStream stream; stream.OpenLC(view,4); stream.ReadL(ptr,len); Message().WriteL(Message().Ptr2(),ptr); CleanupStack::PopAndDestroy(2); //stream,data } else { TPckgC<TInt> size(len); Message().WriteL(Message().Ptr2(),size); } } CleanupStack::PopAndDestroy(2); //view,param1 }
// ----------------------------------------------------------------------------- // ----------------------------------------------------------------------------- // void PosLmLandmarkHandler::UpdateIconAndBasicLandmarkInfoL( CPosLmLocalDbAccess& aDbAccess, const CPosLandmark& aLandmark, const CPosLandmark& aOldLandmark) { if (!CheckIfIconAndBasicInfoAreEqualL(aLandmark, aOldLandmark)) { TUint32 oldIconId; TBool oldIconExists = ReadIconPathIdL(aDbAccess, aLandmark.LandmarkId(), oldIconId); TPtrC path; TInt iconIndex; TInt maskIndex; TUint32 iconId = 0; if (aLandmark.GetIcon(path, iconIndex, maskIndex) == KErrNone) { PosLmIconHandler::GetIconPathIdL(aDbAccess, path, iconId); } HBufC* sql = HBufC::NewLC(KPosLmSqlStatementMaxLen); sql->Des().Format(KPosLmSqlFindUint, &KPosLmSqlAll, &KPosLmLandmarkTable, &KPosLmLandmarkIdCol, aLandmark.LandmarkId()); RDbView view; aDbAccess.PrepareViewLC(CPosLmLocalDbAccess::EUpdatablePreparation, view, *sql); if (view.NextL()) { view.UpdateL(); SetIconL(view, aLandmark, iconId); SetPositionL(view, aLandmark); SetCoverageRadiusL(view, aLandmark); SetLandmarkNameL(view, aLandmark); SetLandmarkDescriptionL(view, aLandmark); view.PutL(); } else { User::Leave(KErrNotFound); } CleanupStack::PopAndDestroy(2, sql); //&view if (oldIconExists) { PosLmIconHandler::RemoveIconIfNotUsedL(aDbAccess, oldIconId); } } }
// -------------------------------- // CNSmlRoamTable::UpdateItemL(RDbView& aView, CNSmlRoamItem& aItem ) // Updates item in the IAP table // -------------------------------- // void CNSmlRoamTable::UpdateItemL(RDbView& aView, CNSmlRoamItem& aItem ) { aView.FirstL(); aView.UpdateL(); aView.SetColL( iColSet->ColNo( KColProfileId ), aItem.iProfileId ); aView.SetColL( iColSet->ColNo( KColPriority ), aItem.iPriority ); aView.SetColL( iColSet->ColNo( KColIapId ), aItem.iIAPId ); aView.PutL(); #ifdef __MODULETEST test.iUpdated++; #endif }
/** @SYMTestCaseID SYSLIB-DBMS-CT-3407 @SYMTestCaseDesc Test for defect DEF103023 - DBMS requires ReadDeviceData and WriteDeviceData capability to read from the db. The current test application has no capabilities at all. "C:TestDB.DB" database is a secure shared database with: - no "READ" polycy (no restrictions apply to the database read operations); - "WRITE" policy with "WriteUserData" capability defined; - "SCHEMA" policy with "NetworkServices" capability defined; - table C has no defined securoty policy, so the database security policy will be used; The current test application should be able to: - begin/commit/rollback a "read-only" transaction; But should fail if: - begin a transaction and try to modify the database within the transaction; This test function asserts the test cases described above. @SYMTestPriority High @SYMTestActions Test for defect DEF103023 - DBMS requires ReadDeviceData and WriteDeviceData capability to read from the db. @SYMTestExpectedResults Test must not fail @SYMDEF DEF103023 */ void DEF103023L() { TheTest.Printf(_L("Begin a transaction. Read-only operations tested\n")); TInt err = TheDb.Begin(); TEST2(err, KErrNone); TheTest.Printf(_L("Perform some read-only operations inside the transaction\n")); err = TheView.Prepare(TheDb, _L("SELECT * FROM C")); TEST2(err, KErrNone); err = TheView.EvaluateAll(); TEST2(err, KErrNone); TInt cnt = TheView.CountL(); TEST(cnt > 0); TBool rc = TheView.FirstL(); TEST(rc); TheView.GetL(); TInt val = TheView.ColInt32(1); rc = TheView.LastL(); TEST(rc); rc = TheView.NextL(); TEST(!rc); rc = TheView.PreviousL(); TEST(rc); TheView.BeginningL(); TheView.EndL(); TheView.Close(); TheTest.Printf(_L("Commit a transaction\n")); err = TheDb.Commit(); TEST2(err, KErrNone); // TheTest.Printf(_L("Begin a transaction. Read-only operations tested\n")); err = TheDb.Begin(); TEST2(err, KErrNone); err = TheView.Prepare(TheDb, _L("SELECT * FROM C")); TEST2(err, KErrNone); err = TheView.EvaluateAll(); TEST2(err, KErrNone); cnt = TheView.CountL(); TEST(cnt > 0); TheView.Close(); TheTest.Printf(_L("Rollback a transaction\n")); TheDb.Rollback(); // TheTest.Printf(_L("Begin a transaction. Tested operations violate the database security\n")); err = TheDb.Begin(); TEST2(err, KErrNone); err = TheView.Prepare(TheDb, _L("SELECT * FROM C")); TEST2(err, KErrNone); err = TheView.EvaluateAll(); TEST2(err, KErrNone); rc = TheView.FirstL(); TEST(rc); TheView.GetL(); TheTest.Printf(_L("An attempt to update a record within the transaction\n")); TRAP(err, TheView.UpdateL()); TEST2(err, KErrPermissionDenied); TheTest.Printf(_L("An attempt to delete a record within the transaction\n")); TRAP(err, TheView.DeleteL()); TEST2(err, KErrPermissionDenied); TheTest.Printf(_L("An attempt to insert a record within the transaction\n")); TRAP(err, TheView.InsertL()); TEST2(err, KErrPermissionDenied); TheView.Close(); TheTest.Printf(_L("An attempt to modify the database schema within the transaction\n")); err = TheDb.Execute(_L("CREATE TABLE C2(Id INTEGER, Z INTEGER)")); TEST2(err, KErrPermissionDenied); TheTest.Printf(_L("An attempt to execute an INSERT statement within the transaction\n")); err = TheDb.Execute(_L("INSERT INTO C VALUES(100)")); TEST2(err, KErrPermissionDenied); TheTest.Printf(_L("An attempt to modify the database within the transaction using RDbUpdate\n")); RDbUpdate update; err = update.Execute(TheDb, _L("INSERT INTO C VALUES(200)")); TEST2(err, KErrPermissionDenied); update.Close(); TheTest.Printf(_L("Rollback a transaction\n")); TheDb.Rollback(); }
void eap_am_type_securid_symbian_c::store_authentication_timeL() { EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT); EAP_TRACE_DEBUG(m_am_tools, TRACE_FLAGS_DEFAULT, ( EAPL("eap_am_type_securid_symbian_c::store_authentication_timeL: EAP-tunneling type=0xfe%06x%08x\n"), m_tunneling_type.get_vendor_id(), m_tunneling_type.get_vendor_type())); HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); TPtr sqlStatement = buf->Des(); // Query all the relevant parameters _LIT(KSQLQuery, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d"); if (m_eap_type == eap_type_generic_token_card) { sqlStatement.Format( KSQLQuery, &KGTCLastFullAuthTime, &KGtcTableName, &KServiceType, m_index_type, &KServiceIndex, m_index, &KTunnelingTypeVendorId, m_tunneling_type.get_vendor_id(), &KTunnelingType, m_tunneling_type.get_vendor_type()); } else { // Secure ID is not supported at the moment. // Leave with error. CleanupStack::PopAndDestroy(buf); // Delete buf. User::Leave(KErrNotSupported); } RDbView view; // Evaluate view User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement), TDbWindow::EUnlimited)); CleanupClosePushL(view); User::LeaveIfError(view.EvaluateAll()); // Get the first (and only) row for updation. view.FirstL(); view.UpdateL(); // Get column set so we get the correct column numbers CDbColSet* colSet = view.ColSetL(); CleanupStack::PushL(colSet); // Get the current universal time. TTime currentTime; currentTime.UniversalTime(); #if defined(_DEBUG) || defined(DEBUG) TDateTime currentDateTime = currentTime.DateTime(); EAP_TRACE_DEBUG(m_am_tools, TRACE_FLAGS_DEFAULT, (EAPL("eap_am_type_securid_symbian_c::store_authentication_time, %2d-%2d-%4d : %2d-%2d-%2d-%d\n"), currentDateTime.Day()+1, currentDateTime.Month()+1,currentDateTime.Year(), currentDateTime.Hour(), currentDateTime.Minute(), currentDateTime.Second(), currentDateTime.MicroSecond())); #endif TInt64 fullAuthTime = currentTime.Int64(); view.SetColL(colSet->ColNo(KGTCLastFullAuthTime), fullAuthTime); view.PutL(); CleanupStack::PopAndDestroy(colSet); // Delete colSet. CleanupStack::PopAndDestroy(&view); // Close view. CleanupStack::PopAndDestroy(buf); // Delete buf. EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT); }