c++用odbc连接mysql到SQLConnect()返回-1? 4C

retcode = SQLConnect(hdbc, (SQLCHAR*) "mysql", SQL_NTS, (SQLCHAR*)"root", SQL_NTS, (SQLCHAR *)"mysql", SQL_NTS);
mysql是安装的最新版本,同时自带安装了ODBC,然后代码连接:
https://msdn.microsoft.com/zh-cn/library/ms711810.aspx
希望好心人帮忙调试下。
QQ:185354748

2个回答

先在odbc中配置连接并且点其中的测试按钮,看看能不能测试通过,如果不行就是配置的问题。

odbcad32 数据源管理 里面是测试听过的,但是里面有 用户跟系统DSN,不知道该怎么选择,还有就是驱动也有Unicode跟ANSI不知道选择什么编码,但是都是试过的。
数据库版本是mysql5.7.12 for Win64 (x86_64)编码是UTF-8.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
ODBC学习笔记—SQLConnect
SQLConnect 函数定义: 这个函数就是与数据库建立连接 SQLRETURN SQLConnect(      SQLHDBC     ConnectionHandle,      SQLCHAR *     ServerName,      SQLSMALLINT     NameLength1,      SQLCHAR *     UserName,      SQLS
linux下odbc SQLConnect问题
客户有一个odbc的安装文件,默认是安装在/opt下的,odbc.ini,odbcinst.ini也都在opt下配置,安装完成后,执行isql 命令会找不到数据库DSN,用odbcinst -j查看结果是:rnunixODBC 2.3.0rnDRIVERS............: /opt/unixODBC/etc/odbcinst.inirnSYSTEM DATA SOURCES: /opt/unixODBC/etc/odbc.inirnFILE DATA SOURCES..: /opt/unixODBC/etc/ODBCDataSourcesrnUSER DATA SOURCES..: /opt/unixODBC/etc/odbc.inirnSQLULEN Size.......: 4rnSQLLEN Size........: 4rnSQLSETPOSIROW Size.: 2rnrn将/opt/unixODBC文件夹都拷贝到 /usr/local下后,执行isql 命令能够连接数据库,但C程序的SQLConnect一直都是连接失败,提示rn[unixODBC][Driver Manager]Data source name not found, and no default driver specified (0)rn设置了环境变量rnexport ODBCSYSINI=/opt/unixODBC/etcrnexport ODBCINI=/opt/unixODBC/etc/odbc.inirn都还是不行,将ini文件拷贝到/home下,/usr/loca/etc下都不行;rnrnrn但如果安装系统的odbc,默认ini文件是在/etc下,C程序都是正常的。rn求高手帮忙看看,谢谢!!!
关于ODBC的SQLConnect API
问题描述:rnSQLConnect(m_hdbc, (SQLCHAR*) [color=#FF0000]cpServerName[/color], SQL_NTS, (SQLCHAR*) cpUserName, SQL_NTS, (SQLCHAR*) cpPassword, SQL_NTS);rn关于数据源输入参数,是不是一定要在控制版面-数据源管理器里面建立一个数据源才能调用该函数?rn我现在有一个网上找到的程序,附带一个mdb的数据库文件,数据源管理器里面没有它的数据源信息,但程序照样可以运行,而且运行完以后数据源的信息自动的添加到管理器里面了,请问为什么,还有自动添加的这个动作是在哪里完成的??
我用ODBC的sqlconnect连接MS SQL SERVER失败
大家好,我用VS2008编写的C语言程序,在访问SQLSERVER数据的时候,sqlconnect()函数的返回值为-1。不知道什么原因。rn我ODBC的数据源配置没有问题,测试是对的。下面是我的 程序,请帮忙指导下问题出在哪。谢谢。rn我的ODBC数据源的配置是:用户DSN(系统DSN也试过,同样不行),数据源名称为LocalServer,描述为空,服务器为127.0.0.1(为本机,远程的也试过,不行),其他默认。rn不知道问题在哪。rn谢谢了。rnrn// compile with: odbc32.librn#include rn#include rn#include rn#include rn#include rnrnvoid sqlConnect();rnrnint main()rn rn sqlConnect();rn getchar();rn return 0;rnrnrnvoid sqlConnect()rnrn SQLHENV henv;rn SQLHDBC hdbc;rn SQLHSTMT hstmt;rn SQLRETURN retcode;rn UCHAR sql1[79]="select * from tbl_saleinfo where saleinfo_ticketid = 101988902";rn UCHAR szDSN[15] = "LocalServer"; rn UCHAR userID[6] = "sa";rn UCHAR passWORD[10] = "123456";rnrn /*UCHAR szDSN[15] = "HOST"; rn UCHAR userID[6] = "demo";rn UCHAR passWORD[10] = "demo";*/rnrnrn // Allocate environment handlern retcode=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);rnrn rn if(retcode==SQL_SUCCESS || retcode==SQL_SUCCESS_WITH_INFO)rn rn printf("i am here1.\n");rn // Set the ODBC version environment attributern retcode=SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0);rn rn if(retcode==SQL_SUCCESS || retcode==SQL_SUCCESS_WITH_INFO)rn rn printf("i am here2.\n");rn // Allocate connection handle 创建连接句柄,下面两个方法好像都可以rn retcode=SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);rn //retcode = SQLAllocConnect(henv,&hdbc);rnrn if(retcode==SQL_SUCCESS || retcode==SQL_SUCCESS_WITH_INFO)rn rn printf("i am here3.\n");rn // Set login timeout to 5 secondsrn SQLSetConnectAttr(hdbc, SQL_LOGIN_TIMEOUT, (SQLPOINTER)5, 0); rnrn // Connect to data sourcern retcode=SQLConnect(hdbc, (SQLCHAR*)"LocalServer", SQL_NTS,(SQLCHAR*)"sa", SQL_NTS,(SQLCHAR*)"123456", SQL_NTS); rn rn if((retcode==SQL_SUCCESS) || (retcode==SQL_SUCCESS_WITH_INFO))rn rn printf("i am here4.\n");rnrn retcode=SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt);rn if(retcode==SQL_SUCCESS || retcode==SQL_SUCCESS_WITH_INFO)rn rn rn //绑定参数方式rn char a[20]="Jim";rn SQLINTEGER p=SQL_NTS;rn char list[5];rnrn printf("i am here5.\n");rn //1.预编译rn SQLPrepare(hstmt,sql1,79);//第三个参数与数组大小相同,而不是数据库列相同rn //2.绑定参数值rn SQLBindParameter(hstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,200,0,&a,0,&p);rn SQLExecute(hstmt);rn printf("connection is OK\n");rn //SQLExecDirect(hstmt,sql1,79);rn rn SQLBindCol(hstmt,1,SQL_C_CHAR,list,5,0);rn SQLFetch(hstmt);rn printf("%s\n",list);rn rn SQLDisconnect(hdbc);rn rn else rn printf("failed:\n"); rn SQLFreeHandle(SQL_HANDLE_DBC,hdbc);rn rn rn rnrnrn我手上的分数不多了,抱歉。
如何通过odbc连接vfp的dbc,用sqlconnect()来连
如何通过odbc连接vfp的dbc,用sqlconnect()来连
用odbc连接access数据库返回数据问题?
建立access表test,两个字段no,bit,存入两行数据(1,1),(2,2)rn用以下代码连接:rn\n";rn$connect=odbc_connect("newaccess","","");rnecho $connect." \n";rn$string ="select no ";rn$string .="from test";rn$result=odbc_do($connect,$string);rnecho $result." \n";rnodbc_result_all($result, "border=1 width=50%");rnodbc_close($connect);rnecho " end";rn?>rn结果是:rnhellornResource id #2rnResource id #3rnExpr1000 rn0 rn0 rnrnendrn其中expr1000,0,0是在表格里,因为我用的是odbc_result_all函数,为什么rn不显示1,1rn 2,2呢?rn
MySQL C/C++ ODBC连接问题求解决
void putlist::OnBnClickedButton1()rnrn tryrn CDatabase outdata;rn outdata.Open("test");rn CString read;rn CString m_name;rn CMFCDATADlg *pDlg = (CMFCDATADlg*)AfxGetMainWnd(); //值得注意的已用方式rn pDlg->GetDlgItem(IDC_EDIT1)->GetWindowText(m_name);//引用IDD_MFCDATA_DIALOG中的控件rn if (outdata.IsOpen())rn rn CRecordset ReadData(&outdata);rn ReadData.Open(CRecordset::forwardOnly, "select * from `固定资产表`;", CRecordset::readOnly);rn bool found = false;rn while (!ReadData.IsEOF())rn rn ReadData.GetFieldValue("Z_Name", read);rn if (read == m_name)rn rn found = true;rn rn ReadData.MoveNext();rn rn if (found)rn rn //应添加输出表格的程序段rn CString id, type, assetsnumber, receiver, model, factorynumber, amuont, name, note;rn CRecordset Output(&outdata);rn Output.Open(CRecordset::forwardOnly, "SELECT * FROM `固定资产表` WHERE Z_Name =" + m_name , CRecordset::readOnly);rnrn Output.GetFieldValue("Z_ID", id);rn Output.GetFieldValue("Z_Type", type);rn Output.GetFieldValue("Z_Assets number", assetsnumber);rn Output.GetFieldValue("Z_Receiver", receiver);rn Output.GetFieldValue("Z_Model", model);rn Output.GetFieldValue("Z_Factory number", factorynumber);rn Output.GetFieldValue("Z_Amuont", amuont);rn Output.GetFieldValue("Z_Name", name);rn Output.GetFieldValue("Z_Note", note);rnrn GetDlgItem(IDC_EDIT1)->SetWindowText(name);rn出现“查询不到‘m_name’这一列”的错误,正确语法SELECT *FROM `固定资产表` WHERE Z_Name=‘’;我该如何解决?
mysql odbc 连接工具
mysql odbc连接,能够通过odbc连接java
mysql ODBC 连接问题
已经成功配置了用户DNS, 名称为mysql,测试连接成功了rnrn但是在VC++2008下写入下语句rn[code=C/C++]rn RETCODE error;rn HENV henv;rn HDBC hdbc;rnrn error = SQLAllocEnv(&henv);rn error = SQLAllocConnect(henv,&hdbc);rn error = SQLConnect(hdbc,"mysql",SQL_NTS,"lawliet",SQL_NTS, "123", SQL_NTS);rn[/code]rn前两句返回都是0,SQLConnect返回-1, 求解.
mysql ODBC 连接
开发工具与mysql做ODBC连接的小工具。
Mysql的ODBC连接问题
我在控制面板的数据源里配置ODBC的时候,点击Test时候出来一个出错提示:rnrn[MySQL][ODBC 3.51Driver]Access denied for user:'@localhost' to database 'hncsdb'rnrn有谁知道怎么解决吗?帮个忙解决下啊.
ODBC连接mysql
MFC中ODBC连接数据库,有具体的步骤和方法,以及对数据库进行简单的插入,查询等操作
64位odbc连接mysql
64位操作系统连接mysql的odbc5.1.11
mysql的odbc连接工具
mysql的odbc连接工具,好像没人上传,上传到留着以后备用
mysql odbc连接问题
我在配置odbc时,rnserver 配置 localhost或者127.0.0.1 ,可以test测试成功rn但是配置 本机 ip 192.168.0.123 时测试不通,请教原因rnrn在我vbs 文件 中rnrnstrconnection="dsn=mysqlServer;driver=mysql odbc 3.51 driver;server=localhost;uid=root;pwd=1;database=njsys_2006" rnset Myconn = server.createobject("adodb.connection") rnMyconn.open strconnection rnrnrn运行提示:缺少对象:‘server’rnrn请教原因rn
SQLconnect
import java.sql.*; import com.microsoft.jdbc.sqlserver.SQLServerDriver; public class lianjie { public lianjie() { } public Connection con() { try { Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); Connection cong=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=book","sa","sa"); System.out.println("连接成功"); return cong; } catch (Exception ex) { System.out.println("连接失败"+ex.toString()); return null; } } }
vs2008下用odbc连接mysql失败
使用工具->连接到数据库...添加了本机的mysql下的一个数据库,测试连接成功,但是下面的代码总是输出“failure"rn[code=C/C++]#include rn#include rn#include rn#include rn#include rn#include rnrn#define LNAME_LEN 41rn#define FNAME_LEN 21rn#define MAX 200rnconst char* dbname="library";rnrnrnint main()rnrn SQLHENV henv; rn SQLHDBC hdbc;rn SQLHSTMT hstmt;rn RETCODE retcode;rn RETCODE ret;rnrn SQLAllocEnv(&henv); //分配环境句柄rn SQLAllocConnect(henv,&hdbc); //分配连接句柄rn ret=SQLConnect(hdbc,( SQLWCHAR *) dbname,SQL_NTS, //连接数据源rn TEXT("root"),SQL_NTS,TEXT("7585524"),SQL_NTS); rn if(ret==SQL_SUCCESS) rn printf("link successful\n");rn else rn rn printf("failure\n");rn return 0;rn rnrn SQLFreeStmt(hstmt,SQL_DROP); rn SQLDisconnect(hdbc);rn SQLFreeConnect(hdbc);rn SQLFreeEnv(henv);rn return 0;rn[/code]rn
Delphi用ODBC连接MYSQL问题!!!
Delphi7rn用ADOCONNECTION联ODBC,连接测试出错!提示!rn“测试联接失败,以为初始化提供程序时发生错误,灾难性故障”rn
VC 连接MySQL 字符串 用ODBC连
今天我用VC 连接MySQL数据库(ODBC),装的驱动是MySQL ODBC 5.1 Driver,rn CDatabase db;rn BOOL bResult = TRUE;rn CString chSql;rn CString sDsn; rn sDsn="DSN=airmonitordb;Server=192.168.0.120; Driver=MySQL ODBC 5.1 Driver;UID=MM;PWD=ZM";rn chSql.Format("insert into airconditionpara(TemperSet,MaxTemper,MinTemper,HumiditySet,MaxHumidity,MinHumidity,RoleNumber) values(%d,%d,%d,%d,%d,%d,%d)",rn 20,20,20,20,20,20,20);rn TRYrn rn db.OpenEx(_T( sDsn),CDatabase::noOdbcDialog ) ;rn db.ExecuteSQL(chSql);rn rn CATCH(CDBException, e)rn rn bResult = FALSE; //数据库处理异常rn return bResult;rn rn就是插入不进去,请教高手怎么解决,谢谢
MySQL ODBC 用C++连接MySQL数据库
MySQL数据库是最受欢迎的开源数据库。得到广泛的应用。如果你想创业 。用MySQL是个不错的选择。从下载此文件开始抒写你才创业之路吧。
PB 用ODBC如何连接MYSQL
PB 用ODBC如何连接MYSQL
linux下用odbc连接mysql的驱动问题
文件odbcinst.ini:rn[MySQL64]rnDescription = ODBC for MySQLrnDriver = /usr/lib64/libmyodbc5.sornSetup = /usr/lib64/libodbcmyS.sornFileUsage = 1rnrn文件odbc.ini:rn[product]rnDescription=mysql product databasernDriver=MySQLrn#Driver=/usr/lib64/libodbc.sorn#Driver=/usr/lib/libmyodbc5a.sorn#Driver=/usr/lib64/libodbcmyS.sorn#Driver=/usr/lib64/libmyodbc5.sornSERVER=rnUSER=rnPASSWORD=rnPORT=3306rnDATABASE=productrnrn用isql连接始终报错:rn[root@test2 etc]# isql product root 123456rn[ISQL]ERROR: Could not SQLConnectrnrn但用32位的驱动就好使:rnDriver=/usr/lib/libmyodbc5a.sornrn机器是64位的,mysql是64位的,unixODBC是64位的,myODBC是64位的。rn哪位大侠遇到过这种问题?望不吝赐教,谢谢!
Delphi 7 用odbc 连接mysql问题
我用odbc连mysql成功,可用delphi7 的ado 连接odbc时,测试时总提示连接不上数据库"测试连接失败,因为初始化提供程序时发生错误。[MySQL][ODBC 3.51 Driver]Can'connect to MySql server on '127.0.0.1'(10013)"
VB连接MYSQL,recordcount返回-1
VB连接MYSQL,recordcount返回-1rnrn怎样解决.寻求帮助。rnrnrn
用C语言连接mysql
Windows下 用C语言连接mysql
用c语言连接mysql
安装mysql,请自行百度 安装mysql.h函数库 sudo apt-get install libmysqlclient-dev执行之后就可以看到/usr/include/mysql目录了 然后开始我们的链接. 首先看我的数据库mysql> show databases; +--------------------+ | Database | +-------------
C 连接ODBC与ACCESS
C 连接ODBC与ACCESS的方法,并用此搭建数据库
.Net用ODBC连接MySql的通用类和ODBC驱动
小弟初学MySql,上网找了好久没有找到有关操作MySql的通用类,没有办法,于是小弟结合自己知道的MS Sql的理解,自己写了这一个操作MySql的通用类。虽不是很成熟,不过还蛮实用的。如有不足,希望能得到您富贵意见。 发现了一个和MS Sql不一样的问题。 不知道怎么删除该文件。我在这告诉你们怎么改吧。 把烦是用到CreateCmd(SQL,Con );的地方。把上面的那个 .Open()删除就好了。
用ADO动态连接ODBC(C/S)
1.我想在代码中创建一个ODBC的连接,这个数据库在SEVER上,为 SQL7.0rn不知道我该怎么创建,我一向是在控制面板中创建的,各位大虾请教了rn2.怎么才能把MAPINFO嵌入到VB程序的界面中呢?rn
用ODBC连接ORACLE数据库
在ODBC中怎样配置才能连接ORACLE数据库!!!跪求大虾告诉我方法!!!
用DAO连接ODBC
用DAO通过ODBC访问SQL Server数据库,连接(open)怎么写呀?
用ODBC连接access数据库;
用程序配置数据源,只实现简单的添加,修改,删除就可以了.只用API,不用MFC,拜求代码.
我用ADO 连接MySql的ODBC连接成功查询出错????
我的是 VC 程序 <<----重点强调一下rn我的程序是用ADO写的 也就是这种东西:rn_ConnectionPtr m_pConnection;rn_RecordsetPtr m_pRecordset;rn调试的时候我用的是本机的 ACCESS 一切正常 都成功了rnrn现在 我想连到MySql 数据库上 ,连接字符串都没错,应该没错 因为我是用delphi生成的rn大概就是这样用户名和密码Ip什么的我都去掉了rnstrConn.Format(_T("Provider=MSDASQL.1;Password=rnMYPWD;Persist Security Info=True;\rn User ID=MYUID;Data Source=mysql1;Extended Properties='DATABASE=DATEBASENAME;\rnDSN=mysql1;OPTION=;PWD=MYPWD;PORT=3306;SERVER=IP;UID=MYUID'"));rnrn调试的时候 m_pConnection->Open rn都没问题 都没出错 可是在 m_pRecordset->Openrn的时候出错了 错误说 “ODBC 驱动程序不支持所需属性” rnrn难道ADO不能访问 MySql的ODBC ? 没道理啊 人家 ASP不就用的是ADO用的好好的啊rn搞不懂 100分 求教!!rnrnrn另一种方案 如果实在不行我就不用MySql了 我用SyBase 可是我找不到驱动程序啊,rn谁知道驱动程序在哪找 没有驱动程序 我就建立不了数据源 就没办法连接rn郁闷!!rn我用Delphi 的 BDE可以直接建立SyBase 的数据源 可是好像VC用不了 郁闷rnrn现在就这两种数据库 谁有办法帮我!rnrn
用ODBC连接MYSQL,连接上了,DBGrid却显示不出来`~~
如题:用ODBC连接MYSQL,连接成功了,在设置ADOTable的Active属性为Ture时,却发生错误:“Adotable:miss table name property”rn我用的组件是:DBGrid+Datasource+ADOconnection+ADOtablern连接字符串为:rnProvider=MSDASQL.1;Persist Security Info=False;User ID=root;Data Source=test;Extended Properties="DATABASE=test;DSN=test;OPTION=0;PORT=0;SERVER=localhost;UID=root"rnrn想要显示的表的名称为pet
odbc连接mysql,头文件报错
[img=https://img-bbs.csdn.net/upload/201310/22/1382432156_440865.png][/img]rn[img=https://img-bbs.csdn.net/upload/201310/22/1382432171_79741.png][/img]
pb通过odbc连接mysql
哪位有pb通过odbc连接mysql的源码啊?谢谢
mysql不用odbc怎么连接?
mysql不用odbc怎么连接?rnrn别人安odbc驱动和配置毕竟不方便rnrn搜索有的说可以安装其他软件,但那个不是免费的。rnrn有什么好办法吗?rnrn[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/onion/68.gif][/img]
Informatica_Linux下配置MySQL的ODBC连接
介绍了在linux如何使用Informatica PowerCentor设置到MySQL的连接,本文分别提出MySQL企业版本及社区的连接方案
ODBC数据源和MySQL连接问题
下载ODBC-MySQL驱动链接:https://pan.baidu.com/s/1W9xpe1wJnKtCYEIZcxoxGA     密码:1whe这里有一个驱动包是5.3.9   32-bit (为什么要32位的呢,大部分人都用的是32位的MySQL,所以我们要知道到底是32位还是64位,注意如果驱动包是5.1版本之前的话,可能就有编码方面的问题了,中文乱码输出),当然还有64-bit,去官...
使用ODBC连接MySQL数据库问题
一、 1. 下载ODBC连接MySQL的jar包,注意区别32位和64位版本 2. 按步骤安装完成驱动后,在控制面板—管理工具—数据源 配置ODBC。 3. 因为jar包原因或者软件原因,添加ODBC连接需要在 C:\Windows\SysWOW64文件夹下启动odbcad32.exe,添加数据库连接成功。 二、 1. 当ODBC安装过程中,出现 因为 关于ODBC不能添加,
相关热词 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类 c# 再次尝试 连接失败 c#开发编写规范 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数