CoInitialize(NULL); //初化COM組件 HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");//創建Connection對象
if (SUCCEEDED(hr))
{
hr = m_pConnection->Open("Driver=PostgreSQL Unicode;Server=127.0.0.1;Database=VersionManager;UID=test;PWD=test", "", "", adModeUnknown); if (FAILED(hr))
{
m_pConnection->Close();
AfxMessageBox("數據庫連接失敗.");
return FALSE;
}
}
}
catch (_com_error e)//捕捉異常
{
CString errormessage;
errormessage.Format("連接數據庫失敗!\r\n錯誤信息:%s", e.ErrorMessage());
AfxMessageBox(errormessage);//顯示錯誤信息
} sql.Format("SELECT col_project_version FROM table_project_info WHERE col_project_name ='%s'", m_Name);
try
{
m_pConnection->BeginTrans();
hr = m_pRecordset.CreateInstance("ADODB.Recordset");
if (SUCCEEDED(hr))
{
hr = m_pRecordset->Open((_variant_t)sql, variant_t((IDispatch*)m_pConnection), adOpenDynamic, adLockOptimistic, adCmdText);
}
while (!m_pRecordset->adoEOF)
{
number = m_pRecordset->GetCollect("col_project_version"); //獲取數據
szVersion.Format("%s", (LPCTSTR)_bstr_t(number)); //轉換輸出 m_pRecordset->MoveNext();
}
m_pRecordset->Close();
m_pConnection->CommitTrans();
}
catch (_com_error e)
{
AfxMessageBox("連接數據庫失敗!");
m_pConnection->RollbackTrans();
}
CoUninitialize(); //释放com组件
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");//創建Connection對象
if (SUCCEEDED(hr))
{
hr = m_pConnection->Open("Driver=PostgreSQL Unicode;Server=127.0.0.1;Database=VersionManager;UID=test;PWD=test", "", "", adModeUnknown); if (FAILED(hr))
{
m_pConnection->Close();
AfxMessageBox("數據庫連接失敗.");
return FALSE;
}
}
}
catch (_com_error e)//捕捉異常
{
CString errormessage;
errormessage.Format("連接數據庫失敗!\r\n錯誤信息:%s", e.ErrorMessage());
AfxMessageBox(errormessage);//顯示錯誤信息
} sql.Format("SELECT col_project_version FROM table_project_info WHERE col_project_name ='%s'", m_Name);
try
{
m_pConnection->BeginTrans();
hr = m_pRecordset.CreateInstance("ADODB.Recordset");
if (SUCCEEDED(hr))
{
hr = m_pRecordset->Open((_variant_t)sql, variant_t((IDispatch*)m_pConnection), adOpenDynamic, adLockOptimistic, adCmdText);
}
while (!m_pRecordset->adoEOF)
{
number = m_pRecordset->GetCollect("col_project_version"); //獲取數據
szVersion.Format("%s", (LPCTSTR)_bstr_t(number)); //轉換輸出 m_pRecordset->MoveNext();
}
m_pRecordset->Close();
m_pConnection->CommitTrans();
}
catch (_com_error e)
{
AfxMessageBox("連接數據庫失敗!");
m_pConnection->RollbackTrans();
}
CoUninitialize(); //释放com组件
{
AfxMessageBox("連接數據庫失敗!");
m_pConnection->RollbackTrans();
}
CoUninitialize(); //释放com组件