2011-08-03 16 views
1

私はどのクライアントバージョンを使用しているのか簡単に知ることができますが、どのようにサーバーバージョンを見つけることができますか?Advantage Database Serverのバージョン番号を取得する方法は?

AdsMgGetInstallInfo ace関数と対応するストアドプロシージャsp_mgGetInstallInfoがあります。

これらには特別な特権が必要ですか?

私はTAdsConnection.ServerVersionプロパティを見つける予定でしたが、そのようなものは存在しないようですか?

答えて

2

.NETプロバイダのみAdsConnection.ServerVersionが見つかりました。そのため、Delphi Advantage Databaseラッパーにはおそらく表示されません。

Advantage Management API関数AdsMgGetInstallInfoADS_MGMT_INSTALL_INFO構造体を呼び出すと、aucVersionStrメンバーがAdvantageデータベースサーバーのバージョンである必要があります。だから、このように見えるかもしれません(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; 
+0

私は見ていましたNETアセンブリでは、彼らも管理APIを使用しているので、これは行く方法があるようです。 –

1

「sp_mgGetInstallInfo」ストアプロシージャを呼び出す必要があります。ここ は、Javaの例である:ここで

public static String getAdsVersion() throws ClassNotFoundException, 
     SQLException { 
    Connection conn = null; 

    try { 
     conn = getAdsConnection(); 
     CallableStatement statement = conn 
       .prepareCall("{call sp_mgGetInstallInfo()}"); 
     ResultSet resultSet = statement.executeQuery(); 
     resultSet.next(); 
     String version = resultSet.getString("Version"); 
     return version; 
    } finally { 
     if (conn != null) { 
      conn.close(); 
     } 
    } 

} 
1

は、すでに利用できる有効な接続とTAdsQueryコンポーネントを持っていると仮定すると、Delphiでsp_mgGetInstallInfoストアドプロシージャメソッドを使った例です:

adsQuery.SQL.Clear(); 
adsQuery.SQL.Add('EXECUTE PROCEDURE sp_mgGetInstallInfo();'); 
adsQuery.Active := True; 
versionStr := adsQuery.FieldByName('Version').AsString; 
関連する問題