`
linuxstuding
  • 浏览: 1230115 次
文章分类
社区版块
存档分类
最新评论

MySQL在Windows上的安装及VC通过ODBC连接MySQL数据库

 
阅读更多

一、MySQL的安装

1、下载地址

http://dev.mysql.com/downloads/mysql/5.0.html

2、下载内容

(1)mysql-noinstall-5.0.45-win32.zip

(2)mysql-gui-tools-noinstall-5.0-r12-win32.zip

(3)mysql-connector-odbc-noinstall-3.51.21-win32.zip

3、安装步骤

3.1 安装MySQL服务

(1)新建My.ini,内容如下,把该文件放在系统盘Windows文件夹内:

[WinMySQLAdmin]

Server=D:/MySQL-DB/mysql-5.0.45-win32/bin/mysqld-nt.exe

[mysql]

default-character-set=utf8

[client]
default-character-set=utf8

[mysqld]
default-character-set=utf8

basedir=D:/MySQL-DB/mysql-5.0.45-win32

datadir=D:/MySQL-DB/mysql-5.0.45-win32/data

其中basedir是安装目录。

(2)打开MS-DOS窗口,切换到“D:/MySQL-DB/mysql-5.0.45-win32/bin”目录;或者把“D:/MySQL-DB/mysql-5.0.45-win32/bin”添加到“环境变量”的“Path”变量中;执行命令如下:

mysqld-nt -install

(3)启动和停止mysql服务

D:/MySQL-DB/mysql-5.0.45-win32/bin>net start mysql

D:/MySQL-DB/mysql-5.0.45-win32/bin>net stop mysql

(4)移出mysql服务

mysqld-nt --remove

3.2 安装MySQL GUI

(1)把下载的mysql-gui-tools-noinstall-5.0-r12-win32.zip解压到D:/MySQL-GUI/MySQL GUI Tools 5.0目录中。

(2)双击该目录下的MySQLSystemTrayMonitor.exe

(3)在弹出界面中使用root用户登陆,密码为空

(4)登陆后在 User Administration中可以添加新用户、修改密码及分配新加用户对数据库的权限,在Catalogs中可以创建schema。

(5)使用该GUI可以建立存储过程、表等。

3.3 安装MySQL ODBC驱动

(1)把mysql-connector-odbc-noinstall-3.51.21-win32解压到D:/MySQL-ODBC/mysql-connector-odbc-noinstall-3.51.21-win32下,可以修改路径。

(2)在cmd下进入该目录,运行命令

Install 0

安装成功,在数据源中会显示MySQL的驱动程序。

二、VC通过ODBC连接MySQL

1、VC中代码如下

#define CONNECT_COMMAND _T("DSN=SpecialIntroduce;Driver={MySQL ODBC 3.51 Driver};UID=cmsuser;PWD=cmspassword")

(1)判断数据库是否连接

CDatabase m_dbBase;

m_dbBase.SetLoginTimeout(15);
bConnect = m_dbBase.OpenEx(CONNECT_COMMAND,CDatabase::openReadOnly | CDatabase::noOdbcDialog);

(2)调用存储过程事例

CString strSql;
strSql.Format(L"{CALL procGetSpecialMenuInfoBySMname('%s')}",strMname);
try
{
recordSet.Open(CRecordset::forwardOnly,strSql,CRecordset::readOnly);
}
catch(CException * e)
{
e->ReportError();
}
while (!recordSet.IsEOF())
{
recordSet.GetFieldValue(_T("SMid"),var);
menuInfos.Mid = (int)var.m_iVal;
recordSet.GetFieldValue(_T("SMname"),menuInfos.Mname);
recordSet.GetFieldValue(_T("SMprice"),menuInfos.Mprice);
recordSet.GetFieldValue(_T("SMmeasure"),menuInfos.Mmeasure);
recordSet.MoveNext();
}
recordSet.Close();

最后,若VC界面显示有中文,在配置数据源时,在Connection Options界面的character set 选项中选择gb2312既可以。

三、MySQL建表及存储过程事例

DROP TABLE IF EXISTS `TableName`;
CREATE TABLE IF NOT EXISTS `TableName`
(
`SMid` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`SMname` VARCHAR(20) NOT NULL,
`SMname1` VARCHAR(20) NOT NULL,
`SMmeasure` VARCHAR(6) NOT NULL,
`SMprice` DECIMAL(18,2) NOT NULL,
`SMstatus` BIT NOT NULL DEFAULT 1,
`SMremark` VARCHAR(200),
CONSTRAINT FK_TableName_SMid PRIMARY KEY (`SMid`),
CONSTRAINT UQ_TableName_SMname UNIQUE (`SMname`)
)ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=UTF8;

DELIMITER $$

DROP PROCEDURE IF EXISTS `SchemaName`.`procGetxx` $$
CREATE PROCEDURE `SchemaName`.`procGetxx` (SMnames VARCHAR(20))
BEGIN
SELECT
`SMid`,
`SMname`,
`SMprice`,
`SMmeasure`
FROM
`TableName`
WHERE
`SMname` = SMnames;
END $$

DELIMITER ;

DELIMITER $$

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics