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組件
uj5u.com熱心網友回復:
Debug下單步看看哪個函式呼叫失敗了?uj5u.com熱心網友回復:
學會除錯是編程必備基本功,建議使用VSuj5u.com熱心網友回復:
hr = m_pRecordset->Open((_variant_t)sql, variant_t((IDispatch*)m_pConnection), adOpenDynamic, adLockOptimistic, adCmdText);跑完這句就,就直接跑到資料庫連接失敗. 前面扯訓COM和連接資料庫都正常.
catch (_com_error e)
{
AfxMessageBox("連接數據庫失敗!");
m_pConnection->RollbackTrans();
}
CoUninitialize(); //釋放com組件
uj5u.com熱心網友回復:
Access 、SQLServer 、MySQL都沒有問題,就PostgreSQL使用ADO連接資料庫查不到值........轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/38811.html
標籤:數據庫
