C语言通过ODBC连接access数据库总是不成功,求各位大神帮解决,谢谢

Mio_Mikoto Mio_Mikoto 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#include <stdio.h>
#include <stdlib.h>

#include <windows.h>
#include <sqlext.h> //这个应该是必须的, 链结时需要odbc32.lib

int main() {

SQLHENV henv = NULL; //环境句柄
SQLHDBC hdbc = NULL; //odbc连接句柄
SQLHSTMT hstmt = NULL; //语句句柄

SQLRETURN retcode;
SQLCHAR connout[256];
SQLSMALLINT connout_len;
SQLCHAR connstr[] = "Driver={Microsoft Access Driver (*.mdb)};Dbq=E:\\Room AC thermal dynamic calculation\\RTS Data File\\Envelope_Database.mdb;Uid=admin;Pwd=;CharSet=gbk;";

//分配环境
retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
//设置环境属性
retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
//分配链结
retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
//创建数据库链结
retcode = SQLDriverConnect(hdbc, NULL, connstr, SQL_NTS, connout, sizeof(connout), &connout_len, SQL_DRIVER_NOPROMPT);

//retcode = 0;

if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {

printf("connnect access ok!\n");
printf("%s\n", connout);

}

else {

printf("failure!\n");
}

}


大家好,小弟是编程方面的新手,在c语言调用access数据库时遇到一些问题不能解决,希望大家帮我一下,谢谢!
我是参照http://blog.csdn.net/jueane/article/details/12034571这篇博客直接copy进VS 2013的,但是retcode =SQLDriverConnect这段返回值总是-1,数据库调用总是不成功。
数据库我已经放到系统DSN中去了(其实我不懂这样做的目的)

也没有设置密码之类的东西

这是数据库

希望大家帮我解决一下这个问题,谢谢!
...全文

相关推荐

评论 2
收藏 已收藏
分享
返回顶部
Mio_Mikoto
C语言 70,040 成员 243,237 内容