The following code snippet shows how to code for a failover:
/* Declare required variables */ ... /* Open Database connection */ ... /* Perform a transaction */ ... /*Check HRESULT and dwMinor in ERRORINFO, handle failover */ if (FAILED(hr)) { IErrorInfo* pIErrorInfo; GetErrorInfo(0, &pIErrorInfo); IErrorRecords * pIErrorRecords; HRESULT hr1 = pIErrorInfo->QueryInterface(IID_IErrorRecords, (void **)&pIErrorRecords); if (SUCCEEDED(hr1)) { ERRORINFO errorInfo; pIErrorRecords->GetBasicErrorInfo(0, &errorInfo); pIErrorRecords->Release(); if (errorInfo.dwMinor == 30130) { //successful failover, //retry the transaction } } }