silviaz80
04-07-2006, 16:27
Ciao,
c'è quelcuno esperto di symbian?
ho un problema: sto cercando di leggere il database dei contatti dal mio p800 con un programmino, ma mi da un errore del genere:
Reason code E32USER-CBASE Reasopn number 21"
Vi scrivo il codice che genera questo errore:
void CImportaContatti::OpenDataBaseContatti()
{
//apertura db dei contatti
CContactDatabase* contactsDb = CContactDatabase::OpenL();
CleanupStack::PushL( contactsDb );
//carico contatti metodo che carica contatti
CContactIdArray* resArray = contactsDb->GetCardTemplateIdListL(); credo che il problema sia qui
TBuf<10> res (resArray->Count());
CEikonEnv::InfoWinL(_L("Total Record : "),res);
//controllo che il numero dei contatti sia maggiore di 0
if(resArray->Count()>0)
{
CEikonEnv::Static()->InfoMsg(_L("prima del for"));
for ( TInt i = 0 ; i < resArray->Count() ; i++ ) //ciclo che scorre i contatti
{
CContactItem* contact;
TContactItemId nextContactId = (*resArray)[i]; //prendo id del contatto corrente
contact = contactsDb->OpenContactL(nextContactId);//prende il contatto indicizzato dall'id
CleanupStack::PushL(contact);
TInt firstNameField = contact->CardFields().Find(KUidContactFieldGivenName); //prende il nome
HBufC* nome = HBufC::NewLC( 20 );
nome->Des().Append(contact->CardFields()[firstNameField].TextStorage()->Text());
}
}
mi sapete aiutare?
grazie mille
Silvia
c'è quelcuno esperto di symbian?
ho un problema: sto cercando di leggere il database dei contatti dal mio p800 con un programmino, ma mi da un errore del genere:
Reason code E32USER-CBASE Reasopn number 21"
Vi scrivo il codice che genera questo errore:
void CImportaContatti::OpenDataBaseContatti()
{
//apertura db dei contatti
CContactDatabase* contactsDb = CContactDatabase::OpenL();
CleanupStack::PushL( contactsDb );
//carico contatti metodo che carica contatti
CContactIdArray* resArray = contactsDb->GetCardTemplateIdListL(); credo che il problema sia qui
TBuf<10> res (resArray->Count());
CEikonEnv::InfoWinL(_L("Total Record : "),res);
//controllo che il numero dei contatti sia maggiore di 0
if(resArray->Count()>0)
{
CEikonEnv::Static()->InfoMsg(_L("prima del for"));
for ( TInt i = 0 ; i < resArray->Count() ; i++ ) //ciclo che scorre i contatti
{
CContactItem* contact;
TContactItemId nextContactId = (*resArray)[i]; //prendo id del contatto corrente
contact = contactsDb->OpenContactL(nextContactId);//prende il contatto indicizzato dall'id
CleanupStack::PushL(contact);
TInt firstNameField = contact->CardFields().Find(KUidContactFieldGivenName); //prende il nome
HBufC* nome = HBufC::NewLC( 20 );
nome->Des().Append(contact->CardFields()[firstNameField].TextStorage()->Text());
}
}
mi sapete aiutare?
grazie mille
Silvia