在进行数据库实验(ODBC使应用程序连接、访问数据库)的时候用SQLDriverConnect会连接失败,然后开始我的漫长解决之路…
1、利用.udl文件获得SQL实例名称。使用.udl获取数据库的连接字符
有时候直接重命名文件并不能更改文件类型,请戳右边这是更改扩展名的方法
结果如下:标蓝的就是实例名称
然而我得到实例名称也没有用啊!!我本来就知道自己的实例名称啊喂!!
2、开启远程连接步骤,结果打开第10步“SQL Server服务”的时候显示
这时就要卸载掉一个东西,戳右边卸载Microsoft SQL Server 2012 Express LocalDB
而且第10步里面显示SQL Server Browser是正在运行的状态,而我的是禁用的,然后就搜了搜这个东西的用处SQL Server Browser的功能,里面说:
SQL Server Browser服务主要的作用是侦听UDP 1434端口,当你的SQL Server是命名实例的时候,即默认侦听端口不是TCP 1433的时候,客户端需要先通过UDP 1434端口连接服务器上的SQL Browser服务获取该服务器上命名实例实际式样的TCP端口,这样才能建立后续连接。
虽然我的端口是1433,但保险起见我还是决定启动它,但是你会发现启动的键是灰色的,此时要先WIN+R打开运行,在运行中输入services.msc,找到SQL Server Browser启用,才能启用SQL Server里面的SQL Server Browser
(我这里是已经启动过了的)
然而,这么一套坐下来,并没有用…
3、还看到有说要配置防火墙的戳这里
好的,仍然没用
期间各种百度、谷歌,实践了各种方法,以及,各种失败。。。
4、等登等登final解答
其实是visual studio默认32位,然而SQL是64位(话说我上个学期写cpu的时候也被坑过…),但是改了之后,会出现下图:
报错的地方是:SQLCHAR和SQLBindParameter最后一个参数类型不兼容
于是把SQLCHAR改成SQLLEN,然后…终于跑起来了。枯了。
但是这是用的下发的demo.c程序跑的,当我一模一样地修改自己的cpp文件之后,却跑不起来是怎么回事??把demo.c复制粘贴覆盖掉我的c文件中,却也会connect failed…有人知道为什么的话,望赐教!
最后也只能在demo.c的环境中写我的c文件了…太坎坷了…