在过去,我使用ADO访问SQLServer,ADO连接对象的连接字符串是:
Provider=sqloledb;Data Source=MYPC;Integrated Security=SSPI;
其中MYPC是我的计算机的名称,SQL Server作为默认实例安装在我的计算机上。
上面的连接字符串工作良好。
然而,现在据说ado已经过时了,而odbc又被微软推荐了(见https://blogs.msdn.microsoft.com/sqlnativeclient/2011/08/29/microsoft-is-aligning-with-odbc-for-native-relational-data-access/),所以我必须修改代码以使用ODBC。
因此,我将与SQLServer的连接更改为以下代码:
CDatabase Database;
// Provider=sqloledb;Data Source=MYPC;Integrated Security=SSPI;
Database.OpenEx(_T("Driver = {SQL Native Client}; Server = MYPC; Trusted_Connection = yes;"), CDatabase::noOdbcDialog);
Database.ExecuteSQL(_T("create database [MyDB2019] on primary (name=[MyDB2019_File],filename='F:\\MyDB2019.mdf')"));
Database.Close();
但是,此代码不起作用。执行后Database.OpenEx,将有一个CDBException指示
未找到数据源名称,也未指定默认驱动程序。
为什么?
创建一个扩展名为UDL的文件。示例:test.udl双击文件。使用GUI连接到数据库。完成后,使用记事本打开UDL文件并解压连接字符串。
参考可见:https://www.dmxzone.com/go/312/how-to-generate-an-ado-connection-string/
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。