お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"MS-SQLを実行しているPC名称取得"



MS-SQLを実行しているコンピュータ名称を取得します。
動作環境はMS-SQL7以上のクライアントアクセスプログラムが
インストールされている必要があります。
標準では、\Mssql7\Binnディレクトリに Sqldmo.dll があり、
且つ、正しくレジストリに情報が登録されているはずです。

NT,Win2000でのみ、動作します。
9x系では、ローカルマシンの状況しか、わかりません。

詳細はSQL Server Books OnLine、「SQL-DMO リファレンス」を
参照してください。

 

const
  MSSQLDOMApp = 'SQLDMO.Application';
  MSSQLisLocal = '(local)'; //(Local)かも

(**
 -------------------------------------------------------------------
 * @outline 現在のコンピュータ名称を取得
 * @author 雲松
 * @return 現在のコンピュータ名称
 * WindowsAPI の GetComputerName
 -------------------------------------------------------------------
 *)
function getLocalComputerName : String;
var
  cn : array[0..MAX_COMPUTERNAME_LENGTH +2] of char;
  ii : DWORD;
begin
  GetComputerName(@cn,ii);
  SetLength(Result,ii);
  Result := cn;
end;

(**
 -------------------------------------------------------------------
 * @outline MS-SQL Server一覧取得
 * @author 雲松
 * @startdate 2001/03/04
 * @enddate 2001/03/04
 * @revision
 * @param ServerList サーバ一覧情報を入れるTStrings
 * MS-SQLアクセス処理COMを叩き、近所でMS-SQL Serverが動作している
 * コンピュータを探し出し、それをStringsにして返す。
 * DBServerがLOCALコンピュータの時、(local)と表示されるため、
 * そのときはローカルコンピュータ名称を取得する。
 -------------------------------------------------------------------
 *)
procedure getMSSQL_DBServerList(ServerList : TStrings);
var
  SQLAPP, NameList : OleVariant;
  ii : Integer;
  sn : string;
begin
  ServerList.Clear;

  try
    SQLAPP := CreateOleObject(MSSQLDOMApp);
  except
     //ここでエラーということは、MS-SQLの端末が
     //インストールされていない。
     raise;
  end;

  NameList := SQLAPP.ListAvailableSQLServers;

  for ii := 1 to NameList.Count do
    begin
      sn := trim(NameList.Item(ii));

     // * DBServerがLOCALコンピュータの時、(local)と表示されるため、
     // * そのときはローカルコンピュータ名称を取得する。
      if LowerCase(sn) = MSSQLisLocal then
        begin
          sn := getLocalComputerName;
        end;
      ServerList.Add( sn );
    end; //for de end
end;



雲松  EmNifty 2.35

 


- FDELPHI  MES(16):玉石混淆みんなで作るSample蔵【見本蓄積】 01/03/10 -

Original document by 雲松            氏 ID:(VFD05050)


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum