|
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
|