我正在使用SQL Server中的数据创建许多Excel报表(Excel 2010以上版本)。我首先使用OLEDB Connection,然后被迫切换到ODBC OLEDB does not support passing parameters to queries或Excel中的存储过程。我被禁止使用宏。 唯一的选择是使用ODBC,它可以很好地处理参数。然而,自从我使用ODBC以来很长一段时间,我们需要创建一个DSN,并且每个PC上都需要存在该文件才能使用该连接。来自Sharepoint的许多用户将访问我的Excel报告。因此无法在任何地方复制DSN文件。所以我想知道ODBC连接现在比以前更容易使用。如果我在带有Windows身份验证的Excel文件中使用它并将其部署到Sharepoint,用户是否能够像使用OLEDB一样访问它?
我没有找到关于此的更多信息,或者我可能不知道在哪里寻找这个。我希望有人可以提供帮助。
由于
答案 0 :(得分:1)
没有必要使用DSN(从未有过恕我直言)。您只需使用连接字符串而不是DSN条目即可。但是,连接到SQL Server的相应ODBC驱动程序需要安装在运行查询的每台机器上 - 这可能是个问题。
请在此处查看连接字符串列表:https://www.connectionstrings.com/sql-server-native-client-11-0-odbc-driver/
编辑:有一个驱动程序作为Windows 7的一部分(至少在专业人员中):驱动程序名为SQL Server
。但是有更新的驱动程序可以访问最新版本的Sql Server,请参见此处:https://msdn.microsoft.com/en-us/library/mt703139%28v=sql.1%29.aspx
我不确切知道在这些较新的驱动程序版本中支持/添加了哪些功能。
答案 1 :(得分:1)
我正在查看这个问题,因为我们正在从一个SQL Server实例迁移到另一个SQL Server实例并需要更新连接字符串。在我的研究中,我找到了Microsoft's documentation of the differences between the various connection providers in a table。
我们的新SQL Server使用跨越子网的AlwaysOn可用性组,因此如果我们将客户端指向AAG侦听器,我们需要在连接字符串中指定MultiSubnetFailover = true。不幸的是,OLEDB doesn't support the MultiSubnetFailover=True keyword in the connection string。
另一方面,OLEDB连接提供对OLAP数据透视表的支持,而ODBC则不支持。因此,我们计划使用手动更新的DNS条目将OLEDB连接路由到主节点并继续使用OLEDB连接。