VC下Mysql开发 我现在有一个Mysql服务器,想通过Windows对其进行访问,我现在已经安装MYODBC,并已经添加了系统DSN。VC编程时没有找到mysql.h和libmySQL.lib,请高手给以指点迷津。谢谢!谢谢!谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在mysql的安装目录下,你可以搜索*.lib文件,就能找到 楼主,用vc怎么连mysql能讲讲么,这段时间我也要做。谢谢了! 如果你使用libmysql.dll你应该不必安装myodbc吧?因为通过libmysql你可以直接访问mysql呀!至于你说的mysql.h,libmysql.lib和libmysql.dll都在mysql path\lib目录中,且还有一个例子程序可以参考!ps:mysql path指你mysql目录,比如你mysql在C盘,那就应该为c:\mysql\lib MFC ADO 编程//在"stdafx.h"中 加入ADO支持库#import "c:\program files\common files\system\ado\msado15.dll" \ no_namespace \rename ("EOF", "adoEOF") //在APP初始化COM,创建ADO连接等操作AfxOleInit();m_pConnection.CreateInstance(__uuidof(Connection)); char buf[200];注意:SQL Server 数据库的连接方式sprintf(buf,"Driver={SQL Server};Server=%s;Option=3;DATABASE=%s;UID=sa;PWD=%s;","192.168.1.217","2005DATA","80qq");//打开本地Access库Demo.mdb m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db9-6.mdb;Jet OLEDB:Database Password=***80;", "","",adModeUnknown);MYSQL 数据库的连接方式sprintf(buf,"Driver={MySQL ODBC 3.51 Driver};Server=%s;Port=3306;Option=3;DATABASE=%s;UID=root;PWD=%s;",m_hostname,m_datebase,m_pwd); //在ADO操作中建议语句中要常用try...catch()来捕获错误信息,//因为它有时会经常出现一些想不到的错误try { m_pConnection->Open(buf,"","",adModeUnknown); //return TRUE; }catch(_com_error e){ AfxMessageBox("数据库连接失败!"); return FALSE;}下面是我写的一个创建access数据库的函数代码,只要传一个access文件名过去就可以创建:HRESULT CreateAccessDatabase(LPCTSTR lpszPathName){ USES_CONVERSION; try { HRESULT hr; CLSID clsid; CComPtr< IDBDataSourceAdmin > m_spDataSourceAdmin; CDBPropSet dbinit(DBPROPSET_DBINIT); hr = CLSIDFromProgID(T2COLE("Microsoft.JET.OLEDB.4.0"), &clsid); if (FAILED(hr)) return hr; m_spDataSourceAdmin.Release(); hr = CoCreateInstance( clsid ,NULL,CLSCTX_INPROC_SERVER, IID_IDBDataSourceAdmin,(void**)& m_spDataSourceAdmin ); if( FAILED(hr)) return hr; dbinit.AddProperty(DBPROP_INIT_DATASOURCE, T2OLE(lpszPathName)); hr = m_spDataSourceAdmin->CreateDataSource( 1, &dbinit, NULL, IID_ISourcesRowset,NULL ); if( FAILED(hr) ) return hr; m_spDataSourceAdmin.Release(); } catch(_com_error e)///捕捉异常 { CString errormessage; errormessage.Format("创建数据库失败!\r\n%s", (LPCTSTR)e.Description()); AfxMessageBox(errormessage);///显示错误信息 return S_FALSE; } return S_OK;} 根本就可以不用MYODBC,直接用mysql++连接就行,[email protected] 为什么要找mysql.h用ADO就可以了。 WebBrowser 控件,如何确定页面载入完成 有个小问题请教大家。 如何检测到一个进程派生了另外一个进程?使用什么钩子函数吗? 关于new和delete的问题,不是很清楚,着急哦。在线等! 如何根据URL来关闭IE窗口? 请问在哪里能找到关于scrollbar的使用的例子? 在listbox中显示乱码是为什么? 请教各位在武汉工作的程序员:: 已知圆弧起点终点和半径怎样画这条圆弧 鼠标点击TreeView的展开按钮时,我怎样才能知道点选的是哪个节点? 我有几个很大很大的正整数要相加(整数有128位)请大家帮我想想有什么方法??? 关于assert!
至于你说的mysql.h,libmysql.lib和libmysql.dll都在mysql path\lib目录中,且还有一个例子程序可以参考!
ps:mysql path指你mysql目录,比如你mysql在C盘,那就应该为c:\mysql\lib
#import "c:\program files\common files\system\ado\msado15.dll" \
no_namespace \
rename ("EOF", "adoEOF") //在APP初始化COM,创建ADO连接等操作
AfxOleInit();
m_pConnection.CreateInstance(__uuidof(Connection));
char buf[200];
注意:
SQL Server 数据库的连接方式
sprintf(buf,"Driver={SQL Server};Server=%s;Option=3;DATABASE=%s;UID=sa;PWD=%s;","192.168.1.217","2005DATA","80qq");//打开本地Access库Demo.mdb
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db9-6.mdb;Jet OLEDB:Database Password=***80;",
"","",adModeUnknown);MYSQL 数据库的连接方式
sprintf(buf,"Driver={MySQL ODBC 3.51 Driver};Server=%s;Port=3306;Option=3;DATABASE=%s;UID=root;PWD=%s;",m_hostname,m_datebase,m_pwd);
//在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
//因为它有时会经常出现一些想不到的错误
try
{
m_pConnection->Open(buf,"","",adModeUnknown);
//return TRUE;
}
catch(_com_error e)
{
AfxMessageBox("数据库连接失败!");
return FALSE;
}
下面是我写的一个创建access数据库的函数代码,只要传一个access文件名过去就可以创建:
HRESULT CreateAccessDatabase(LPCTSTR lpszPathName)
{
USES_CONVERSION;
try
{
HRESULT hr;
CLSID clsid;
CComPtr< IDBDataSourceAdmin > m_spDataSourceAdmin; CDBPropSet dbinit(DBPROPSET_DBINIT); hr = CLSIDFromProgID(T2COLE("Microsoft.JET.OLEDB.4.0"), &clsid); if (FAILED(hr))
return hr;
m_spDataSourceAdmin.Release(); hr = CoCreateInstance( clsid ,NULL,CLSCTX_INPROC_SERVER, IID_IDBDataSourceAdmin,(void**)& m_spDataSourceAdmin );
if( FAILED(hr))
return hr;
dbinit.AddProperty(DBPROP_INIT_DATASOURCE, T2OLE(lpszPathName)); hr = m_spDataSourceAdmin->CreateDataSource( 1, &dbinit, NULL, IID_ISourcesRowset,NULL );
if( FAILED(hr) )
return hr;
m_spDataSourceAdmin.Release();
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("创建数据库失败!\r\n%s", (LPCTSTR)e.Description());
AfxMessageBox(errormessage);///显示错误信息 return S_FALSE;
}
return S_OK;
}
用ADO就可以了。