Bonjour,
je travaille sur un code et je fais un update dans une table qui met l'ID elle même en incrémentant le champ, moi je souhaiterais récupérer cet ID: Il y a des classes entre les acces odbc et mes classes ... je comprends que ca ne paraisse pas simple mais je demande à tout hasard, voici ma fonction dans laquelle je souhaite faire ça:
/************************************************************************
* Methode DoCreateWithData
************************************************************************/
unsigned int ExtDemandInfoDatabaseAccess:oCreateWithData(GenericDbRecord* record) {
unsigned int codret = CR_DATA_BASE_OK;
__int64 iD =0;
CString strCRLID;
ExtDemandInfoSet* baseRecordSet = NULL;
ExtDemandInfoRecord* baseRecord = NULL;
if(m_recordSet == NULL) {
AllocateRecordSet();
}
baseRecordSet = dynamic_cast<ExtDemandInfoSet*> (m_recordSet);
baseRecord = dynamic_cast<ExtDemandInfoRecord*> (record);
ASSERT(baseRecordSet != NULL);
ASSERT(baseRecord != NULL);
do {
if((baseRecordSet == NULL) || (baseRecord == NULL)) {
codret = CR_DATA_BASE_ERROR;
break;
}
// ASSERT(baseRecord->m_module.GetLength() <= 10);
// ASSERT(baseRecord->m_type.GetLength() <= 20);
// On regarde si on peut ajouter
if(baseRecordSet->CanAppend() == FALSE) {
codret = CR_DATA_BASE_DENIED;
break;
}
// Maintenant, on essaye d'ajouter un nouvel enregistrement.
baseRecordSet->AddNew();
// On renseigne le nouvel enregistrement.
baseRecordSet->m_ID = 0;
baseRecordSet->m_SYNC = baseRecord->m_sync;
baseRecordSet->m_BADTRY = baseRecord->m_badtry;
baseRecordSet->m_CODELIM = baseRecord->m_codelim;
baseRecordSet->m_DEBLOCK = baseRecord->m_deblock;
ConvertBuffer2LongArray(baseRecord->m_data, baseRecordSet->m_DATA);
baseRecordSet->SetFieldNull(&(baseRecordSet->m_DATA),FALSE);
baseRecordSet->SetFieldDirty(&(baseRecordSet->m_DATA),TRUE);
// On met à jour le nouvel enregistrement
if(baseRecordSet->Update() == FALSE) {
codret = CR_DATA_BASE_DENIED;
}else {
baseRecord->m_id = (__int64) baseRecordSet->m_ID;
}
}
while(0);
return codret;
}
-------------------------------------------------------------
Pour l'instant j'obtiens 0 comme Id à chaque fois.
Si quelqu'un à une piste je suis preneuse, quit à executer une procédure stockée.
Merci
Partager