persistentstorage/sql/SRC/Client/SqlStmtSession.inl
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:39:58 +0100
branchRCL_3
changeset 24 cc28652e0254
parent 23 26645d81f48d
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201035 Kit: 201035
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
24
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
     1
// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
0
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
// All rights reserved.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
// This component and the accompanying materials are made available
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
// which accompanies this distribution, and is available
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
//
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
// Initial Contributors:
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
//
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
// Contributors:
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
//
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
// Description:
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
// SqlDbSession.inl
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
// 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
//
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
/**
24
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    19
 
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    20
 Sends a request to the SQL server to prepare 16-bit aSqlStmt statement.
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    21
 
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    22
 Usage of the IPC call arguments:
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    23
 Arg 0: [in/out]		data buffer for the column and parameter count.
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    24
 Arg 1: [out]		statement length in characters
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    25
 Arg 2: [out]		16-bit statement
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    26
 
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    27
 @param aDbSession A reference to RSqlDbSession instance.
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    28
 @param aSqlStmt 16-bit SQL statement.
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    29
 @param aColumnCount Output parameter. Statement column count.
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    30
 @param aParamCount Output parameter. Statement parameter count.
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    31
 
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    32
 @return KErrNoMemory, an out of memory condition has occured;
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    33
 KErrArgument, bad argument, for example - the SQL string contains more than one SQL statements.
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    34
 Note that the function may leave with some database specific errors categorised as 
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    35
 ESqlDbError or other system-wide error codes;
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    36
 KErrNone      The operation has completed successfully. 
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    37
 
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    38
 @panic SqlDb 7 In _DEBUG mode if the statement handle is 0.
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    39
*/
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    40
inline TInt RSqlStatementSession::Prepare(RSqlDbSession& aDbSession, const TDesC& aSqlStmt, 
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    41
										  TInt& aColumnCount, TInt& aParamCount)
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    42
	{
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    43
	iDbSession = &aDbSession;
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    44
	TSqlIpcData data;
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    45
	TPckg<TSqlIpcData> pckg(data);
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    46
	TUint stmtLen = aSqlStmt.Length();
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    47
	iHandle = iDbSession->SendReceive(ESqlSrvStmtPrepare16, TIpcArgs(&pckg, stmtLen, &aSqlStmt));
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    48
	__SQLASSERT(iHandle != 0, ESqlPanicInternalError);	
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    49
	aColumnCount = static_cast <TInt> (data.iPrm1);
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    50
	aParamCount = static_cast <TInt> (data.iPrm2);
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    51
	return iHandle > 0 ? KErrNone : iHandle;
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    52
	}
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    53
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    54
/**
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    55
Sends a request to the SQL server to prepare 8-bit aSqlStmt statement.
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    56
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    57
Usage of the IPC call arguments:
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    58
Arg 0: [in/out]		data buffer for the column and parameter count.
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    59
Arg 1: [out]		statement length in characters
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    60
Arg 2: [out]		8-bit statement
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    61
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    62
@param aDbSession A reference to RSqlDbSession instance.
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    63
@param aSqlStmt 8-bit SQL statement.
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    64
@param aColumnCount Output parameter. Statement column count.
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    65
@param aParamCount Output parameter. Statement parameter count.
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    66
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    67
@return KErrNoMemory, an out of memory condition has occured;
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    68
	    KErrArgument, bad argument, for example - the SQL string contains more than one SQL statements.
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    69
                      Note that the function may leave with some database specific errors categorised as 
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    70
                      ESqlDbError or other system-wide error codes;
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    71
        KErrNone      The operation has completed successfully. 
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    72
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    73
@panic SqlDb 7 In _DEBUG mode if the statement handle is 0.
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    74
*/
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    75
inline TInt RSqlStatementSession::Prepare(RSqlDbSession& aDbSession, const TDesC8& aSqlStmt, 
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    76
										  TInt& aColumnCount, TInt& aParamCount)
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    77
	{
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    78
	iDbSession = &aDbSession;
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    79
	TSqlIpcData data;
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    80
	TPckg<TSqlIpcData> pckg(data);
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    81
	TUint stmtLen = aSqlStmt.Length();
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    82
	iHandle = iDbSession->SendReceive(ESqlSrvStmtPrepare8, TIpcArgs(&pckg, stmtLen, &aSqlStmt));
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    83
	__SQLASSERT(iHandle != 0, ESqlPanicInternalError);
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    84
	aColumnCount = static_cast <TInt> (data.iPrm1);
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    85
	aParamCount = static_cast <TInt> (data.iPrm2);
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    86
	return iHandle > 0 ? KErrNone : iHandle;
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    87
	}
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    88
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    89
/**
0
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    90
@panic SqlDb 2 In _DEBUG mode if the statement handle is 0 or the database session is NULL,
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    91
			   i.e. Prepare() has not yet been called on this RSqlStatementSession object.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
			   
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    93
@return A reference to the RSqlDbSession instance.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    94
*/
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
inline RSqlDbSession& RSqlStatementSession::DbSession() const
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    96
	{
24
cc28652e0254 Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents: 23
diff changeset
    97
	__SQLASSERT(iHandle > 0 && iDbSession != NULL, ESqlPanicInvalidObj);
0
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
	return *iDbSession;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    99
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
/**
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   102
Creates unitialized RSqlStatementSession object.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   103
*/
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   104
inline RSqlStatementSession::RSqlStatementSession() :
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
	iHandle(-1),
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
	iDbSession(NULL)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   108
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   109
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   110
/**
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   111
Sends a request to the SQL server to reset the prepared SQL statement.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
@return KErrNone The method completed successfully, system-wide error code otherwise.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   114
*/
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   115
inline TInt RSqlStatementSession::Reset()
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   116
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   117
	return DbSession().SendReceive(::MakeMsgCode(ESqlSrvStmtReset, ESqlSrvStatementHandle, iHandle));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   118
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   119
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   120
/**
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   121
Sends a request to the SQL server to execute the prepared SQL statement.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   122
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   123
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   124
@return >=0, The operation has completed successfully. The number of database rows that were 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   125
			 changed/inserted/deleted by the most recently completed INSERT/UPDATE/DELETE sql statement.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
			 Exception: If the executed statement is "DELETE FROM <table>", then the function returns 0 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
			 if the operation has completed successfully (disregarding the number of the deleted rows);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   128
	    KSqlErrStmtExpired, statement has expired (if new functions or collating sequences are 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   129
							registered or if an authorizer function is added or changed);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   130
		KErrNoMemory, an out of memory condition has occurred.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   131
                      Note that database specific errors categorised as ESqlDbError, and
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   132
                      other system-wide error codes may also be returned.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   133
*/
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   134
inline TInt RSqlStatementSession::Exec()
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   135
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   136
	return DbSession().SendReceive(::MakeMsgCode(ESqlSrvStmtExec, ESqlSrvStatementHandle, iHandle));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   137
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   138
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   139
/**
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   140
Sends a request asynchronously to the SQL server to execute the prepared SQL statement.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   141
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   142
@param aStatus Completion status of asynchronous request, one of the following:
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   143
@code
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   144
		- >=0, The operation has completed successfully. The number of database rows that were 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   145
			   changed/inserted/deleted by the most recently completed INSERT/UPDATE/DELETE sql statement.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   146
			 Exception: If the executed statement is "DELETE FROM <table>", then the function returns 0 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   147
			 if the operation has completed successfully (disregarding the number of the deleted rows);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   148
        - KSqlErrStmtExpired, the SQL statement has expired (if new functions or
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   149
                            collating sequences have been registered or if an
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   150
                            authorizer function has been added or changed);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   151
        - KErrNoMemory, an out of memory condition has occurred - the statement
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   152
                      will be reset.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   153
                      Note that aStatus may be set with database specific errors categorised as ESqlDbError, 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   154
                      and other system-wide error codes.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   155
@endcode
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   156
*/
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   157
inline void RSqlStatementSession::Exec(TRequestStatus& aStatus)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   158
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   159
	DbSession().SendReceive(::MakeMsgCode(ESqlSrvStmtAsyncExec, ESqlSrvStatementHandle, iHandle), aStatus);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   160
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   161
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   162
/**
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   163
Sends a request to the SQL server to execute the prepared SQL statement.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   164
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   165
Usage of the IPC call arguments:
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   166
Arg 0: [out]		parameter buffer length in bytes
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   167
Arg 1: [out]		parameter buffer
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   168
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   169
@param aParamBuf A buffer with the parameter values
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   170
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   171
@return >=0, The operation has completed successfully. The number of database rows that were 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   172
			 changed/inserted/deleted by the most recently completed INSERT/UPDATE/DELETE sql statement.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   173
			 Exception: If the executed statement is "DELETE FROM <table>", then the function returns 0 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
			 if the operation has completed successfully (disregarding the number of the deleted rows);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   175
	    KSqlErrStmtExpired, statement has expired (if new functions or collating sequences are 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   176
							registered or if an authorizer function is added or changed);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   177
		KErrNoMemory, an out of memory condition has occurred.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   178
                      Note that database specific errors categorised as ESqlDbError, and
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   179
                      other system-wide error codes may also be returned.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   180
*/
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   181
inline TInt RSqlStatementSession::BindExec(const RSqlBufFlat& aParamBuf)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   182
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   183
	TPtrC8 prmData(aParamBuf.BufDes());
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   184
	return DbSession().SendReceive(::MakeMsgCode(ESqlSrvStmtBindExec, ESqlSrvStatementHandle, iHandle), TIpcArgs(prmData.Length(), &prmData));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   185
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   186
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   187
/**
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   188
Sends a request asynchronously to the SQL server to execute the prepared SQL statement.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   189
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   190
Usage of the IPC call arguments:
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   191
Arg 0: [out]		parameter buffer length in bytes
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   192
Arg 1: [out]		parameter buffer
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   193
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   194
@param aParamBuf A buffer with the parameter values
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   195
@param aStatus Completion status of asynchronous request, one of the following:
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   196
@code
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   197
		- >=0, The operation has completed successfully. The number of database rows that were 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   198
			   changed/inserted/deleted by the most recently completed INSERT/UPDATE/DELETE sql statement.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   199
			 Exception: If the executed statement is "DELETE FROM <table>", then the function returns 0 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   200
			 if the operation has completed successfully (disregarding the number of the deleted rows);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   201
        - KSqlErrStmtExpired, the SQL statement has expired (if new functions or
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   202
                            collating sequences have been registered or if an
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   203
                            authorizer function has been added or changed);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   204
        - KErrNoMemory, an out of memory condition has occurred - the statement
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   205
                      will be reset.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   206
                      Note that aStatus may be set with database specific errors categorised as ESqlDbError, 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   207
                      and other system-wide error codes.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   208
@endcode
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   209
*/
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   210
inline void RSqlStatementSession::BindExec(const RSqlBufFlat& aParamBuf, TRequestStatus& aStatus)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   211
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   212
	const TDesC8& bufDes = aParamBuf.BufDes();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   213
	DbSession().SendReceive(::MakeMsgCode(ESqlSrvStmtAsyncBindExec, ESqlSrvStatementHandle, iHandle), TIpcArgs(bufDes.Length(), &bufDes), aStatus);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   214
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   215
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   216
/**
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   217
Sends a request to the SQL server to move to the next record which satisfies the 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   218
condition of the prepared SQL statement.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   219
If there is a valid next record, the method transfers the column values from the server.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   220
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   221
@param aColumnBuf It references RSqlBufFlat object where the column values will be stored.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   222
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   223
@return KSqlAtRow,      the record data is ready for processing by the caller;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   224
        KSqlAtEnd,      there is no more record data;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   225
        KSqlErrBusy,    the database file is locked;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   226
        KErrNoMemory,   an out of memory condition has occurred - the statement
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   227
                        will be reset;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   228
        KSqlErrGeneral, a run-time error has occured - this function must not
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   229
                        be called again;        
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   230
        KSqlErrMisuse,  this function has been called after a previous call
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   231
                        returned KSqlAtEnd or KSqlErrGeneral.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   232
        KSqlErrStmtExpired, the SQL statement has expired (if new functions or
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   233
                            collating sequences have been registered or if an
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   234
                            authorizer function has been added or changed);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   235
*/
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   236
inline TInt RSqlStatementSession::Next(RSqlBufFlat& aColumnBuf)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   237
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   238
	TIpcArgs ipcArgs;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   239
	return DoBindNext(ESqlSrvStmtNext, ipcArgs, aColumnBuf);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   240
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   241
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   242
/**
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   243
Sends a command to the server for retrieving a column data.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   244
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   245
Usage of the IPC call arguments:
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   246
Arg 0: [out]		column index
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   247
Arg 1: [out]		column data buffer length in bytes
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   248
Arg 2: [in/out]		column data buffer
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   249
*/	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   250
inline TInt RSqlStatementSession::ReadColumnValue(TInt aColumnIndex, TDes8& aBuf)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   251
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   252
	return DbSession().SendReceive(::MakeMsgCode(ESqlSrvStmtColumnValue, ESqlSrvStatementHandle, iHandle), TIpcArgs(aColumnIndex, aBuf.MaxLength(), &aBuf));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   253
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   254
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   255
/**
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   256
The method creates a read-only MStreamBuf derived object which allows the column with aColumnIndex index 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   257
to be accessed as a stream of bytes (if the column is a binary column) or characters 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   258
(if the column is a text column) and returns it to the caller.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   259
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   260
Usage of the IPC call arguments:
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   261
Arg 0: [out]	column index (0 based)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   262
Arg 2: [in]		ipc buffer, column source
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   263
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   264
The caller is responsible for the destroying of the read-only MStreamBuf derived object.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   265
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   266
@param aColumnIndex Column index (starting from 0)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   267
@return A pointer to the created read-only memory MStreamBuf derived object.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   268
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   269
@leave KErrNoMemory, an out of memory condition has occured;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   270
*/
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   271
inline MStreamBuf* RSqlStatementSession::ColumnSourceL(TInt aColumnIndex)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   272
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   273
	TIpcArgs args(aColumnIndex);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   274
	HIpcBuf* columnSource = HIpcBuf::NewL(DbSession(), ::MakeMsgCode(ESqlSrvStmtColumnSource, ESqlSrvStatementHandle, iHandle), args);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   275
	return columnSource;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   276
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   277
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   278
/**
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   279
The method creates an IPC object with buffering capabilities, allowing to stream out the data of the 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   280
parameter with aParameterIndex index and returns this MStreamBuf derived object to the caller.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   281
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   282
The caller is responsible for the destroying of the MStreamBuf derived object.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   283
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   284
Arg 0: [out]	parameter index (0 based)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   285
Arg 2: [in]		ipc buffer, parameter source
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   286
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   287
@param aParameterIndex Parameter index (starting from 0)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   288
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   289
@return A pointer to the created MStreamBuf derived object.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   290
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   291
@leave KErrNoMemory, an out of memory condition has occured;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   292
*/
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   293
inline MStreamBuf* RSqlStatementSession::ParamSinkL(TSqlSrvFunction aFunction, TInt aParamIndex)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   294
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   295
	TIpcArgs args(aParamIndex);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   296
	HIpcBuf* paramSink = HIpcBuf::NewL(DbSession(), ::MakeMsgCode(aFunction, ESqlSrvStatementHandle, iHandle), args);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   297
	return paramSink;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   298
	}