我可以轻松找出正在使用的客户端版本,但是如何找出服务器版本?
有一个AdsMgGetInstallInfo
ace函数和一个相应的存储过程sp_mgGetInstallInfo
。
这些是否需要一些特殊特权?
我期望找到一个TAdsConnection.ServerVersion
属性,但是似乎不存在类似的东西?
最佳答案
我只为.NET提供程序找到了AdsConnection.ServerVersion,因此在Delphi Advantage Database包装程序中可能会丢失它。
但是您可以尝试调用Advantage Management API函数AdsMgGetInstallInfo并在ADS_MGMT_INSTALL_INFO结构中接收aucVersionStr
成员,该成员应为Advantage Database Server版本。因此,它可能看起来像这样(这是AdsMgGetInstallInfo参考中的修改示例)。
请注意,我尚未测试过,希望您拥有所有数据类型和结构定义。
uses ACE;
function GetServerVersion: string;
var
Size: UNSIGNED16;
MgmtHandle: ADSHANDLE;
ResultValue: UNSIGNED32;
InstallInfo: ADS_MGMT_INSTALL_INFO;
begin
Result := '';
ResultValue := ACE.AdsMgConnect('\\MyExample\Server', nil, nil, @MgmtHandle);
if (ResultValue <> AE_SUCCESS) then
Exit;
Size := SizeOf(ADS_MGMT_INSTALL_INFO);
ResultValue := ACE.AdsMgGetInstallInfo(MgmtHandle, @InstallInfo, @Size);
if (ResultValue <> AE_SUCCESS) then
Exit;
Result := InstallInfo.aucVersionStr;
end;
关于delphi - 如何获取Advantage Database Server的版本号?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6929189/