--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commands/sql/sqlsrv.h Wed Jun 23 15:52:26 2010 +0100
@@ -0,0 +1,108 @@
+// sqlsrv.h
+//
+// Copyright (c) 2010 Accenture. All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Accenture - Initial contribution
+//
+#ifndef __SQLSRV_H__
+#define __SQLSRV_H__
+// Include Files
+
+#include <fshell/common.mmh>
+
+#include <fshell/ioutils.h>
+#include <SqlDb.h>
+
+//class CSqlShared;
+//class CLineEditor;
+
+using namespace IoUtils;
+
+class CCmdSqlSrv : public CServerBase
+ {
+public:
+ static const TDesC* ColumnTypeToString(TSqlColumnType aType);
+ static void StripWrapDoubleQuote(HBufC& aText);
+
+ void PrintTime(const TTime& aTime, TBool aNewline);
+ static CCommandBase* NewLC();
+ static CCmdSqlSrv* GetServer();
+ ~CCmdSqlSrv();
+
+ TInt NextCommandId();
+
+ //SQL commands
+ void SqlCreateL(TDesC& aFilename, CServerCommandBase* aCommand);
+ void SqlOpenL(TDesC& aFilename, CServerCommandBase* aCommand);
+ void SqlExecL(TDesC& aStatement, CServerCommandBase* aCommand);
+ void SqlStateL(TDesC& aStatement, RPointerArray<HBufC> &aOptParamFile, CServerCommandBase* aCommand,
+ TDesC* aTempFileTemplate = NULL);
+ void SqlClose(CServerCommandBase* aCommand);
+ void SqlAttachL(TDesC& aFilename, TDesC& aDateBaseName, CServerCommandBase* aCommand);
+ void SqlDetachL(TDesC& aDateBaseName, CServerCommandBase* aCommand);
+
+#ifdef SQL_COMPACT
+ void SqlCompactL(TDesC* aDateBaseName, CServerCommandBase* aCommand);
+#endif
+ ///////////////////////////////////
+ void ReportResult(const TServerCommandId& aId, const TDesC& aName, TRefByValue<const TDesC> aFmt, ...);
+
+ //////////////////////////////////
+ void ParseResultL(RSqlStatement& aState, CServerCommandBase* aCommand, TDesC* aTempFileTemplate);
+
+private:
+ CCmdSqlSrv();
+ void ConstructL();
+ void MakeTempFilename(TDes& aTmpFile, TDesC& aTemplate);
+
+private:
+ enum TPrintPostfix
+ {
+ ENone,
+ ENewLine
+ };
+
+ void DoPrintf(TRefByValue<const TDesC> aFmt, ...);
+ void DoPrintf(TRefByValue<const TDesC8> aFmt, ...);
+ void DoPrintList(TRefByValue<const TDesC> aFmt, VA_LIST& aList, TPrintPostfix aPostfix = ENone);
+ void DoPrintList(TRefByValue<const TDesC8> aFmt, VA_LIST& aList, TPrintPostfix aPostfix = ENone);
+ void DoPrint(const TDesC& aDes, TPrintPostfix aPostfix = ENone);
+
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual const TDesC& Description() const;
+
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+ virtual void OptionsL(RCommandOptionList& aOptions);
+private: // From CServerBase.
+ virtual void InitializeL();
+ virtual void Report(const TServerCommandId& aId, const TDesC& aDes);
+ virtual void Report(const TServerCommandId& aId, const TDesC8& aDes);
+ virtual void ReportWarning(const TServerCommandId& aId, const TDesC& aDes);
+ virtual void ReportError(const TServerCommandId& aId, TInt aError, const TDesC& aDes);
+
+private:
+ RSqlDatabase iSqlDb;
+ TBool iDatabaseOpened; //when database is created or opened, set this to ETrue
+
+ TBool iExit;
+ TBuf<512> iLine;
+ TInt iExitReason;
+
+ TBool iLineRead;
+
+ TInt iNextCommandId;
+ TInt iTmpFileNo;
+
+private:
+ //use this static variable to make sure only one instance exists
+ static CCmdSqlSrv* iOnlyInstance;
+ };
+
+
+#endif //__SQLSRV_H__