phonebookengines_old/contactsmodel/cntplsql/inc/dbsqlconstants.h
branchGCC_SURGE
changeset 41 d11de32a5e6f
parent 40 b46a585f6909
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookengines_old/contactsmodel/cntplsql/inc/dbsqlconstants.h	Tue Jun 15 14:45:31 2010 +0100
@@ -0,0 +1,257 @@
+// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include <cntdef.hrh>
+
+const TInt KInitialValue = -1;
+const TInt KNumOfTables = 4;
+const TInt KNumColInPrefTable = 6;
+const TInt KNumColInContactTable = 16;
+const TInt KNumColInGroupTable = 3;
+const TInt KNumColInCommTable = 5;
+
+// tables in the contact database 
+_LIT(KSqlContactTableName,"contact");
+_LIT(KSqlContactGroupTableName,"groups");
+_LIT(KSqlContactPrefTableName,"preferences");
+_LIT(KSqlContactCommAddrTableName,"comm_addr");
+
+enum TDatabaseTables
+	{
+	EContactPrefTableName,
+	EContactTableName,
+	EContactGroupTableName,
+	EContactCommAddressTableName
+	};
+
+// columns for contact table
+_LIT(KContactId, "contact_id");
+_LIT(KContactTemplateId, "template_id");
+_LIT(KContactTypeFlags, "type_flags");
+_LIT(KContactAccessCount, "access_count");
+_LIT(KContactCreationDate, "creation_date");
+_LIT(KContactLastModified, "last_modified");
+_LIT(KContactGuidString, "guid_string");
+_LIT(KContactFirstName, "first_name");
+_LIT(KContactLastName, "last_name");
+_LIT(KContactCompanyName, "company_name");
+_LIT(KContactFirstNamePrn, "firstname_prn");
+_LIT(KContactLastNamePrn, "lastname_prn");
+_LIT(KContactCompanyNamePrn, "companyname_prn");
+_LIT(KContactTextFieldHeader, "text_fields_header");
+_LIT(KContactBinaryFieldHeader, "binary_fields_header");
+_LIT(KContactTextFields, "text_fields");
+_LIT(KContactBinaryFields, "binary_fields");
+//end columns for contact table
+
+// parameters for contact table
+_LIT(KContactIdParam, ":contact_id");
+_LIT(KContactTemplateIdParam, ":template_id");
+_LIT(KContactTypeFlagsParam, ":type_flags");
+_LIT(KContactTypeParam, ":contact_type");
+_LIT(KAttributesAndHintParam, ":attr_and_hint");
+_LIT(KContactAccessCountParam, ":access_count");
+_LIT(KContactCreationDateParam, ":creation_date");
+_LIT(KContactLastModifiedParam, ":last_modified");
+_LIT(KContactGuidStringParam, ":guid_string");
+_LIT(KContactFirstNameParam, ":first_name");
+_LIT(KContactLastNameParam, ":last_name");
+_LIT(KContactCompanyNameParam, ":company_name");
+_LIT(KContactFirstNamePrnParam, ":firstname_prn");
+_LIT(KContactLastNamePrnParam, ":lastname_prn");
+_LIT(KContactCompanyNamePrnParam, ":companyname_prn");
+_LIT(KContactTextFieldHeaderParam, ":text_fields_header");
+_LIT(KContactBinaryFieldHeaderParam, ":binary_fields_header");
+_LIT(KContactTextFieldsParam, ":text_fields");
+_LIT(KContactBinaryFieldsParam, ":binary_fields");
+//end parameters for contact table
+
+// create statements
+_LIT(KContactCreateStmnt, "CREATE TABLE contact (contact_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, template_id INTEGER, type_flags INTEGER, access_count INTEGER, creation_date , last_modified , guid_string VARCHAR(255) NULL, first_name VARCHAR(255) NULL, last_name VARCHAR(255) NULL, company_name VARCHAR(255) NULL, firstname_prn VARCHAR(255) NULL, lastname_prn VARCHAR(255) NULL, companyname_prn VARCHAR(255) NULL, text_fields_header BLOB, binary_fields_header BLOB, text_fields TEXT, binary_fields BLOB); CREATE INDEX contact_guid_string_idx  ON contact (guid_string);");
+// end contact table
+
+// comm-address table
+// columns
+_LIT(KCommAddrId, "comm_addr_id");
+_LIT(KCommAddrType, "type");
+_LIT(KCommAddrValue, "value");
+_LIT(KCommAddrExtraValue, "extra_value");
+_LIT(KCommAddrContactId, "contact_id");
+// parameters
+_LIT(KCommAddrIdParam, ":comm_addr_id");
+_LIT(KCommAddrTypeParam, ":type");
+_LIT(KCommAddrValueParam, ":value");
+_LIT(KCommAddrExtraValueParam, ":extra_value");
+_LIT(KCommAddrContactIdParam, ":contact_id");
+// create statements
+_LIT(KCommAddrCreateStmnt, "CREATE TABLE comm_addr (comm_addr_id  INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, type INTEGER NOT NULL, value CHAR(255) NOT NULL, extra_value CHAR(255), contact_id INTEGER NOT NULL, FOREIGN KEY (contact_id) REFERENCES contact(contact_id)); CREATE INDEX comm_addr_val_idx  ON comm_addr (value); CREATE INDEX comm_addr_contact_id_idx  ON comm_addr (contact_id);");
+// end comm_address table
+
+// groups table
+// columns
+_LIT(KGroupId, "group_id");
+_LIT(KGroupContactGroupId, "contact_group_id");
+_LIT(KGroupContactGroupMemberId, "contact_group_member_id");
+// parameters
+_LIT(KGroupIdParam, ":group_id");
+_LIT(KGroupContactGroupIdParam, ":contact_group_id");
+_LIT(KGroupContactGroupMemberIdParam, ":contact_group_member_id");
+// create statements
+_LIT(KGroupsCreateStmnt, "CREATE TABLE groups (group_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, contact_group_id INTEGER NOT NULL, contact_group_member_id INTEGER NOT NULL, FOREIGN KEY (contact_group_id) REFERENCES contact(contact_id), FOREIGN KEY (contact_group_member_id) REFERENCES contact(contact_id) ); CREATE INDEX contact_group_id_idx ON groups (contact_group_id); CREATE INDEX contact_group_member_id_idx ON groups (contact_group_member_id);");
+// end groups table
+
+// preferences table
+// columns
+_LIT(KPrefPrefId,"preference_id");
+_LIT(KPrefSchemaVersion,"data_schema_version");
+_LIT(KPrefDatabaseUid,"database_uid");
+_LIT(KPrefPrefCreationDate,"creation_date");
+_LIT(KPrefMachineId, "machine_id");
+_LIT(KPrefPreferredOrder, "preferred_sortorder");
+_LIT(KPrefferredTemplateId,"preferred_cardtemplate_id");
+
+// parameters
+_LIT(KPrefIdParam, ":preference_id");
+_LIT(KPrefSchemaVersionParam, ":data_schema_version");
+_LIT(KPrefDatabaseUidParam, ":database_uid");
+_LIT(KPrefCreationDateParam, ":creation_date");
+_LIT(KPrefMachineIdParam, ":machine_id");
+_LIT(KPrefPreferredOrderParam, ":preferred_sortorder");
+_LIT(KPrefferredTemplateIdParam,":preferred_cardtemplate_id");
+
+// create statements
+_LIT(KPreferencesCreateStmnt,  "CREATE TABLE preferences (preference_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, data_schema_version INTEGER NOT NULL, preferred_cardtemplate_id INTEGER, machine_id , creation_date , preferred_sortorder BLOB); ");
+// end preferences table
+
+
+// Condition strings for searching id
+_LIT(KSelectCondition_SearchForEqual,   "%S == :SeekId");
+
+// SQLITE_SEQUENCE table stuff for getting last row_id
+_LIT(KSelectLastIdSqlStmnt, "SELECT seq FROM SQLITE_SEQUENCE WHERE name = 'contact';");
+
+
+// SQLITE_SEQUENCE table stuff for getting last row_id
+_LIT(KSqliteSequenceTableName, "SQLITE_SEQUENCE");
+_LIT(KSqliteSequenceSeq, "seq");
+_LIT(KSqliteSequenceName, "name");
+
+_LIT(KSQLSelect, "SELECT ");
+_LIT(KFrom, "FROM ");
+
+_LIT(KSpace, " ");
+_LIT(KComma, ",");
+_LIT(KSelectTwoFields, "SELECT %S, %S FROM %S WHERE %S=%d");
+_LIT(KSelectTwoFieldsWithGreater, "SELECT %S, %S FROM %S WHERE %S>=%d");
+_LIT(KSelectFiveFields, "SELECT %S, %S, %S, %S, %S FROM %S");
+_LIT(KCountSelect, "SELECT count(*) FROM %S");
+_LIT(KCountTypeSelect, "SELECT count(*) FROM %S WHERE (%S>>%d)=%d AND ((%S>>%d)&%d)=0");
+_LIT(KOneTypeField, "SELECT %S FROM %S WHERE (%S>>%d)=%d");
+_LIT(KTwoTypeField, "SELECT %S, %S FROM %S WHERE (%S>>%d)=%d");
+_LIT(KJoinConditionClause, "%S=%S and %S=%d");
+_LIT(KConditionClause, "%S=%d");
+_LIT(KTypeConditionClause, "(%S>>%d)=%d");
+_LIT(KWhereStringEqualsStringFormatText, "%S = %S");
+_LIT(KSelectFlagsSqlStmntFormat, "SELECT type_flags FROM contact WHERE contact_id = %d");
+_LIT(KVar, ":var");
+_LIT(KIntValue, "%d");
+_LIT(KSelectCondition_SearchForContactId, "contact_id == :SeekId");
+
+
+// COUNT function
+_LIT(KCount, " COUNT(%S) ");
+
+// NULL
+_LIT(KNullText, "NULL");    //think this should be deleted
+
+// AND
+_LIT(KSqlAnd, " AND ");
+
+// OR
+_LIT(KSqlOr, " OR ");
+
+// COUNT
+_LIT(KSqlCount, "count(*)");
+
+const TInt  KFirstParam = 0;
+
+/* constants defined for type_flags in contact table */
+
+// definition for contact type flags
+
+//Bit flags in the byte of Contact Type
+enum TContactTypeFlags 
+	{
+	EContactTypeFlags_ContactCard,   
+	EContactTypeFlags_OwnCard,
+	EContactTypeFlags_ICCEntry,
+	EContactTypeFlags_Group,
+	EContactTypeFlags_Template,
+	EContactTypeFlags_CardTemplate,
+	EContactTypeFlags_UnknownType
+	};
+
+const TInt KContactTypeShiftBits = 24; //ContactType byte stored in highest(left most) byte in the type flags integer
+
+/* definition for contact attributes flags */
+enum TContactAttrsFlags 
+	{
+	EContactAttrsFlags_System  			= 1,
+	EContactAttrsFlags_Hidden  			= 2, // 1 << 1
+	EContactAttrsFlags_CompressedGUID 	= 4, // 1 << 2
+	EContactAttrsFlags_Deleted    		= 8, // 1 << 3
+	EContactAttrsFlags_Mask  		    = 0x00FF0000
+	};
+const TInt KContactAttrsShiftBits = 16; //Contact Attributes byte stored in second highest byte in the type flags integer
+
+/* definition for contact hint flags */ 
+const TInt KFastAccessFieldUids[] = 
+	{
+	KUidContactFieldGivenNameValue, 
+	KUidContactFieldFamilyNameValue,
+	KUidContactFieldCompanyNameValue,
+	KUidContactFieldGivenNamePronunciationValue,
+	KUidContactFieldFamilyNamePronunciationValue,
+	KUidContactFieldCompanyNamePronunciationValue
+	};
+	
+/* definition for contact hint flags */
+enum TContactTypeFlagsMasks 
+	{
+	EContactType_Mask 		= 0xFF000000,
+	EContactAttributes_Mask	= 0x00FF0000,
+	EContactHintFlags_Mask 	= 0x0000FFFF // Hint value put lowest 2 bytes of the type flags integer
+	};
+
+enum TContactTypeFlagsShitfs
+	{
+	EContactAttributes_Shift	= 16,
+	EContactType_Shift 			= 24	
+	};	
+
+enum TFastAccessField
+	{
+	EFirstFastAccessField = 0,
+	EGivenName = EFirstFastAccessField,
+	EFamilyName,
+	ECompanyName,
+	EGivenNamePrn,
+	EFamilyNamePrn,
+	ECompanyNamePrn,
+	ENumberOfFastAccessFields,
+	ENoSuchFastAccessField = -1
+	};
+
+const TInt KFirstIndex = 0;