首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

vc连接数据库解决方法

2012-04-25 
vc连接数据库通过ADO连接ACCESS数据库。.hC/C++ code#if !defined(AFX_ADOCON_H__E1A9EF69_A667_4EE1_BA86_

vc连接数据库
通过ADO连接ACCESS数据库。
.h

C/C++ code
#if !defined(AFX_ADOCON_H__E1A9EF69_A667_4EE1_BA86_041FC07FF3C4__INCLUDED_)#define AFX_ADOCON_H__E1A9EF69_A667_4EE1_BA86_041FC07FF3C4__INCLUDED_#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000class ADOCon  {public:    _ConnectionPtr    m_pConnection;    _CommandPtr        m_pCommand;    _RecordsetPtr    m_pRecordset;    ADOCon();    virtual ~ADOCon();    BOOL InitCon();    void ExInitCon();};#endif // !defined(AFX_ADOCON_H__E1A9EF69_A667_4EE1_BA86_041FC07FF3C4__INCLUDED_)


.cpp
C/C++ code
ADOCon::ADOCon(){    InitCon();}ADOCon::~ADOCon(){}BOOL ADOCon::InitCon(){    AfxOleInit();    m_pConnection.CreateInstance(__uuidof(Connection));    try                     {            m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=User.mdb","","",adModeUnknown);        return true;    }    catch(_com_error e)    {        AfxMessageBox("数据库连接失败,确认数据库是否在当前路径下!");        return FALSE;    }      }void ADOCon::ExInitCon(){    if(m_pConnection->State)    m_pConnection->Close();    m_pConnection= NULL;}

不知道什么原因就是连接不上数据库!!

[解决办法]
AfxMessageBox("数据库连接失败,确认数据库是否在当前路径下!");
报这个话,给出你user.mdb的全路径指示
[解决办法]
C/C++ code
    catch(_com_error e)    {        AfxMessageBox(e.Description());        return FALSE;    }
[解决办法]
COM库有没有初始化.

在InitInstance()中初始化COM:?

CoInitialize(NULL);?

在ExitInstance()中释放COM:?

CoUninitialize();
[解决办法]
catch(_com_error e)///捕捉异常
?{
? CString errormessage;
? errormessage.Format(_T("连接数据库失败!\r\n错误信息:%s"),e.ErrorMessage());
? AfxMessageBox(errormessage);


? }?

看看是啥

我是这样连的

m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0 ; \
? Data Source = .\\DataBase\\aa.mdb",
? "","",adModeUnknown);


跟你一样的,注意这样的话,你要当心你的当前路径是在哪??

[解决办法]
加::CoInitialize(NULL);?.....
[解决办法]
测试一下连接字符串

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;User Id=admin;Password=;"

热点排行