怎么用C++访问MySQL数据库
如何用C++访问MySQL数据库
如题,我想知道用ADO怎么访问啊,有没有源代码呀,不用ADO的话用别的怎么访问啊
------解决方案--------------------
参考:
http://blog.****.net/tukidrmyd/archive/2009/09/05/4522152.aspx
应该可以解决你的问题。
------解决方案--------------------
一般是ado,比较方便,不管什么数据库,只是连接的时候参数不同而已
------解决方案--------------------
或者用odbc访问数据库
------解决方案--------------------
上MYSQL的官网,里面有很的API函数可以使用,
------解决方案--------------------
晕》 ADO是什么呀? 瞎解释
用mysql提供api呀
------解决方案--------------------
http://www.hudong.com/wiki/ADO
这篇文章讲了些基本的。
------解决方案--------------------
看我的博客吧,满足你所有要求:
MYSQL C API 访问程序(更新升级版本)
http://blog.****.net/hzhxxx/archive/2010/12/27/6100752.aspx
------解决方案--------------------
我现在做得就是MySQL C API的封装!
------解决方案--------------------
如题,我想知道用ADO怎么访问啊,有没有源代码呀,不用ADO的话用别的怎么访问啊
------解决方案--------------------
参考:
http://blog.****.net/tukidrmyd/archive/2009/09/05/4522152.aspx
应该可以解决你的问题。
------解决方案--------------------
一般是ado,比较方便,不管什么数据库,只是连接的时候参数不同而已
------解决方案--------------------
或者用odbc访问数据库
------解决方案--------------------
上MYSQL的官网,里面有很的API函数可以使用,
------解决方案--------------------
晕》 ADO是什么呀? 瞎解释
用mysql提供api呀
------解决方案--------------------
http://www.hudong.com/wiki/ADO
这篇文章讲了些基本的。
------解决方案--------------------
看我的博客吧,满足你所有要求:
MYSQL C API 访问程序(更新升级版本)
http://blog.****.net/hzhxxx/archive/2010/12/27/6100752.aspx
------解决方案--------------------
我现在做得就是MySQL C API的封装!
------解决方案--------------------
- C/C++ code
//ADO.h #pragma once #include <string> using namespace std; #import "msado15.dll" no_namespace rename("EOF", "adoEOF") class CADO { public: CADO(void); public: virtual ~CADO(void); public: //属性 _ConnectionPtr m_pConnection; //连接对象指针 _RecordsetPtr m_pRecordset; //记录集对象指针 public: //函数 bool OnInitAdoConn(wstring strConnect); //连接数据库 _RecordsetPtr &OpenRecordset(wstring sql); //打开记录集 void CloseRecordset(); //关闭数据集 void CloseConn(); //关闭数据库连接 int GetRecordCount(_RecordsetPtr pRecordset); //获取记录数 }; //ADO.cpp #include "StdAfx.h" #include "ADO.h" CADO::CADO(void):m_pConnection(NULL), m_pRecordset(NULL) { } CADO::~CADO(void) { } bool CADO::OnInitAdoConn(wstring strConnect) { try { ::CoInitialize(NULL); m_pConnection.CreateInstance(__uuidof(Connection)); m_pConnection->Open(_bstr_t(strConnect.c_str()), _bstr_t(""), _bstr_t(""), adModeUnknown); return true; } catch(_com_error e) { AfxMessageBox(e.Description()); } return false; } void CADO::CloseConn() { m_pConnection->Close(); ::CoUninitialize(); } _RecordsetPtr &CADO::OpenRecordset(wstring sql) { try { m_pRecordset.CreateInstance(__uuidof(Recordset)); m_pRecordset->Open(_bstr_t(sql.c_str()), m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText); } catch(_com_error e) { AfxMessageBox(e.Description()); } return m_pRecordset; } int CADO::GetRecordCount(_RecordsetPtr pRecordset) { try { int iCount = 0; if(m_pRecordset->adoEOF) { return 0; } while(m_pRecordset->adoEOF) { iCount++; m_pRecordset->MoveNext(); } m_pRecordset->MoveFirst(); return iCount; } catch(_com_error e) { AfxMessageBox(e.Description()); return -1; } } void CADO::CloseRecordset() { if(m_pRecordset->GetState() == adStateOpen) { m_pRecordset->Close(); } }