persistentstorage/sql/SRC/Client/SQLDatabase.cpp
branchRCL_3
changeset 24 cc28652e0254
parent 23 26645d81f48d
equal deleted inserted replaced
23:26645d81f48d 24:cc28652e0254
     1 // Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
     1 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     3 // This component and the accompanying materials are made available
     4 // under the terms of "Eclipse Public License v1.0"
     4 // under the terms of "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
    11 // Contributors:
    11 // Contributors:
    12 //
    12 //
    13 // Description:
    13 // Description:
    14 //
    14 //
    15 
    15 
    16 #include "SqlAssert.h"			//ESqlPanicInvalidObj, ESqlPanicObjExists
    16 #include "SqlPanic.h"			//ESqlPanicInvalidObj, ESqlPanicObjExists
    17 #include "SqlDatabaseImpl.h"	//CSqlDatabaseImpl
    17 #include "SqlDatabaseImpl.h"	//CSqlDatabaseImpl
    18 #include "OstTraceDefinitions.h"
       
    19 #ifdef OST_TRACE_COMPILER_IN_USE
       
    20 #include "SqlDatabaseTraces.h"
       
    21 #endif
       
    22 #include "SqlTraceDef.h"
       
    23 
    18 
    24 /**
    19 /**
    25 Gets the category of the return code value that is returned by
    20 Gets the category of the return code value that is returned by
    26 a call to the SQL API.
    21 a call to the SQL API.
    27 
    22 
    98 
    93 
    99 @capability None
    94 @capability None
   100 */
    95 */
   101 EXPORT_C TInt RSqlDatabase::Create(const TDesC& aDbFileName, const TDesC8* aConfig)
    96 EXPORT_C TInt RSqlDatabase::Create(const TDesC& aDbFileName, const TDesC8* aConfig)
   102 	{
    97 	{
   103     __SQLTRACE_BORDEREXPR(TPtrC8 config(aConfig ? *aConfig : KNullDesC8));
    98 	SQLUTRACE_PROFILER(this);
   104 	__SQLTRACE_BORDERVAR(TBuf<100> des16prnbuf);
    99 	SYMBIAN_TRACE_SQL_EVENTS_ONLY(UTF::Printf(UTF::TTraceContext(UTF::EInternals), KStrParam16, 1, &aDbFileName));
   105 	SQL_TRACE_BORDER(OstTraceExt3(TRACE_BORDER, RSQLDATABASE_CREATE_ENTRY, "Entry;0x%X;RSqlDatabase::Create;aDbFileName=%S;aConfig=%s", (TUint)this, __SQLPRNSTR(aDbFileName), __SQLPRNSTR8(config, des16prnbuf)));
   100 	SYMBIAN_TRACE_SQL_EVENTS_ONLY(aConfig ? (void)UTF::Printf(UTF::TTraceContext(UTF::EInternals), 
       
   101 			KStrParam, 2, aConfig) : void(0));
       
   102 	
   106 	TRAPD(err, iImpl = CSqlDatabaseImpl::NewL(ESqlSrvDbCreate, aDbFileName, NULL, aConfig));
   103 	TRAPD(err, iImpl = CSqlDatabaseImpl::NewL(ESqlSrvDbCreate, aDbFileName, NULL, aConfig));
   107     SQL_TRACE_BORDER(OstTraceExt3(TRACE_BORDER, RSQLDATABASE_CREATE_Exit, "Exit;0x%X;RSqlDatabase::Create;iImpl=0x%X;err=%d", (TUint)this, (TUint)iImpl, err));
       
   108 	return err;
   104 	return err;
   109 	}
   105 	}
   110 	
   106 	
   111 /**
   107 /**
   112 Creates a new shared secure database.
   108 Creates a new shared secure database.
   148 @see RSqlSecurityPolicy::TPolicyType
   144 @see RSqlSecurityPolicy::TPolicyType
   149 */
   145 */
   150 EXPORT_C TInt RSqlDatabase::Create(const TDesC& aDbFileName,
   146 EXPORT_C TInt RSqlDatabase::Create(const TDesC& aDbFileName,
   151 						const RSqlSecurityPolicy& aSecurityPolicy, const TDesC8* aConfig)
   147 						const RSqlSecurityPolicy& aSecurityPolicy, const TDesC8* aConfig)
   152 	{
   148 	{
   153     __SQLTRACE_BORDEREXPR(TPtrC8 config(aConfig ? *aConfig : KNullDesC8));
   149 	SQLUTRACE_PROFILER(this);
   154 	__SQLTRACE_BORDERVAR(TBuf<100> des16prnbuf);
   150 	SYMBIAN_TRACE_SQL_EVENTS_ONLY(UTF::Printf(UTF::TTraceContext(UTF::EInternals), KStrParam16, 1, &aDbFileName));
   155     SQL_TRACE_BORDER(OstTraceExt4(TRACE_BORDER, RSQLDATABASE_CREATE2_ENTRY, "Entry;0x%X;RSqlDatabase::Create;aDbFileName=%S;aSecurityPolicy=0x%X;aConfig=%s", (TUint)this, __SQLPRNSTR(aDbFileName), (TUint)&aSecurityPolicy, __SQLPRNSTR8(config, des16prnbuf)));
   151 	SYMBIAN_TRACE_SQL_EVENTS_ONLY(aConfig ? (void)UTF::Printf(UTF::TTraceContext(UTF::EInternals), 
   156 	TRAPD(err, 	iImpl = CSqlDatabaseImpl::NewL(ESqlSrvDbCreateSecure, aDbFileName, &aSecurityPolicy.Impl(), aConfig));
   152 			KStrParam, 2, aConfig) : void(0));
   157     SQL_TRACE_BORDER(OstTraceExt3(TRACE_BORDER, RSQLDATABASE_CREATE2_Exit, "Exit;0x%X;RSqlDatabase::Create;iImpl=0x%X;err=%d", (TUint)this, (TUint)iImpl, err));
   153 	
       
   154 	TRAPD(err, 	iImpl = CSqlDatabaseImpl::NewL(ESqlSrvDbCreateSecure, aDbFileName,
       
   155 			&aSecurityPolicy.Impl(), aConfig));
   158 	return err;
   156 	return err;
   159 	}
   157 	}
   160 	
   158 	
   161 /**
   159 /**
   162 Opens an existing database, which can be:
   160 Opens an existing database, which can be:
   199 @see RSqlSecurityPolicy
   197 @see RSqlSecurityPolicy
   200 @see RSqlSecurityPolicy::TPolicyType
   198 @see RSqlSecurityPolicy::TPolicyType
   201 */
   199 */
   202 EXPORT_C TInt RSqlDatabase::Open(const TDesC& aDbFileName, const TDesC8* aConfig)
   200 EXPORT_C TInt RSqlDatabase::Open(const TDesC& aDbFileName, const TDesC8* aConfig)
   203 	{
   201 	{
   204     __SQLTRACE_BORDEREXPR(TPtrC8 config(aConfig ? *aConfig : KNullDesC8));
   202 	SQLUTRACE_PROFILER(this);
   205 	__SQLTRACE_BORDERVAR(TBuf<100> des16prnbuf);
   203 	SYMBIAN_TRACE_SQL_EVENTS_ONLY(UTF::Printf(UTF::TTraceContext(UTF::EInternals), KStrParam16, 1, &aDbFileName));
   206     SQL_TRACE_BORDER(OstTraceExt3(TRACE_BORDER, RSQLDATABASE_OPEN_ENTRY, "Entry;0x%X;RSqlDatabase::Open;aDbFileName=%S;aConfig=%s", (TUint)this, __SQLPRNSTR(aDbFileName), __SQLPRNSTR8(config, des16prnbuf)));
   204 	SYMBIAN_TRACE_SQL_EVENTS_ONLY(aConfig ? (void)UTF::Printf(UTF::TTraceContext(UTF::EInternals), 
       
   205 			KStrParam, 2, aConfig) : void(0));
       
   206 	
   207 	TRAPD(err, iImpl = CSqlDatabaseImpl::NewL(ESqlSrvDbOpen, aDbFileName, NULL, aConfig));
   207 	TRAPD(err, iImpl = CSqlDatabaseImpl::NewL(ESqlSrvDbOpen, aDbFileName, NULL, aConfig));
   208     SQL_TRACE_BORDER(OstTraceExt3(TRACE_BORDER, RSQLDATABASE_OPEN_EXIT, "Exit;0x%X;RSqlDatabase::Open;iImpl=0x%X;err=%d", (TUint)this, (TUint)iImpl, err));
       
   209 	return err;
   208 	return err;
   210 	}
   209 	}
   211 
   210 
   212 /**
   211 /**
   213 Creates a new shared non-secure or private secure database.
   212 Creates a new shared non-secure or private secure database.
   239 
   238 
   240 @capability None
   239 @capability None
   241 */
   240 */
   242 EXPORT_C void RSqlDatabase::CreateL(const TDesC& aDbFileName, const TDesC8* aConfig)
   241 EXPORT_C void RSqlDatabase::CreateL(const TDesC& aDbFileName, const TDesC8* aConfig)
   243 	{
   242 	{
   244     __SQLTRACE_BORDEREXPR(TPtrC8 config(aConfig ? *aConfig : KNullDesC8));
   243 	SQLUTRACE_PROFILER(this);
   245 	__SQLTRACE_BORDERVAR(TBuf<100> des16prnbuf);
   244 	SYMBIAN_TRACE_SQL_EVENTS_ONLY(UTF::Printf(UTF::TTraceContext(UTF::EInternals), KStrParam16, 1, &aDbFileName));
   246     SQL_TRACE_BORDER(OstTraceExt3(TRACE_BORDER, RSQLDATABASE_CREATEL_ENTRY, "Entry;0x%X;RSqlDatabase::CreateL;aDbFileName=%S;aConfig=%s", (TUint)this, __SQLPRNSTR(aDbFileName), __SQLPRNSTR8(config, des16prnbuf)));
   245 	SYMBIAN_TRACE_SQL_EVENTS_ONLY(aConfig ? (void)UTF::Printf(UTF::TTraceContext(UTF::EInternals), 
       
   246 			KStrParam, 2, aConfig) : void(0));
       
   247 	
   247 	iImpl = CSqlDatabaseImpl::NewL(ESqlSrvDbCreate, aDbFileName, NULL, aConfig);
   248 	iImpl = CSqlDatabaseImpl::NewL(ESqlSrvDbCreate, aDbFileName, NULL, aConfig);
   248     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_CREATEL_EXIT, "Entry;0x%X;RSqlDatabase::CreateL;iImpl=0x%X", (TUint)this, (TUint)iImpl));
       
   249 	}
   249 	}
   250 	
   250 	
   251 /**
   251 /**
   252 Creates a new shared secure database.
   252 Creates a new shared secure database.
   253 @param aDbFileName       The name of the file that is to host the database.
   253 @param aDbFileName       The name of the file that is to host the database.
   286 @see RSqlSecurityPolicy::TPolicyType
   286 @see RSqlSecurityPolicy::TPolicyType
   287 */
   287 */
   288 EXPORT_C void RSqlDatabase::CreateL(const TDesC& aDbFileName,
   288 EXPORT_C void RSqlDatabase::CreateL(const TDesC& aDbFileName,
   289 				const RSqlSecurityPolicy& aSecurityPolicy, const TDesC8* aConfig)
   289 				const RSqlSecurityPolicy& aSecurityPolicy, const TDesC8* aConfig)
   290 	{
   290 	{
   291     __SQLTRACE_BORDEREXPR(TPtrC8 config(aConfig ? *aConfig : KNullDesC8));
   291 	SQLUTRACE_PROFILER(this);
   292 	__SQLTRACE_BORDERVAR(TBuf<100> des16prnbuf);
   292 	SYMBIAN_TRACE_SQL_EVENTS_ONLY(UTF::Printf(UTF::TTraceContext(UTF::EInternals), KStrParam16, 1, &aDbFileName));
   293     SQL_TRACE_BORDER(OstTraceExt4(TRACE_BORDER, RSQLDATABASE_CREATEL2_ENTRY, "Entry;0x%X;RSqlDatabase::CreateL;aDbFileName=%S;aSecurityPolicy=0x%X;aConfig=%s", (TUint)this, __SQLPRNSTR(aDbFileName), (TUint)&aSecurityPolicy, __SQLPRNSTR8(config, des16prnbuf)));
   293 	SYMBIAN_TRACE_SQL_EVENTS_ONLY(aConfig ? (void)UTF::Printf(UTF::TTraceContext(UTF::EInternals), 
   294 	iImpl = CSqlDatabaseImpl::NewL(ESqlSrvDbCreateSecure, aDbFileName, &aSecurityPolicy.Impl(), aConfig);
   294 			KStrParam, 2, aConfig) : void(0));
   295     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_CREATEL2_EXIT, "Exit;0x%X;RSqlDatabase::CreateL;iImpl=0x%X", (TUint)this, (TUint)iImpl));
   295 	
       
   296 	iImpl = CSqlDatabaseImpl::NewL(ESqlSrvDbCreateSecure, aDbFileName,
       
   297 						&aSecurityPolicy.Impl(), aConfig);
   296 	}
   298 	}
   297 	
   299 	
   298 /**
   300 /**
   299 Opens an existing database, which can be:
   301 Opens an existing database, which can be:
   300 @code
   302 @code
   335 @see RSqlSecurityPolicy
   337 @see RSqlSecurityPolicy
   336 @see RSqlSecurityPolicy::TPolicyType
   338 @see RSqlSecurityPolicy::TPolicyType
   337 */
   339 */
   338 EXPORT_C void RSqlDatabase::OpenL(const TDesC& aDbFileName, const TDesC8* aConfig)
   340 EXPORT_C void RSqlDatabase::OpenL(const TDesC& aDbFileName, const TDesC8* aConfig)
   339 	{
   341 	{
   340     __SQLTRACE_BORDEREXPR(TPtrC8 config(aConfig ? *aConfig : KNullDesC8));
   342 	SQLUTRACE_PROFILER(this);
   341     SQL_TRACE_BORDER(OstTraceExt3(TRACE_BORDER, RSQLDATABASE_OPENL_ENTRY, "Entry;0x%X;RSqlDatabase::OpenL;aDbFileName=%S;aConfig=%s", (TUint)this, __SQLPRNSTR(aDbFileName), __SQLPRNSTR(config)));
   343 	SYMBIAN_TRACE_SQL_EVENTS_ONLY(UTF::Printf(UTF::TTraceContext(UTF::EInternals), KStrParam16, 1, &aDbFileName));
       
   344 	SYMBIAN_TRACE_SQL_EVENTS_ONLY(aConfig ? (void)UTF::Printf(UTF::TTraceContext(UTF::EInternals), 
       
   345 			KStrParam, 2, aConfig) : void(0));
       
   346 	
   342 	iImpl = CSqlDatabaseImpl::NewL(ESqlSrvDbOpen, aDbFileName, NULL, aConfig);
   347 	iImpl = CSqlDatabaseImpl::NewL(ESqlSrvDbOpen, aDbFileName, NULL, aConfig);
   343     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_OPENL_EXIT, "Exit;0x%X;RSqlDatabase::OpenL;iImpl=0x%X", (TUint)this, (TUint)iImpl));
       
   344 	}
   348 	}
   345 
   349 
   346 /**
   350 /**
   347 Closes this handle to the database.
   351 Closes this handle to the database.
   348 
   352 
   356 
   360 
   357 @capability None
   361 @capability None
   358 */
   362 */
   359 EXPORT_C void RSqlDatabase::Close()
   363 EXPORT_C void RSqlDatabase::Close()
   360 	{
   364 	{
   361     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_CLOSE_ENTRY, "Entry;0x%X;RSqlDatabase::Close;iImpl=0x%X", (TUint)this, (TUint)iImpl));
   365 	SQLUTRACE_PROFILER(this);
   362 	delete iImpl;
   366 	delete iImpl;
   363     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_CLOSE_EXIT, "Exit;0x%X;RSqlDatabase::Close;iImpl=0x%X", (TUint)this, (TUint)iImpl));
       
   364 	iImpl = NULL;
   367 	iImpl = NULL;
   365 	}
   368 	}
   366 	
   369 	
   367 /**
   370 /**
   368 Attaches an existing database to the current database connection.
   371 Attaches an existing database to the current database connection.
   403 @see RSqlSecurityPolicy
   406 @see RSqlSecurityPolicy
   404 @see RSqlSecurityPolicy::TPolicyType
   407 @see RSqlSecurityPolicy::TPolicyType
   405 */
   408 */
   406 EXPORT_C TInt RSqlDatabase::Attach(const TDesC& aDbFileName, const TDesC& aDbName)
   409 EXPORT_C TInt RSqlDatabase::Attach(const TDesC& aDbFileName, const TDesC& aDbName)
   407 	{
   410 	{
   408     SQL_TRACE_BORDER(OstTraceExt3(TRACE_BORDER, RSQLDATABASE_ATTACH_ENTRY, "Entry;0x%X;RSqlDatabase::Attach;aDbFileName=%S;aDbName=%S", (TUint)this, __SQLPRNSTR(aDbFileName), __SQLPRNSTR(aDbName)));
   411 	SQLUTRACE_PROFILER(this);
   409 	TInt err = Impl().Attach(aDbFileName, aDbName);
   412 	SYMBIAN_TRACE_SQL_EVENTS_ONLY(UTF::Printf(UTF::TTraceContext(UTF::EInternals), KStrStrParam16, &aDbFileName, &aDbName));
   410     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_ATTACH_EXIT, "Entry;0x%X;RSqlDatabase::Attach;err=%d", (TUint)this, err));
   413 	
   411 	return err;
   414 	return Impl().Attach(aDbFileName, aDbName);
   412 	}
   415 	}
   413 		
   416 		
   414 /**
   417 /**
   415 Detaches previously attached database.
   418 Detaches previously attached database.
   416 
   419 
   424 
   427 
   425 @capability None
   428 @capability None
   426 */
   429 */
   427 EXPORT_C TInt RSqlDatabase::Detach(const TDesC& aDbName)
   430 EXPORT_C TInt RSqlDatabase::Detach(const TDesC& aDbName)
   428 	{
   431 	{
   429     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_DETACH_ENTRY, "Entry;0x%X;RSqlDatabase::Detach;aDbName=%S", (TUint)this, __SQLPRNSTR(aDbName)));
   432 	SQLUTRACE_PROFILER(this);
   430 	TInt err = Impl().Detach(aDbName);
   433 	SYMBIAN_TRACE_SQL_EVENTS_ONLY(UTF::Printf(UTF::TTraceContext(UTF::EInternals), KStrParam16, 1, &aDbName));
   431     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_DETACH_EXIT, "Exit;0x%X;RSqlDatabase::Detach;err=%d", (TUint)this, err));
   434 	
   432 	return err;
   435 	return Impl().Detach(aDbName);
   433 	}
   436 	}
   434 
   437 
   435 /**
   438 /**
   436 Copies a database file to the specified location.
   439 Copies a database file to the specified location.
   437 
   440 
   465 
   468 
   466 Note that if the source database is a secure database, only the application, which created the database, can copy it.
   469 Note that if the source database is a secure database, only the application, which created the database, can copy it.
   467 */
   470 */
   468 EXPORT_C TInt RSqlDatabase::Copy(const TDesC& aSrcDbFileName, const TDesC& aDestDbFileName)
   471 EXPORT_C TInt RSqlDatabase::Copy(const TDesC& aSrcDbFileName, const TDesC& aDestDbFileName)
   469 	{
   472 	{
   470     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_COPY_ENTRY, "Entry;0;RSqlDatabase::Copy;aSrcDbFileName=%S;aDestDbFileName=%S", __SQLPRNSTR(aSrcDbFileName), __SQLPRNSTR(aDestDbFileName)));
   473 	SQLUTRACE_PROFILER(0);
   471 	TInt err = CSqlDatabaseImpl::Copy(aSrcDbFileName, aDestDbFileName);
   474 	SYMBIAN_TRACE_SQL_EVENTS_ONLY(UTF::Printf(UTF::TTraceContext(UTF::EInternals), KStrStrParam16, 
   472     SQL_TRACE_BORDER(OstTrace1(TRACE_BORDER, RSQLDATABASE_COPY_EXIT, "Exit;0;RSqlDatabase::Copy;err=%d", err));
   475 			&aSrcDbFileName, &aDestDbFileName));
   473 	return err;
   476 
       
   477 	return CSqlDatabaseImpl::Copy(aSrcDbFileName, aDestDbFileName);
   474 	}
   478 	}
   475 	
   479 	
   476 /**
   480 /**
   477 Deletes the specified database file.
   481 Deletes the specified database file.
   478 
   482 
   498 
   502 
   499 Note that if the database to be deleted is a secure database, only the application, which created the database, can delete it.
   503 Note that if the database to be deleted is a secure database, only the application, which created the database, can delete it.
   500 */
   504 */
   501 EXPORT_C TInt RSqlDatabase::Delete(const TDesC& aDbFileName)
   505 EXPORT_C TInt RSqlDatabase::Delete(const TDesC& aDbFileName)
   502 	{
   506 	{
   503     SQL_TRACE_BORDER(OstTraceExt1(TRACE_BORDER, RSQLDATABASE_DELETE_ENTRY, "Entry;0;RSqlDatabase::Delete;aDbFileName=%S", __SQLPRNSTR(aDbFileName)));
   507 	SQLUTRACE_PROFILER(0);
   504 	TInt err = CSqlDatabaseImpl::Delete(aDbFileName);
   508 	SYMBIAN_TRACE_SQL_EVENTS_ONLY(UTF::Printf(UTF::TTraceContext(UTF::EInternals), KStrParam16, 1, &aDbFileName));
   505     SQL_TRACE_BORDER(OstTrace1(TRACE_BORDER, RSQLDATABASE_DELETE_EXIT, "Exit;0;RSqlDatabase::Delete;err=%d", err));
   509 	
   506 	return err;
   510 	return CSqlDatabaseImpl::Delete(aDbFileName);
   507 	}
   511 	}
   508 	
   512 	
   509 /**
   513 /**
   510 Initializes aSecurityPolicy output parameter with a copy of the database security policies.
   514 Initializes aSecurityPolicy output parameter with a copy of the database security policies.
   511 The caller is responsible for destroying the initialized aSecurityPolicy paramemter.
   515 The caller is responsible for destroying the initialized aSecurityPolicy paramemter.
   521 
   525 
   522 @capability None
   526 @capability None
   523 */
   527 */
   524 EXPORT_C TInt RSqlDatabase::GetSecurityPolicy(RSqlSecurityPolicy& aSecurityPolicy) const
   528 EXPORT_C TInt RSqlDatabase::GetSecurityPolicy(RSqlSecurityPolicy& aSecurityPolicy) const
   525 	{
   529 	{
   526     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_GETSECURITYPOLICY_ENTRY, "Entry;0x%X;RSqlDatabase::GetSecurityPolicy;aSecurityPolicy=0x%X", (TUint)this, (TUint)&aSecurityPolicy));
   530 	SQLUTRACE_PROFILER(this);
   527 	TRAPD(err, CSqlSecurityPolicy* securityPolicy = Impl().CloneSecurityPolicyL(); aSecurityPolicy.Set(*securityPolicy));
   531 	TRAPD(err, CSqlSecurityPolicy* securityPolicy = Impl().CloneSecurityPolicyL();
   528     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_GETSECURITYPOLICY_EXIT, "Exit;0x%X;RSqlDatabase::GetSecurityPolicy;err=%d", (TUint)this, err));
   532 		aSecurityPolicy.Set(*securityPolicy));
       
   533 	
   529 	return err;
   534 	return err;
   530 	}
   535 	}
   531 	
   536 	
   532 /**
   537 /**
   533 Initializes aSecurityPolicy output parameter with a copy of the database security policies.
   538 Initializes aSecurityPolicy output parameter with a copy of the database security policies.
   543 
   548 
   544 @capability None
   549 @capability None
   545 */
   550 */
   546 EXPORT_C void RSqlDatabase::GetSecurityPolicyL(RSqlSecurityPolicy& aSecurityPolicy) const
   551 EXPORT_C void RSqlDatabase::GetSecurityPolicyL(RSqlSecurityPolicy& aSecurityPolicy) const
   547 	{
   552 	{
   548     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_GETSECURITYPOLICYL_ENTRY, "Entry;0x%X;RSqlDatabase::GetSecurityPolicyL;aSecurityPolicy=0x%X", (TUint)this, (TUint)&aSecurityPolicy));
   553 	SQLUTRACE_PROFILER(this);
   549 	CSqlSecurityPolicy* securityPolicy = Impl().CloneSecurityPolicyL();
   554 	CSqlSecurityPolicy* securityPolicy = Impl().CloneSecurityPolicyL();
   550 	aSecurityPolicy.Set(*securityPolicy);	
   555 	aSecurityPolicy.Set(*securityPolicy);	
   551     SQL_TRACE_BORDER(OstTrace1(TRACE_BORDER, RSQLDATABASE_GETSECURITYPOLICYL_EXIT, "Exit;0x%X;RSqlDatabase::GetSecurityPolicyL", (TUint)this));
       
   552 	}
   556 	}
   553 	
   557 	
   554 /**
   558 /**
   555 Sets the transaction isolation level for the database.
   559 Sets the transaction isolation level for the database.
   556 
   560 
   575 
   579 
   576 @capability None
   580 @capability None
   577 */
   581 */
   578 EXPORT_C TInt RSqlDatabase::SetIsolationLevel(RSqlDatabase::TIsolationLevel aIsolationLevel)
   582 EXPORT_C TInt RSqlDatabase::SetIsolationLevel(RSqlDatabase::TIsolationLevel aIsolationLevel)
   579 	{
   583 	{
   580     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_SETISOLATIONLEVEL_ENTRY, "Entry;0x%X;RSqlDatabase::SetIsolationLevel;aIsolationLevel=%d", (TUint)this, aIsolationLevel));
   584 	SQLUTRACE_PROFILER(this);
   581 	TInt err = Impl().SetIsolationLevel(aIsolationLevel);
   585 	return Impl().SetIsolationLevel(aIsolationLevel);
   582     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_SETISOLATIONLEVEL_EXIT, "Exit;0x%X;RSqlDatabase::SetIsolationLevel;err=%d", (TUint)this, err));
       
   583 	return err;
       
   584 	}
   586 	}
   585 	
   587 	
   586 /**
   588 /**
   587 Executes one or more 16-bit SQL statements.
   589 Executes one or more 16-bit SQL statements.
   588 
   590 
   628 @see RSqlSecurityPolicy
   630 @see RSqlSecurityPolicy
   629 @see RSqlSecurityPolicy::TPolicyType
   631 @see RSqlSecurityPolicy::TPolicyType
   630 */
   632 */
   631 EXPORT_C TInt RSqlDatabase::Exec(const TDesC& aSqlStmt)
   633 EXPORT_C TInt RSqlDatabase::Exec(const TDesC& aSqlStmt)
   632 	{
   634 	{
   633     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_EXEC16_ENTRY, "Entry;0x%X;RSqlDatabase::Exec16;aSqlStmt=%S", (TUint)this, __SQLPRNSTR(aSqlStmt)));
   635 	SQLUTRACE_PROFILER(this);
   634 	TInt err = Impl().Exec(aSqlStmt);
   636 	SYMBIAN_TRACE_SQL_EVENTS_ONLY(UTF::Printf(UTF::TTraceContext(UTF::EInternals), KStrParam16, 1, &aSqlStmt));
   635     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_EXEC16_EXIT, "Exit;0x%X;RSqlDatabase::Exec16;err=%d", (TUint)this, err));
   637 
   636     return err;
   638 	return Impl().Exec(aSqlStmt);
   637 	}
   639 	}
   638 	
   640 	
   639 /**
   641 /**
   640 Executes one or more 8-bit SQL statements.
   642 Executes one or more 8-bit SQL statements.
   641 
   643 
   681 @see RSqlSecurityPolicy
   683 @see RSqlSecurityPolicy
   682 @see RSqlSecurityPolicy::TPolicyType
   684 @see RSqlSecurityPolicy::TPolicyType
   683 */
   685 */
   684 EXPORT_C TInt RSqlDatabase::Exec(const TDesC8& aSqlStmt)
   686 EXPORT_C TInt RSqlDatabase::Exec(const TDesC8& aSqlStmt)
   685 	{
   687 	{
   686 	__SQLTRACE_BORDERVAR(TBuf<100> des16prnbuf);
   688 	SQLUTRACE_PROFILER(this);
   687     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_EXEC8_ENTRY, "Entry;0x%X;RSqlDatabase::Exec8;aSqlStmt=%s", (TUint)this, __SQLPRNSTR8(aSqlStmt, des16prnbuf)));
   689 	SYMBIAN_TRACE_SQL_EVENTS_ONLY(UTF::Printf(UTF::TTraceContext(UTF::EInternals), KStrParam, 1, &aSqlStmt));
   688 	TInt err = Impl().Exec(aSqlStmt);
   690 
   689     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_EXEC8_EXIT, "Exit;0x%X;RSqlDatabase::Exec8;err=%d", (TUint)this, err));
   691 	return Impl().Exec(aSqlStmt);
   690 	return err;
       
   691 	}
   692 	}
   692 
   693 
   693 /**
   694 /**
   694 Executes one or more 16-bit SQL statements asynchronously to allow client to avoid being blocked 
   695 Executes one or more 16-bit SQL statements asynchronously to allow client to avoid being blocked 
   695 by server activity.
   696 by server activity.
   740 @see RSqlSecurityPolicy
   741 @see RSqlSecurityPolicy
   741 @see RSqlSecurityPolicy::TPolicyType
   742 @see RSqlSecurityPolicy::TPolicyType
   742 */
   743 */
   743 EXPORT_C void RSqlDatabase::Exec(const TDesC& aSqlStmt, TRequestStatus& aStatus)
   744 EXPORT_C void RSqlDatabase::Exec(const TDesC& aSqlStmt, TRequestStatus& aStatus)
   744 	{
   745 	{
   745     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_EXECASYNC16_ENTRY, "Entry;0x%X;RSqlDatabase::ExecAsync16;aSqlStmt=%S", (TUint)this, __SQLPRNSTR(aSqlStmt)));
   746 	SQLUTRACE_PROFILER(this);
       
   747 	SYMBIAN_TRACE_SQL_EVENTS_ONLY(UTF::Printf(UTF::TTraceContext(UTF::EInternals), KStrParam16, 1, &aSqlStmt));
       
   748 
   746 	Impl().Exec(aSqlStmt, aStatus);
   749 	Impl().Exec(aSqlStmt, aStatus);
   747     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_EXECASYNC16_EXIT, "Exit;0x%X;RSqlDatabase::ExecAsync16;aStatus.Int()=%d", (TUint)this, aStatus.Int()));
       
   748 	}
   750 	}
   749 
   751 
   750 /**
   752 /**
   751 Executes one or more 8-bit SQL statements asynchronously to allow client to avoid being blocked 
   753 Executes one or more 8-bit SQL statements asynchronously to allow client to avoid being blocked 
   752 by server activity.
   754 by server activity.
   797 @see RSqlSecurityPolicy
   799 @see RSqlSecurityPolicy
   798 @see RSqlSecurityPolicy::TPolicyType
   800 @see RSqlSecurityPolicy::TPolicyType
   799 */
   801 */
   800 EXPORT_C void RSqlDatabase::Exec(const TDesC8& aSqlStmt, TRequestStatus& aStatus)
   802 EXPORT_C void RSqlDatabase::Exec(const TDesC8& aSqlStmt, TRequestStatus& aStatus)
   801 	{
   803 	{
   802 	__SQLTRACE_BORDERVAR(TBuf<100> des16prnbuf);
   804 	SQLUTRACE_PROFILER(this);
   803     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_EXECASYNC8_ENTRY, "Entry;0x%X;RSqlDatabase::ExecAsync8;aSqlStmt=%s", (TUint)this, __SQLPRNSTR8(aSqlStmt, des16prnbuf)));
   805 	SYMBIAN_TRACE_SQL_EVENTS_ONLY(UTF::Printf(UTF::TTraceContext(UTF::EInternals), KStrParam, 1, &aSqlStmt));
       
   806 
   804 	Impl().Exec(aSqlStmt, aStatus);
   807 	Impl().Exec(aSqlStmt, aStatus);
   805     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_EXECASYNC8_EXIT, "Exit;0x%X;RSqlDatabase::ExecAsync8;aStatus.Int()=%d", (TUint)this, aStatus.Int()));
       
   806 	}
   808 	}
   807 	
   809 	
   808 /**
   810 /**
   809 Retrieves a reference to the textual description of the error returned by the
   811 Retrieves a reference to the textual description of the error returned by the
   810 most recent call to any of the functions:
   812 most recent call to any of the functions:
   829 
   831 
   830 @capability None
   832 @capability None
   831 */
   833 */
   832 EXPORT_C TPtrC RSqlDatabase::LastErrorMessage() const
   834 EXPORT_C TPtrC RSqlDatabase::LastErrorMessage() const
   833 	{
   835 	{
   834 	TPtrC msg(Impl().LastErrorMessage());
   836 	SQLUTRACE_PROFILER(0);
   835     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_LASTERRORMESSAGE, "0x%X;RSqlDatabase::LastErrorMessage;msg=%S", (TUint)this, __SQLPRNSTR(msg)));
   837 	return Impl().LastErrorMessage();
   836 	return msg;
       
   837 	}
   838 	}
   838 
   839 
   839 /**
   840 /**
   840 Returns the ROWID of the most recent successful INSERT into the database 
   841 Returns the ROWID of the most recent successful INSERT into the database 
   841 from this database connection.
   842 from this database connection.
   847 
   848 
   848 @capability None
   849 @capability None
   849 */
   850 */
   850 EXPORT_C TInt64 RSqlDatabase::LastInsertedRowId() const
   851 EXPORT_C TInt64 RSqlDatabase::LastInsertedRowId() const
   851 	{
   852 	{
   852     SQL_TRACE_BORDER(OstTrace1(TRACE_BORDER, RSQLDATABASE_LASTINSERTEDROWID_ENTRY, "Entry;0x%X;RSqlDatabase::LastInsertedRowId", (TUint)this));
   853 	SQLUTRACE_PROFILER(0);
   853 	TInt64 rc = Impl().LastInsertedRowId();
   854 	return Impl().LastInsertedRowId();	
   854 	SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_LASTINSERTEDROWID_EXIT, "Exit;0x%X;RSqlDatabase::LastInsertedRowId;RowId=%lld", (TUint)this, rc));
       
   855 	return rc;
       
   856 	}
   855 	}
   857 
   856 
   858 /**
   857 /**
   859 Checks the database transaction state.
   858 Checks the database transaction state.
   860 
   859 
   862 
   861 
   863 @capability None
   862 @capability None
   864 */
   863 */
   865 EXPORT_C TBool RSqlDatabase::InTransaction() const
   864 EXPORT_C TBool RSqlDatabase::InTransaction() const
   866 	{
   865 	{
   867     SQL_TRACE_BORDER(OstTrace1(TRACE_BORDER, RSQLDATABASE_INTRABSACTION_ENTRY, "Entry;0x%X;RSqlDatabase::InTransaction", (TUint)this));
   866 	SQLUTRACE_PROFILER(0);
   868 	TBool res = Impl().InTransaction();
   867 	return Impl().InTransaction();
   869     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_INTRABSACTION_EXIT, "Exit;0x%X;RSqlDatabase::InTransaction;res=%d", (TUint)this, res));
       
   870 	return res;
       
   871 	}
   868 	}
   872 	
   869 	
   873 /**
   870 /**
   874 Returns the database file size, in bytes.
   871 Returns the database file size, in bytes.
   875 
   872 
   882 
   879 
   883 @capability None
   880 @capability None
   884 */
   881 */
   885 EXPORT_C TInt RSqlDatabase::Size() const
   882 EXPORT_C TInt RSqlDatabase::Size() const
   886 	{
   883 	{
   887     SQL_TRACE_BORDER(OstTrace1(TRACE_BORDER, RSQLDATABASE_SIZE_ENTRY, "Entry;0x%X;RSqlDatabase::Size", (TUint)this));
   884 	SQLUTRACE_PROFILER(0);
   888 	TInt rc = Impl().Size();
   885 	return Impl().Size();
   889     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_SIZE_EXIT, "Exit;0x%X;RSqlDatabase::Size;rc=%d", (TUint)this, rc));
       
   890 	return rc;
       
   891 	}
   886 	}
   892 
   887 
   893 /**
   888 /**
   894 Returns the database file size and free space, in bytes.
   889 Returns the database file size and free space, in bytes.
   895 
   890 
   905                   
   900                   
   906 @capability None
   901 @capability None
   907 */
   902 */
   908 EXPORT_C TInt RSqlDatabase::Size(RSqlDatabase::TSize& aSize, const TDesC& aDbName) const
   903 EXPORT_C TInt RSqlDatabase::Size(RSqlDatabase::TSize& aSize, const TDesC& aDbName) const
   909 	{
   904 	{
   910     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_SIZE2_ENTRY, "Entry;0x%X;RSqlDatabase::Size-2;aDbName=%S", (TUint)this, __SQLPRNSTR(aDbName)));
   905 	SQLUTRACE_PROFILER(0);
   911 	TInt err = Impl().Size(aSize, aDbName);
   906 	SYMBIAN_TRACE_SQL_EVENTS_ONLY(UTF::Printf(UTF::TTraceContext(UTF::EInternals), KStrParam16, 2, &aDbName));
   912     SQL_TRACE_BORDER(OstTraceExt4(TRACE_BORDER, RSQLDATABASE_SIZE2_EXIT, "Exit;0x%X;RSqlDatabase::Size-2;err=%d;aSize.iSize=%lld;aSize.iFree=%lld", (TUint)this, err, aSize.iSize, aSize.iFree));
   907 	
   913 	return err;
   908 	return Impl().Size(aSize, aDbName);
   914 	}
   909 	}
   915 
   910 
   916 /**
   911 /**
   917 Compacts the database.
   912 Compacts the database.
   918 This function should be used for databases that have been configured for a manual compaction during 
   913 This function should be used for databases that have been configured for a manual compaction during 
   943                   
   938                   
   944 @capability None
   939 @capability None
   945 */
   940 */
   946 EXPORT_C TInt RSqlDatabase::Compact(TInt64 aSize, const TDesC& aDbName)
   941 EXPORT_C TInt RSqlDatabase::Compact(TInt64 aSize, const TDesC& aDbName)
   947 	{
   942 	{
   948 	SQL_TRACE_BORDER(OstTraceExt3(TRACE_BORDER, RSQLDATABASE_COMPACT_ENTRY, "Entry;0x%X;RSqlDatabase::Compact;aSize=%lld;aDbName=%S", (TUint)this, aSize, __SQLPRNSTR(aDbName)));
   943 	SQLUTRACE_PROFILER(this);
   949 	TInt rc = Impl().Compact(aSize, aDbName);
   944 	SYMBIAN_TRACE_SQL_EVENTS_ONLY(UTF::Printf(UTF::TTraceContext(UTF::EInternals), KSizeStrParam16, 1, aSize, 2, &aDbName));
   950     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_COMPACT_EXIT, "Exit;0x%X;RSqlDatabase::Compact;rc=%d", (TUint)this, rc));
   945 
   951 	return rc;
   946 	return Impl().Compact(aSize, aDbName);
   952 	}
   947 	}
   953 	
   948 	
   954 /**
   949 /**
   955 Compacts the database asynchronously.
   950 Compacts the database asynchronously.
   956 This function should be used for databases that have been configured for a manual compaction during 
   951 This function should be used for databases that have been configured for a manual compaction during 
   983                   
   978                   
   984 @capability None
   979 @capability None
   985 */
   980 */
   986 EXPORT_C void RSqlDatabase::Compact(TInt64 aSize, TRequestStatus& aStatus, const TDesC& aDbName)
   981 EXPORT_C void RSqlDatabase::Compact(TInt64 aSize, TRequestStatus& aStatus, const TDesC& aDbName)
   987 	{
   982 	{
   988 	SQL_TRACE_BORDER(OstTraceExt3(TRACE_BORDER, RSQLDATABASE_COMPACTASYNC_ENTRY, "Entry;0x%X;RSqlDatabase::CompactAsync;aSize=%lld;aDbName=%S", (TUint)this, aSize, __SQLPRNSTR(aDbName)));
   983 	SQLUTRACE_PROFILER(this);
       
   984 	SYMBIAN_TRACE_SQL_EVENTS_ONLY(UTF::Printf(UTF::TTraceContext(UTF::EInternals), KSizeStrParam16, 1, aSize, 3, &aDbName));
       
   985 
   989 	Impl().Compact(aSize, aDbName, aStatus);
   986 	Impl().Compact(aSize, aDbName, aStatus);
   990     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_COMPACTASYNC_EXIT, "Exit;0x%X;RSqlDatabase::CompactAsync;aStatus.Int()=%d", (TUint)this, aStatus.Int()));
       
   991 	}
   987 	}
   992 
   988 
   993 /**
   989 /**
   994 Reserves a predefined amount of disk space on the drive where the database file is.
   990 Reserves a predefined amount of disk space on the drive where the database file is.
   995 
   991 
  1012 @see RSqlDatabase::GetReserveAccess()
  1008 @see RSqlDatabase::GetReserveAccess()
  1013 @see RSqlDatabase::ReleaseReserveAccess()
  1009 @see RSqlDatabase::ReleaseReserveAccess()
  1014 */
  1010 */
  1015 EXPORT_C TInt RSqlDatabase::ReserveDriveSpace(TInt aSize)
  1011 EXPORT_C TInt RSqlDatabase::ReserveDriveSpace(TInt aSize)
  1016 	{
  1012 	{
  1017     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_RESERVEDRIVESPACE_ENTRY, "Entry;0x%X;RSqlDatabase::ReserveDriveSpace;aSize=%d", (TUint)this, aSize));
  1013 	SQLUTRACE_PROFILER(this);
  1018 	//Usage of the IPC call arguments: 
  1014 	//Usage of the IPC call arguments: 
  1019 	//Arg 0: [out]  requested size
  1015 	//Arg 0: [out]  requested size
  1020 	TInt err = Impl().Session().SendReceive(ESqlSrvDbReserveDriveSpace, TIpcArgs(aSize));
  1016 	return Impl().Session().SendReceive(ESqlSrvDbReserveDriveSpace, TIpcArgs(aSize));
  1021     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_RESERVEDRIVESPACE_EXIT, "Exit;0x%X;RSqlDatabase::ReserveDriveSpace;err=%d", (TUint)this, err));
       
  1022     return err;
       
  1023 	}
  1017 	}
  1024 	
  1018 	
  1025 /**
  1019 /**
  1026 Frees the reserved disk space.
  1020 Frees the reserved disk space.
  1027 
  1021 
  1029 @see RSqlDatabase::GetReserveAccess()
  1023 @see RSqlDatabase::GetReserveAccess()
  1030 @see RSqlDatabase::ReleaseReserveAccess()
  1024 @see RSqlDatabase::ReleaseReserveAccess()
  1031 */
  1025 */
  1032 EXPORT_C void RSqlDatabase::FreeReservedSpace()
  1026 EXPORT_C void RSqlDatabase::FreeReservedSpace()
  1033 	{
  1027 	{
  1034     SQL_TRACE_BORDER(OstTrace1(TRACE_BORDER, RSQLDATABASE_FREERESERVEDSPACE_ENTRY, "Entry;0x%X;RSqlDatabase::FreeReservedSpace", (TUint)this));
  1028 	SQLUTRACE_PROFILER(this);
  1035 	__SQLTRACE_BORDERVAR(TInt err =) Impl().Session().SendReceive(ESqlSrvDbFreeReservedSpace);
  1029 	Impl().Session().SendReceive(ESqlSrvDbFreeReservedSpace);
  1036     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_FREERESERVEDSPACE_EXIT, "Exit;0x%X;RSqlDatabase::FreeReservedSpace;err=%d", (TUint)this, err));
       
  1037 	}
  1030 	}
  1038 	
  1031 	
  1039 /**
  1032 /**
  1040 Gives the client an access to the already reserved disk space.
  1033 Gives the client an access to the already reserved disk space.
  1041 
  1034 
  1048 @see RSqlDatabase::FreeReservedSpace()
  1041 @see RSqlDatabase::FreeReservedSpace()
  1049 @see RSqlDatabase::ReleaseReserveAccess()
  1042 @see RSqlDatabase::ReleaseReserveAccess()
  1050 */
  1043 */
  1051 EXPORT_C TInt RSqlDatabase::GetReserveAccess()
  1044 EXPORT_C TInt RSqlDatabase::GetReserveAccess()
  1052 	{
  1045 	{
  1053     SQL_TRACE_BORDER(OstTrace1(TRACE_BORDER, RSQLDATABASE_GETRESERVEACCESS_ENTRY, "Exit;0x%X;RSqlDatabase::GetReserveAccess", (TUint)this));
  1046 	SQLUTRACE_PROFILER(this);
  1054 	TInt err = Impl().Session().SendReceive(ESqlSrvDbGetReserveAccess);
  1047 	return Impl().Session().SendReceive(ESqlSrvDbGetReserveAccess);
  1055     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_GETRESERVEACCESS_EXIT, "Exit;0x%X;RSqlDatabase::GetReserveAccess;err=%d", (TUint)this, err));
       
  1056 	return err;
       
  1057 	}
  1048 	}
  1058 	
  1049 	
  1059 /**
  1050 /**
  1060 Releases the access to the reserved disk space.
  1051 Releases the access to the reserved disk space.
  1061 
  1052 
  1063 @see RSqlDatabase::FreeReservedSpace()
  1054 @see RSqlDatabase::FreeReservedSpace()
  1064 @see RSqlDatabase::GetReserveAccess()
  1055 @see RSqlDatabase::GetReserveAccess()
  1065 */
  1056 */
  1066 EXPORT_C void RSqlDatabase::ReleaseReserveAccess()
  1057 EXPORT_C void RSqlDatabase::ReleaseReserveAccess()
  1067 	{
  1058 	{
  1068     SQL_TRACE_BORDER(OstTrace1(TRACE_BORDER, RSQLDATABASE_RELEASERESERVEACCESS_ENTRY, "Entry;0x%X;RSqlDatabase::ReleaseReserveAccess", (TUint)this));
  1059 	SQLUTRACE_PROFILER(this);
  1069 	__SQLTRACE_BORDERVAR(TInt err =) Impl().Session().SendReceive(ESqlSrvDbReleaseReserveAccess);
  1060 	Impl().Session().SendReceive(ESqlSrvDbReleaseReserveAccess);
  1070     SQL_TRACE_BORDER(OstTraceExt2(TRACE_BORDER, RSQLDATABASE_RELEASERESERVEACCESS_EXIT, "Exit;0x%X;RSqlDatabase::ReleaseReserveAccess;err=%d", (TUint)this, err));
       
  1071 	}
  1061 	}
  1072 
  1062 
  1073 /**
  1063 /**
  1074 Returns a reference to the implementation object of RSqlDatabase - CSqlDatabaseImpl.
  1064 Returns a reference to the implementation object of RSqlDatabase - CSqlDatabaseImpl.
  1075 
  1065 
  1077 
  1067 
  1078 @internalComponent
  1068 @internalComponent
  1079 */
  1069 */
  1080 CSqlDatabaseImpl& RSqlDatabase::Impl() const
  1070 CSqlDatabaseImpl& RSqlDatabase::Impl() const
  1081 	{
  1071 	{
  1082 	__ASSERT_ALWAYS(iImpl != NULL, __SQLPANIC(ESqlPanicInvalidObj));
  1072 	__SQLASSERT_ALWAYS(iImpl != NULL, ESqlPanicInvalidObj);
  1083 	return *iImpl;	
  1073 	return *iImpl;	
  1084 	}
  1074 	}