First public contribution.
1 // Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
19 #include "D32Assert.h"
21 // Class CSqlCreateTableStatement
23 CDbIncremental* CSqlCreateTableStatement::ExecuteL(CDbDatabase& aDatabase,TDbTextComparison,TInt& aStep)
25 aDatabase.CreateTableL(iName,iColumns,0);
30 // Class CSqlDropTableStatement
32 CDbIncremental* CSqlDropTableStatement::ExecuteL(CDbDatabase& aDatabase,TDbTextComparison,TInt& aStep)
34 return aDatabase.DropTableL(iName,aStep);
37 // Class CSqlAlterTableStatement
39 CSqlAlterTableStatement::~CSqlAlterTableStatement()
44 CDbIncremental* CSqlAlterTableStatement::ExecuteL(CDbDatabase& aDatabase,TDbTextComparison,TInt& aStep)
46 CDbColSet* set=CDbColSet::NewLC();
47 aDatabase.ColumnsL(*set,iName);
48 TInt todrop=iDrop.Count();
49 for (TDbColSetIter iter(*set);iter;++iter)
59 if (iter->iName.CompareF(iDrop[ii])==0)
68 __LEAVE(KErrNotFound);
69 CleanupStack::PopAndDestroy(); // set
70 return aDatabase.AlterTableL(iName,iAdd,aStep);
73 // Class CSqlCreateIndexStatement
75 CDbIncremental* CSqlCreateIndexStatement::ExecuteL(CDbDatabase& aDatabase,TDbTextComparison aComparison,TInt& aStep)
77 // comparison can now be set from SQL, use aComparison only if existing comparison mode is
79 if ( iKey.Comparison() == EDbCompareNormal && aComparison != EDbCompareNormal )
81 iKey.SetComparison(aComparison);
83 return aDatabase.CreateIndexL(iName,iTable,iKey,aStep);
86 // Class CSqlDropIndexStatement
88 CDbIncremental* CSqlDropIndexStatement::ExecuteL(CDbDatabase& aDatabase,TDbTextComparison,TInt& aStep)
90 return aDatabase.DropIndexL(iName,iTable,aStep);