请教!如何在vc中使用mysql?最好能提供实例,谢谢! 请教!如何在vc中使用mysql?最好能提供实例,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用ADO吧,只要把连接字符串改成mysql的那种就可以了。。其他访问数据库的代码都不用修改。。"Provider=MySQLProv;Data Source=mydb;User Id=UserName;Password=asdasd;"上面是mysql的连接字符串的写法。下面是通过ADO访问数据库的代码,在stdafx.h中添加:#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")RecordsetPtr m_pRs;_ConnectionPtr m_pConn;try{ CoInitialize(NULL); m_pConn.CreateInstance(__uuidof(Connection)); m_pRs.CreateInstance(__uuidof(Recordset)); //设置服务器端游标 m_pConn->CursorLocation = adUseServer;//adUseClient;adUseNone //连接数据库 m_pConn->Open(L"Provider=MySQLProv;Data Source=mydb;User Id=UserName;Password=asdasd;",L"",L"",adOpenUnspecified); m_pRs->PutRefActiveConnection(m_pConn); CString t = "select * from case_acceptinfo"; m_pRs->Open(_variant_t(t),_variant_t((IDispatch*)m_pConn,true),adOpenDynamic,adLockOptimistic,adCmdUnknown); while(!m_pRs->adoEOF) { CString m_s1 = _com_util::ConvertBSTRToString((_bstr_t)m_pRs->GetCollect("reporttime")); MessageBox(m_s1); m_pRs->MoveNext(); } m_pRs->Close(); m_pConn->Close(); m_pRs=NULL; m_pConn=NULL; CoUninitialize();}catch(_com_error &e){ AfxMessageBox(e.Description());} MYSQL安装后有sample啊,要不你给我发邮件,我给你个自己的例子。 http://www.vckbase.com/document/viewdoc/?id=339 int lRet = 0; // "DSN=SQLServer_Source;UID=SA;PWD=abc123" CDatabase dataBase; CRecordset rSet; CString strT; strT.Format("DSN=%s;UID=%s;PWD=%s", g_strDSN, g_strUSE, g_strPAS); if(dataBase.OpenEx(strT, CDatabase::noOdbcDialog) == FALSE) { MessageBox("不能正确打开ODBC数据源!"); return -1; } // dataBase.OpenEx("DSN=wlms;UID=root;PWD="); rSet.m_pDatabase = &dataBase; // SELECT ID, NAME FROM DISTRICTS CString strSQL; strSQL.Format("SELECT * FROM groups WHERE id = '%s'", m_strID); rSet.Open(AFX_DB_USE_DEFAULT_TYPE, strSQL); int rCount = 0; CString strID; CString strName; CString strDesc; CString strDGS; CString strDZS; CString strSJGL; CString strJGSJ; CString strZDS; CString strHLS; rCount = 0; while(rSet.IsEOF() == FALSE) { rCount++; rSet.GetFieldValue("id", strID); rSet.GetFieldValue("name", strName); // numl/灯杆数 rSet.GetFieldValue("numl", strDGS); // numll/灯盏数 rSet.GetFieldValue("numll", strDZS); // groupsp/设计功率 rSet.GetFieldValue("groupsp", strSJGL); // endtime/竣工时间 rSet.GetFieldValue("endtime", strJGSJ); // tnum/终端数 rSet.GetFieldValue("tnum", strZDS); // cnum/回路数 rSet.GetFieldValue("cnum", strHLS); rSet.GetFieldValue("description", strDesc); rSet.MoveNext(); } MFC时钟问题 关于类的设计问题 入门的 提问 会的帮的忙 100分关于任务栏的简单问题 是否有书介绍这些函数集? 列头右键菜单 大家给点意见该怎么做: 我想做一个手表一样的界面,时间表盘是贴图,怎么操作针的走动? CSocket在工作者线程中运行时出错,求助 c语言中计算程序运行所需要的cycle数目? 对话框上有一个 ListCtrl,怎么在上面响应鼠标左键按下的消息(WM_LBUTTONDOWN) 怎么解决??? 我倒分,,,,
上面是mysql的连接字符串的写法。下面是通过ADO访问数据库的代码,在stdafx.h中添加:
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")RecordsetPtr m_pRs;
_ConnectionPtr m_pConn;
try
{
CoInitialize(NULL); m_pConn.CreateInstance(__uuidof(Connection));
m_pRs.CreateInstance(__uuidof(Recordset));
//设置服务器端游标
m_pConn->CursorLocation = adUseServer;//adUseClient;adUseNone
//连接数据库
m_pConn->Open(L"Provider=MySQLProv;Data Source=mydb;User Id=UserName;Password=asdasd;",L"",L"",adOpenUnspecified);
m_pRs->PutRefActiveConnection(m_pConn);
CString t = "select * from case_acceptinfo";
m_pRs->Open(_variant_t(t),_variant_t((IDispatch*)m_pConn,true),adOpenDynamic,adLockOptimistic,adCmdUnknown);
while(!m_pRs->adoEOF)
{
CString m_s1 = _com_util::ConvertBSTRToString((_bstr_t)m_pRs->GetCollect("reporttime"));
MessageBox(m_s1); m_pRs->MoveNext();
} m_pRs->Close();
m_pConn->Close(); m_pRs=NULL;
m_pConn=NULL;
CoUninitialize();
}
catch(_com_error &e)
{
AfxMessageBox(e.Description());
}
// "DSN=SQLServer_Source;UID=SA;PWD=abc123"
CDatabase dataBase;
CRecordset rSet;
CString strT;
strT.Format("DSN=%s;UID=%s;PWD=%s", g_strDSN, g_strUSE, g_strPAS);
if(dataBase.OpenEx(strT, CDatabase::noOdbcDialog) == FALSE)
{
MessageBox("不能正确打开ODBC数据源!");
return -1;
}
// dataBase.OpenEx("DSN=wlms;UID=root;PWD=");
rSet.m_pDatabase = &dataBase;
// SELECT ID, NAME FROM DISTRICTS
CString strSQL;
strSQL.Format("SELECT * FROM groups WHERE id = '%s'", m_strID);
rSet.Open(AFX_DB_USE_DEFAULT_TYPE, strSQL); int rCount = 0;
CString strID;
CString strName;
CString strDesc;
CString strDGS;
CString strDZS;
CString strSJGL;
CString strJGSJ;
CString strZDS;
CString strHLS; rCount = 0;
while(rSet.IsEOF() == FALSE)
{
rCount++;
rSet.GetFieldValue("id", strID);
rSet.GetFieldValue("name", strName);
// numl/灯杆数
rSet.GetFieldValue("numl", strDGS);
// numll/灯盏数
rSet.GetFieldValue("numll", strDZS);
// groupsp/设计功率
rSet.GetFieldValue("groupsp", strSJGL);
// endtime/竣工时间
rSet.GetFieldValue("endtime", strJGSJ);
// tnum/终端数
rSet.GetFieldValue("tnum", strZDS);
// cnum/回路数
rSet.GetFieldValue("cnum", strHLS);
rSet.GetFieldValue("description", strDesc);
rSet.MoveNext();
}