C# 按名称(和版本?)列出所有正在运行的SQL Anywhere*服务器*
我希望能够获得所有正在运行的Sybase SQL Anywhere v10-16数据库服务器的名称和版本的列表 有没有一种内置的方法可以更好地在C中实现这一点 我正在考虑查找所有正在运行的SQL Anywhere server进程,然后pinvoking将标题/窗口标题从进程的一个主窗口中拉出不幸的是,process.MainWindowTitle不起作用,至少在服务器以隐藏方式启动时是这样。不在C中。有一个dblocate_servers_ex函数,可以从C/C++应用程序中使用,也可以生成dblocate实用程序并捕获输出,但仅此而已 dblocate实用程序(仅供参考)不进行任何TCP连接。它发送SQLAnywhere服务器响应的广播数据包,然后列出响应 注意,-sb0开关的作用是使使用dblocate查找服务器变得不可能。如果有可能找到它,开关将是无用的C# 按名称(和版本?)列出所有正在运行的SQL Anywhere*服务器*,c#,sybase,sqlanywhere,C#,Sybase,Sqlanywhere,我希望能够获得所有正在运行的Sybase SQL Anywhere v10-16数据库服务器的名称和版本的列表 有没有一种内置的方法可以更好地在C中实现这一点 我正在考虑查找所有正在运行的SQL Anywhere server进程,然后pinvoking将标题/窗口标题从进程的一个主窗口中拉出不幸的是,process.MainWindowTitle不起作用,至少在服务器以隐藏方式启动时是这样。不在C中。有一个dblocate_servers_ex函数,可以从C/C++应用程序中使用,也可以生成d
充分披露:我在SQL Anywhere工程公司为SAP工作。大概您没有让服务器注册到LDAP?如果不是,我认为唯一的方法是尝试端口2638连接到所有主机-这是我相信dblocate实用程序可以执行和捕获的功能。我希望找到所有运行SQL Anywhere的服务器,即使是那些使用-sb 0启动的服务器。好的,因此,检查正在运行的进程windows的标题听起来似乎是最简单的方法。DBLOCATE是否列出网络上任何计算机或执行命令的计算机上的IQ数据库?DBLOCATE将列出它从本地网络上任何位置找到的服务器-任何可以从网络接收UDP广播的计算机执行它的计算机。交换机、网桥等另一端的计算机将不会接收广播数据包,因此这些计算机上运行的服务器将不会响应。@GraemePerrow非常感谢您的回复。但是DBLOCATE没有限制执行命令的同一台计算机的枚举的开关。是这样吗-s可用于指定本地计算机名称,但我的尝试没有显示IQ数据库正在运行。s开关按服务器名称(即数据库服务器的名称,而不是计算机名称)筛选找到的服务器。您可以将一个参数传递给dblocate,该参数是一个机器名或IP地址,即dblocate 127.0.0.1,它将通过machin ename过滤响应。仅供参考,您可以在sqlanywhere-forum.sap.com上获得更多有关SQL Anywhere的帮助。那你就不指望我经常检查StackOverflow了