diff -r d4f567ce2e7c -r 5b6f26637ad3 phonebookengines_old/contactsmodel/cntplsql/inc/dbsqlconstants.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phonebookengines_old/contactsmodel/cntplsql/inc/dbsqlconstants.h Tue Aug 31 15:05:21 2010 +0300 @@ -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 + +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;