サーバー設定のクエリ
isc_service_query()
と一緒に次の項目を使用すると、InterBase サーバー設定に関する情報を要求することができます。
サーバー設定項目 | 目的 | 戻り値 の長さ |
戻り値 |
---|---|---|---|
|
Services Manager のバージョン |
4 バイト |
unsigned long |
|
InterBase サーバーのバージョン |
2 バイト + 文字列 |
文字列 |
|
サーバーの実装文字列またはプラットフォーム。 例: |
2 バイト + 文字列 |
文字列 |
|
サーバー上で現在有効なすべてのCertification ID および Certification Key |
以下を参照 |
以下を参照 |
|
サーバー上で現在有効なソフトウェア ライセンス オプションを表すビットマスク。 将来の実装のために予約 |
4 バイト |
ビットマスク |
|
サーバー上で現在有効な機能を表すビットマスク。 将来の実装のために予約 |
4 バイト |
ビットマスク |
|
サーバー上の |
以下を参照 |
以下を参照 |
|
サーバー上の InterBase ルート ディレクトリの位置。 これは、 |
2 バイト + 文字列 |
文字列 |
|
サーバー上の InterBase ロック マネージャ ファイルの位置。 これは、 |
2 バイト + 文字列 |
文字列 |
|
サーバー上の InterBase メッセージ ファイルの位置。 これは、 |
2 バイト + 文字列 |
文字列 |
Services API クエリ: Services Manager バージョン
. . . case isc_info_svc_version: { unsigned long svcversion; p += sizeof (unsigned short); svcversion = (unsigned long) isc_portable_integer (p, sizeof(unsigned long)); printf ("Service Manager Version: %d\n", svcversion); p += sizeof (unsigned long); break; } . . .
Services API クエリ: サーバー バージョン
. . . case isc_info_svc_server_version: { path_length = (unsigned short) isc_portable_integer (p, sizeof(unsigned short)); p += sizeof (unsigned short); buffer = (char*) malloc (path_length); strncpy (buffer, p, path_length); buffer [path_length] = '\0'; printf ("Server version: %s\n", buffer); p += path_length; break; } . . .
Services API クエリ: サーバー実装
. . . case isc_info_svc_implementation: { path_length = (unsigned short) isc_portable_integer (p, sizeof(unsigned short)); p += sizeof (unsigned short); buffer = (char*) malloc (path_length); strncpy (buffer, p, path_length); buffer [path_length] = '\0'; printf ("Server implementation: %s\n", buffer); p += path_length; break; } . . .
Services API クエリ: ライセンス マスク
. . . case isc_info_svc_get_license_mask: { unsigned long mask; printf ("License Information:\n"); p += sizeof (unsigned short); mask = (unsigned long) isc_vax_integer (p, sizeof(unsigned long)); if (mask & LIC_S) printf ("\tRemote Server Enabled\n"); p += sizeof (unsigned long); break; } . . .
サービス API を使ったクエリ: サーバーの機能
. . . case isc_info_svc_capabilities: { unsigned long capabilities; printf ("Server Capabilities:\n"); p += sizeof (unsigned short); capabilities = (unsigned long) isc_vax_integer (p, sizeof(unsigned long)); if (capabilities & MULTI_CLIENT_SUPPORT) printf ("\tSupports multiple clients\n"); p += sizeof (unsigned long); break; } . . .
サービス API を使ったクエリ: サーバーのルート ディレクトリの位置
. . . case isc_info_svc_get_env: { path_length = (unsigned short) isc_portable_integer (p, sizeof(unsigned short)); p += sizeof (unsigned short); buffer = (char*) malloc (path_length); strncpy (buffer, p, path_length); buffer [path_length] = '\0'; printf ("Value of $InterBase: %s\n", buffer); free(buffer); p += path_length; break; } . . .
サービス API を使ったクエリ: サーバーのロック ファイルの位置
. . . case isc_info_svc_get_env_lock: { path_length = (unsigned short) isc_portable_integer (p, sizeof(unsigned short)); p += sizeof (unsigned short); buffer = (char*) malloc (path_length); strncpy (buffer, p, path_length); buffer [path_length] = '\0'; printf ("Path to <hostname>.lck: %s\n", buffer); free(buffer); p += path_length; break; } . . .
サービス API を使ったクエリ:メッセージ ファイルの位置
. . . case isc_info_svc_get_env_msg: { path_length = (unsigned short) isc_portable_integer (p, sizeof(unsigned short)); p += sizeof (unsigned short); buffer = (char*) malloc (path_length); strncpy (buffer, p, path_length); buffer [path_length] = '\0'; printf ("Path to InterBase.MSG: %s\n", buffer); p += path_length; break; } . . .