C++使用SQL Server 一:(编程方式)配置 ODBC 数据源
以编程方式配置 ODBC 数据源
官方有讲解的:数据源:以编程方式配置 ODBC 数据源 | Microsoft Docs
但是有些东西还是不太懂
经过测试,如下代码可以正常使用
#include <windows.h> #include <odbcinst.h> //windows.h必须位于odbcinst头文件前面,且需要在项目中添加legacy_stdio_definitions.lib #include <iostream> int main() { /* hwndParent:指定为 ODBC 驱动程序管理器或特定 ODBC 驱动程序创建的任何对话框的所有者的窗口,以便从用户处获取有关新数据源的其他信息。 如果 lpszAttributes 参数不提供足够的信息,则会显示一个对话框。 hwndParent 参数可能为 NULL fRequest: ODBC_ADD_DSN: 增加一个新的用户数据源 ODBC_CONHG_DSN: 配置(修改)一个已经存在的数据源 ODBC_REMOVE_DSN: 删除一个已经存在的数据源 ODBC_ADD_SYS_DSN: 增加一个新的系统数据源 ODBC_CONFIG_SYS_DSN: 更改一个已经存在的系统数据源 ODBC_REMOVE_SYS_DSN: 删除一个已经存在的系统数据源 lpszDriver:是数据库引擎名称,也就是驱动程序名称;在ODBC管理程序里面可以看到 lpszAttributes:格式为“keyname=value”的属性列表。 这些字符串由 null 终止符分隔,列表末尾有两个连续 null 终止符。 这些属性主要是默认的特定于驱动程序的条目,这些条目进入新数据源的注册表中。 */ if (SQLConfigDataSource(nullptr, ODBC_ADD_DSN, L"SQL Server", //相关字段名以及填写要求可以参考:https://docs.microsoft.com/en-us/sql/relational-databases/native-client/applications/using-connection-string-keywords-with-sql-server-native-client?view=sql-server-ver16 L"DSN=my_sqlServe\0" L"Database=master\0" L"Server=127.0.0.1\0" L"Description=TEST\0" L"Trusted_Connection=no\0" //yes:Windows 身份验证模式进行登录验证;no:使用 SQL Server 用户名和密码进行登录验证,必须指定 UID 和 PWD 关键字 //L"UID=sa\0" //测试了,也不能指定UID //L"PWD=Lovedan@971220\0" //测试证明,不能指定PWD,亦或者还有其他条件,但是我没有找到。 )) { std::cout << "成功!" << std::endl; //SQLConfigDataSource函数是可以多次调用的,不会因为DSN已存在就报错的。 } else { std::cout << "失败!" << std::endl; } }
以图形界面方式配置数据源
控制面板\系统和安全\管理工具
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?