1

这可能是一个基本问题,但我尝试使用谷歌搜索并找不到答案。

我需要列出网络上的所有 SQL Server。使用 .NET 框架 (System.Data.Sql.SqlDataSourceEnumerator) 很容易做到这一点,但是在 java 中是否也有一种相对简单的方法来做到这一点?在我进行研究时,我发现了在不同端口监听的可能性,但这似乎对用户不友好。

我被告知要使用 SQL Browser 服务,但是 a) 我找不到任何有关如何从 java 调用它的信息,并且 b) 当您下载 SQL Server 时,该服务是否会自动下载?我可以假设我正在搜索的网络上的每台计算机都可以访问此浏览器服务吗?如果没有,这对我的代码有影响吗?

非常感谢大家。

4

4 回答 4

2

您可以使用ODBC API 中的 SQLBrowseConnect 函数

于 2010-02-09T14:41:22.113 回答
1

您可以从 java 调用 COM 组件(使用适当制作的 IDL),因此您可以使用DMOSMO(取决于您的 SQL Server 版本)

于 2010-02-09T14:28:23.150 回答
1

我最终使用命令行的osql -L命令列出了网络上的所有服务器。

于 2010-02-10T22:46:19.237 回答
0

我发现通过枚举使用 WMI 的服务器上的 Windows 服务很容易找到所有 SQL 服务(假设具有适当的权限级别)。这“捕获”了不同的 SQL Server 套件——服务,如不是关系引擎的 Reporting Services 和 Analysis Services,以及目前未运行的服务。我通过 PowerShell 将其用于许可证审核。因此,如果这看起来很有用,那么问题就在于如何从 Java 调用 WMI。这个家伙: http: //www.vijaykandy.com/archives/121列出了一些选项。

于 2010-02-10T22:14:31.717 回答