mfc使用ADO如何连接PostgreSQL查询数据库,使用以下方法查不到数据?

qq_36478184 2019-08-14 10:15:11
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组件
...全文
300 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_36478184 2019-08-15
  • 打赏
  • 举报
回复
Access 、SQLServer 、MySQL都没有问题,就PostgreSQL使用ADO连接数据库查不到值........
qq_36478184 2019-08-15
  • 打赏
  • 举报
回复
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组件
待续_1006 2019-08-15
  • 打赏
  • 举报
回复
学会调试是编程必备基本功,建议使用VS
Eleven 2019-08-14
  • 打赏
  • 举报
回复
Debug下单步看看哪个函数调用失败了?

4,018

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧