现在正做一个接口,通过不同的连接字符串 *** 作不同的数据库(数据库培训数据库认证)。
要用到MySQL(MySQL认证Mysql培训)数据库,以前没用过这个数据库,用aC++(C++培训)ess和sqlserver比较多。
通过网上的一些资料和自己的摸索,大致清楚了C++连接mysql的方法。
盐城IT培训http://www.kmbdqn.cn/认为可以通过2种方法实现。
第一种方法是利用ADO连接,第二种方法是利用mysql自己的api函数进行连接。
第一种方法可以实现我当前的需求,通过连接不同的字符串来连接不同的数据库。
暂时只连接了mysql,sqlserver,oracle,access。
对于access,因为它创建表的SQL语句不太兼容标准SQL语句,需要做一些处理,这里暂时不说。
第二种方法只能针对于mysql数据库的连接,不过用这种方法不用安装MyODBC服务器程序。
不管用哪种方法,首先需要安装Mysql数据库,安装方法请看“mysql安装及一些注意点”。
最好安装一个Navicatformysql,方便 *** 作mysql数据库。
下面分别说下这两种方法:(一)通过ADO连接MySql数据库1、通过ADO连接MySql数据库,首先得安装MyODBC服务器程序。
MyODBC版本要和MySql的版本对应上,否则会连接不上数据库。
我用的版本分别是mysql-5.1.48-win32.msi和mysql-connector-odbc-5.1.5-win32.msi。
安装好后,点击开始菜单->设置->控制面板->管理工具->数据源(ODBC)->用户DSN->添加->选择MySQLODBC5.1Driver。
如下图:然后双击MySQLODBC5.1Driver进行配置。
配置好可以点Test进行下测试(如下图),如果能连上会d出connectionsuccessful对话框。
sql设置好用户名跟密码以后比如sa密码123
打开delphi放一个按钮,然后在控件栏那里选datacontrol,选第一个dbgrid放到form上,选dataaccess里面的第一个datasource,然后选ado——adoconnection放到form上,再选ado——adoquery放到form上。点选adoconnection左边的框体有个connectionstring点"…":d出来的对话框中点Build,然后选择从下数上来第五个,双击或者下一步,填入用户名跟密码(sa
123),在“3.选择数据库”那里选择要打开的数据库,选上保存密码,点一下“测试连接”,点OK退出。出来以后继续在左边框体里面找LoginPrompt改成False。到adoquery了,点上它然后在左边框体的
Connection
那里下拉选择ADOConnection1,然后点选datasource,在左边框体找到dataset下拉选择adoquery1,然后再点选dbgrid,在左边框体找到datasource,下拉选择datasource1。双击刚才创建的按钮,假设你要打开的数据表名叫“
销售订单
”,输入
adoquery1.close
adoquery1.sql.clear
adoquery1.sql.add('select
*
from
销售订单
')
adoquery1.open
运行,按按钮如果dbgrid有数据显示表示连接成功了,以上所有功能实现均可通过代码或者手工设置。
由于ADO对象不直接支持MySQL,所以必须先安装MyODBC, 后者也是一个免费产品,在 www.mysql.org上有下载,安装好了MyODBC, 就可以在ODBC数据源管理中配置一个数据源名称,把它指向你想连接的MySQL数据库。代码如下:Sub connectMySQL() '通过MyODBC去连接MySQL数据库,并将Microsoft SQL Server 7 '的数据转进mysql中 Dim sConnect As String, sSql As String, i As Long Dim cnMSSQL As New ADODB.Connection Dim cnMySQL As New ADODB.Connection'声明并创建对象 连接 Dim rs As New ADODB.Recordset '声明并创建对象 记录集 Dim cm As New ADODB.Command '声明并创建对象 命令sConnect = "dsn=mysql1" '指定MySQL的数据源名称 cnMySQL.Open sConnect '连接到 mysqlsConnect="Provider=SQLOLEDB.1Persist Security Info=FalseUser ID=sapwd=123456Initial Catalog=softdownData Source=ntserver" '连接到 ms sql server 7 cnMSSQL.Open sConnect'sSql = "create table softinfo (softNum smallint,softname varchar(70),softdesc blob," &_ "softpath varchar(30),softleng varchar(10),softclass varchar(10),softsugest tinyint(1)," &_ "softdown smallint(4))" '创建新的MySQL数据表语句 sSql = "select * from softinfo order by softnum" rs.Open sSql, cnMSSQL, 1, 1 While Not rs.EOF sSql = "insert into softinfo values (" &Trim(rs(0).Value) &",'" &Trim(rs(1).Value) &_"','" &Trim(rs(2).Value) &"','" &Trim(rs(3).Value) &"','" &Trim(rs(4).Value) &_"','" &Trim(rs(5).Value) &"'," &Trim(rs(6).Value) &"," &Trim(rs(7).Value) &")" cm.ActiveConnection = cnMySQL cm.CommandType = adCmdText cm.CommandText = sSql cm.Execute rs.MoveNext Wendrs.Close Set rs = NothingcnMySQL.Close Set cnMySQL = NothingcnMSSQL.Close Set cnMSSQL = Nothing End Sub欢迎分享,转载请注明来源:内存溢出
评论列表(0条)