编译器:vc6.0或vs2012
最近学习数据库需要使用C语言通过odbc管理数据库,可是总是出问题,记录如下:
1. 首先安装mysql数据库,这里不多讲。
2. 选择编译器,我电脑上的编译器还是蛮多的,但是从网上查到的资料以及源代码中需要包含的头文件都是vc特有的,所以只能使用这款编译器了,后来发现vs也可以(microsoft家族啊...)。
3. 安装数据库驱动,根据我的环境我安装了官网上下载到的64位mysql-odbc驱动,从控制面板成功配置数据源。
4.
代码:
#include <Windows.h>
#include "sql.h"
#include "sqlext.h"//上面这三个数据库是必须的
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
RETCODE error;
HENV env;
HDBC conn;
SQLAllocEnv(&env);
SQLAllocConnect(env,&conn);
SQLConnect(conn, (SQLCHAR *)("SQL32"),SQL_NTS,(SQLCHAR *)("root"),SQL_NTS,(SQLCHAR *)(""),SQL_NTS);//注意这里使用的强制类型转换
{
char branchname[80];
float balance;
long int lenOut1,lenOut2;
HSTMT stmt;
char *sqlquery = "select branch_name,sum(balance) from account group by branch_name;";
SQLAllocStmt(conn,&stmt);
error = SQLExecDirect(stmt,(SQLCHAR *

在64位Windows 7环境下,使用C语言通过ODBC连接MySQL数据库遇到问题。错误集中在SQLConnect阶段,尝试过更换编译器和使用其他语言(Java、PHP)均未解决问题。最终发现在64位ODBC管理器中配置的数据源存在问题。根据微软支持文档,32位驱动需在SysWoW64下的ODBC管理工具配置,使用32位驱动和32位ODBC管理工具成功解决连接问题。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



