获取局域网数据库服务器列表
在IT领域,获取局域网中的数据库服务器列表是一项常见的任务,尤其对于开发人员来说,能够自动发现并连接到网络上的数据库服务器可以极大地提高工作效率。在本案例中,讨论的是在PowerBuilder (PB)环境中如何列出局域网内的Microsoft SQL Server (MSSQL)服务器。 我们来看一种尝试的方法,这在上述内容中由用户`liujun`提供。这种方法利用SQLDMO (SQL Server Data Management Objects) 来获取指定服务器上的数据库列表,而不是列出所有局域网中的MSSQL服务器。以下是一个简单的示例: ```sql String ls_name,ls_db_size,ls_owner,ls_dbid,ls_created,ls_status,ls_c_level DECLARE lsp_getdb PROCEDURE FOR sp_helpdb; EXECUTE lsp_getdb; FETCH lsp_getdb INTO :ls_name,:ls_db_size,:ls_owner,:ls_dbid,:ls_created,:ls_status,:ls_c_level; DO WHILE sqlca.SQLCode = 0 ddlb_1.AddItem(ls_name) // 添加数据库名称到列表框 FETCH lsp_getdb INTO :ls_name,:ls_db_size,:ls_owner,:ls_dbid,:ls_created,:ls_status,:ls_c_level; LOOP CLOSE lsp_getdb; ``` 这段代码通过执行`sp_helpdb`系统存储过程,将指定SQL Server上的所有数据库名称添加到PowerBuilder的数据窗口列表中。然而,这并不解决寻找局域网内所有MSSQL服务器的问题。 用户`pbsai`提出了一个可能的解决方案,即通过端口扫描来查找网络上的MSSQL服务器。MSSQL Server默认使用TCP端口1433进行通信。因此,可以通过扫描特定IP地址段的1433端口来发现运行MSSQL的服务器。然而,这种方法可能涉及网络安全和隐私问题,且可能需要管理员权限,并不适用于所有环境。 用户`jw722`提到的链接似乎指向了一个可能的端口扫描实现,但具体的实现细节没有给出。 用户`pbsai`分享了找到的正确方法,即使用SQLDMO的`ListAvailableSQLServers`方法,这是一个更有效的方式,可以用于获取局域网内所有可用的MSSQL服务器: ```pbl integer i, li_count long ll_status OLEObject SQLSERVER, SERVERNAME SQLSERVER=create OLEObject SERVERNAME=create OLEObject SQLSERVER.connecttoNewObject("SQLDMO.Application") SERVERNAME.connecttoNewObject("SQLDMO.NameList") SERVERNAME=SQLSERVER.ListAvailableSQLServers li_count=SERVERNAME.Count for i = 1 to li_count // 将每个服务器名添加到列表或其他数据结构 // 例如: ddlb_1.AddItem(SERVERNAME.Item(i).Name) next ``` 这种方法创建了SQLDMO对象,然后调用`ListAvailableSQLServers`获取服务器列表,通过循环遍历列表并添加到PowerBuilder的控件中,从而显示所有可用的MSSQL服务器。 总结来说,获取局域网数据库服务器列表涉及到使用如SQLDMO这样的管理工具,以及可能的端口扫描技术。在使用这些方法时,务必注意网络策略和安全考虑,确保合法并符合合规性。同时,对于非授权的扫描或访问可能会导致法律问题。在实际应用中,通常会结合使用网络发现协议如SNMP或者服务的特定API来更加安全地进行服务器发现。
- er_guangqiang2015-01-31不行,没有实现我需要的获取局域网内所有SQLServer服务的功能
- 粉丝: 4
- 资源: 70
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于C语言的系统服务框架.zip
- (源码)基于Spring MVC和MyBatis的选课管理系统.zip
- (源码)基于ArcEngine的GIS数据处理系统.zip
- (源码)基于JavaFX和MySQL的医院挂号管理系统.zip
- (源码)基于IdentityServer4和Finbuckle.MultiTenant的多租户身份认证系统.zip
- (源码)基于Spring Boot和Vue3+ElementPlus的后台管理系统.zip
- (源码)基于C++和Qt框架的dearoot配置管理系统.zip
- (源码)基于 .NET 和 EasyHook 的虚拟文件系统.zip
- (源码)基于Python的金融文档智能分析系统.zip
- (源码)基于Java的医药管理系统.zip