2006/2/20 (月) 16:44:51 Syake |
メモ書きさせて下さい。
MQLServerをSQLDMOを使用してDelphiで制御するサンプル
Uses ComObj;
//サーバーのリストを取得
procedure GetMSSQLServerList(var ServerNameList : TStrings);
var
objSQLDMO, NameList : OleVariant;
i : Integer;
begin
ServerNameList.Clear;
try
objSQLDMO := CreateOleObject('SQLDMO.Application');
except
MessageDlg(#13 + 'Microsoft SQLDMO Object Library がインストールされていません' ,mtError,[mbOK],0);
Exit;
end;
NameList := objSQLDMO.ListAvailableSQLServers;
for i := 0 to NameList.Count -1 do
begin
ServerNameList.Add(Trim(NameList.Item(i+1)));
end;
end;
//サーバー停止
procedure NetStopSQLServar();
var
objSQLDMO :OleVariant;
begin
try
objSQLDMO := CreateOleObject('SQLDMO.SQLServer');
except
MessageDlg(#13 + 'Microsoft SQLDMO Object Library がインストールされていません' ,mtError,[mbOK],0);
Exit;
end;
try
objSQLDMO.LoginTimeout := 60;
objSQLDMO.Start(True,'(local)','sa','');
except
on E: Exception do
begin
//'-2147023840'サーバーが既に動作した状態で Server.Start が NT で実行される場合、このエラーが発生します。
if E.Message = '-2147023840' then
begin
MessageDlg(#13+ '既に起動しています',mtInformation,[mbOK],0);
end else begin
MessageDlg(#13 + E.Message ,mtError,[mbOK],0);
end;
end;
end;
end;
//サーバー開始
procedure NetStartServer();
var
objSQLDMO :OleVariant;
begin
try
objSQLDMO := CreateOleObject('SQLDMO.SQLServer');
except
MessageDlg(#13 + 'Microsoft SQLDMO Object Library がインストールされていません' ,mtError,[mbOK],0);
Exit;
end;
try
objSQLDMO.Connect('(local)','sa','');
objSQLDMO.Stop;
except
on E: Exception do
begin
MessageDlg(#13 + E.Message ,mtError,[mbOK],0);
end;
end;
end;
http://homepage2.nifty.com/inform/vbdb/sqldmo_createdb.htm
によると他にも、いろんな事ができます。
|
|