求最简单的MFC连接MYSQL

peachbrandy1 2010-02-20 05:05:42
搞了一下午没搞出来
CDatabase db;
db.OpenEx(_T("ODBC=MySQL ODBC 5.1 Driver;DSN=MySQL Server 5.1;DATEBASE=test;SERVER=127.0.0.1;UID=root;PASSWORD=;"),
CDatabase::openReadOnly|CDatabase::noOdbcDialog);
老提示 “未发现数据源名称并且未指定默认驱动程序”。
也不去想了,只求个最简单的MFC连接MYSQL(无论通过odbc或者直接,简单就行,不要那种下什么完全版什么的,还要拷来拷去头文件链接库),只要能通过,给个随便执行个语句的就行。
数据库 MySQL Server 5.1


在oninitdialog中初始化,
onok中随便给个创建表或者啥的。
在onclose中关闭连接。
记得告诉我需要的链接库和头文件。
最好给我个示例代码 peachbrandy@126.com,人笨没办法。谢谢。

...全文
716 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
oldmanzhao 2010-02-21
  • 打赏
  • 举报
回复
CDatabase::ExecuteSQL
peachbrandy1 2010-02-21
  • 打赏
  • 举报
回复
db.OpenEx(_T("DRIVER=MySQL ODBC 5.1 Driver;DATEBASE=test;SERVER=127.0.0.1;UID=root;PASSWORD=;"),
CDatabase::openReadOnly|CDatabase::noOdbcDialog);
我那个ODBC没有管理工具,我这样写,没报错,应该是通过了,那我怎么执行操作呢,
例如我想执行create table t_person(FName varchar(20));
oldmanzhao 2010-02-21
  • 打赏
  • 举报
回复
引用 1 楼 peachbrandy1 的回复:
工具是VC6,DSN是什么东西我还是没搞明白

DSN就是数据源
zhou1xp 2010-02-21
  • 打赏
  • 举报
回复
mark,太短了,太短了,太短了,太短了
oldmanzhao 2010-02-21
  • 打赏
  • 举报
回复
在管理工具->ODBC数据源里为MySQL创建一个新的数据源,测试OK后
在VC里添加类->MFC->MFC ODBC使用者,将刚才创建的数据源添加进来就可以用了。
peachbrandy1 2010-02-21
  • 打赏
  • 举报
回复
引用 2 楼 oldmanzhao 的回复:
去载一个MySQL的ODBC驱动装下。

已经装过了,ODBC5.1,我想要的是怎么连接,数据库mysql 5.1
zwfgdlc 2010-02-21
  • 打赏
  • 举报
回复
直接用MYSQL的C API连接就行了。
相关资料:
http://download.csdn.net/source/1047386
peachbrandy1 2010-02-21
  • 打赏
  • 举报
回复
感谢LS的牛,我是这样用的

SQLHENV henv = NULL;
SQLHDBC hdbc = NULL;
SQLHSTMT hstmt = NULL;
SQLRETURN result;
SQLCHAR ConnStrIn[MAXBUFLEN] = _T("DRIVER={MySQL ODBC 5.1 Driver};SERVER=127.0.0.1;UID=root;PWD=;DATABASE=test;CharSet=gbk;");
SQLCHAR ConnStrOut[MAXBUFLEN];
result = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
result = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
result = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
result = SQLSetConnectAttr(hdbc, SQL_LOGIN_TIMEOUT, (void*)LOGIN_TIMEOUT, 0);
result = SQLDriverConnect(hdbc,NULL,

ConnStrIn,SQL_NTS,

ConnStrOut,MAXBUFLEN,

(SQLSMALLINT *)0,SQL_DRIVER_NOPROMPT);
if(SQL_ERROR==result)

{

MessageBox(_T("Connect error!"),_T("Error!"),0);

return;

}
result = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
result = SQLPrepare(hstmt,(SQLCHAR*)_T("insert into T_Dell(FCoad) values('1')"),SQL_NTS);
CHECKDBSTMTERROR(result,hstmt);

result =SQLExecute(hstmt);

CHECKDBSTMTERROR(result,hstmt);

SQLFreeStmt(hstmt,SQL_CLOSE);

SQLDisconnect(hdbc);

SQLFreeHandle(SQL_HANDLE_DBC,hdbc);

SQLFreeHandle(SQL_HANDLE_ENV,henv);
oldmanzhao 2010-02-20
  • 打赏
  • 举报
回复
去载一个MySQL的ODBC驱动装下。
peachbrandy1 2010-02-20
  • 打赏
  • 举报
回复
工具是VC6,DSN是什么东西我还是没搞明白

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧