类型:下载工具大小:41M语言:中文评分:9.9标签:立即下载。现在我们正在制作一个接口,通过不同的连接字符串来操作不同的数据库。要用mysql数据库,这个数据库以前没有用过,access和sql server用的比较多。通过网上的一些资料和自己的探索,我大致知道了C如何连接mysql。有两种方法可以实现。
第一种方法是用ADO连接,第二种方法是用mysql自带的api函数连接。第一种方法可以满足我目前的需求,通过连接不同的字符串来连接不同的数据库。目前只有mysql、sqlserver、oracle和access是连接的。至于访问,由于用于创建表的SQL语句与标准SQL语句不兼容,需要做一些处理,这里暂时不做说明。第二种方法只能用于mysql数据库的连接,但是没有必要通过这种方式安装MyODBC服务器程序。无论哪种方式,都需要先安装Mysql数据库。安装方法见“mysql安装及注意事项”。最好为mysql安装一个Navicat,以便于mysql数据库的操作。分别描述了以下两种方法:(1)通过ADO连接MySql数据库;(2)要通过ADO连接MySql数据库,必须先安装MyODBC服务器程序。MyODBC的版本应该对应MySql的版本,否则数据库不会连接。我使用的版本是mysql-5.1.48-win32.msi和MySQL-connector-odbc-5 . 1 . 5-win32 . MSI.单击开始菜单-设置-控制面板-管理工具-数据源(ODBC)-用户DSN -添加-选择MySQL ODBC 5.1驱动程序。下图:
然后双击MySQL ODBC 5.1驱动进行配置。配置完成后,您可以单击测试来执行下一个测试(如下所示)。如果可以连接,将弹出连接成功对话框。
上图中的数据源名称:是代码中DSN的对应值。示例:' DSN=MySqlODBCserver=localhost数据库=测试.
2.配置之后,就可以开始编码了。(1)首先导入ADO类型库。# import ' c: 程序文件公共文件系统 ado msado 15 . dll ' no _ namespace rename(' EOF ',' adoEOF ').您环境中的msado15.dll不一定在此目录中。请根据实际情况进行修改。或者将文件msado15.dll复制到您的项目目录中,并直接将其包含在# import ' msado 15 . dll ' no _ namespace rename(' eof ',' adoeof ')中。(2)创建一个Connection对象并连接到数据库{CoInitialize(空);m_pConnection。CreateInstance(_ uuidof(Connection));
请尝试{//设置连接时间m _ PC connection-connection time out=5;//打开数据库连接hresult HR=m _ PC connection-open(' DSN=mysqlodbc;server=localhost数据库=test ',' root ',' root ',adModeUnknown);} catch(_ com _ error e){ MessageBox(NULL,e.Description(),_T('),MB _ OK);返回FALSE}
返回真;}
执行SQL语句bool cdbmmanagersub:执行SQL(_ bstr _ tbstr SQL){//_ variant _ t记录受影响;尝试{//如果(m_pConnection==NULL) {//重新连接数据库打开(m _ dbtype,m _ strserver,m _ strusername,m _ strpasswor,m _ strdbname);}//执行连接对象的方法:(_ bstr _ tCommandText,//variant *记录受影响,长选项)//其中CommandText是命令字符串,通常是SQL命令。//参数RecordsAffected是操作完成后受影响的行数。//参数Options表示命令类型:adCmdText- text命令;AdCmdTable-表名//adCmdProc-存储过程;adcmdunknownn-unknown _ recordset ptr HR=m _ PC connection-execute(bstr SQL,null,adcmdtext);返回真;} catch(_ com _ error e){ MessageBox(NULL,e.Description(),_T('),MB _ OK);返回false} }
_ bstr _ t bstrSQL是一个输入SQL语句。如果返回TRUE,则执行成功,如果返回FLASH,则报告相应的错误提示。例如,以下用于创建testTable的SQL语句:char * pquery='如果testtable不存在则创建表(id varchar (10),name varchar (255),descs varchar (255),主键(id))';ExecuteSQL(Pquery);
3.附上mysql数据库的操作,供没有安装针对mysql的Navicat的朋友参考。
打开“开始-所有程序-MySQL-MySQL服务器5.0-MySQL命令行Client.exe”。如果没有设置密码,直接按回车键,会提示服务器启动成功。mysql SHOW DATABASES//显示所有数据库,注意键入“;”然后按enter mysql CREATE DATABASE mydb//创建数据库mydbmysql USE mydb//选择您创建的数据库mydbmysql SHOW TABLES//显示数据库中的表MySQL create table my table(username varchar(100)、访问列表varchar (200)、备注varchar (200)、主键(username));//创建一个mytable:用户名的表;访问列表,主键是username mysql DESCRIBE mytable//显示表格的结构