一、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 $$