MS SQL Server'ün Çalışıp Çalışmadığını Kontrol Etme Gönderen: dynamo Tarih: 28 May 2007 08:33:52
sql server veritabanını kullanan bir uygulamamnın yüklü olduğu bilgisayarda SQL Server'ün çalışıp çalışmadığını kontrol etmek için bir fonksiyon yapalım.IsSQLServerRunning fonksiyonu, 3 parametre alır:
function IsSQLServerRunning(server:string; database:string; sapassword:string): boolean;server-->bilgisayar adı
database--->veritabanı katalog adı
sapassword--->sql server yüklendiğinde sa ya verilen şifre
function IsSQLServerRunning(server:string; database:string; sapassword:string): boolean;
var
TempConnection: TADOConnection;
TempConnectionString: string;
begin
try
try
Result := TRUE;
TempConnection := TADOConnection.Create(nil);
TempConnectionString := 'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Password=%s;Initial Catalog=%s;Data Source=%s';
TempConnection.CommandTimeOut := 5;
TempConnection.ConnectionTimeOut := 5;
TempConnection.ConnectionString := Format(TempConnectionString, [sapassword, database, server]);
TempConnection.KeepConnection := FALSE;
TempConnection.LoginPrompt := FALSE;
TempConnection.Open;
except
Result := FALSE;
end
finally
TempConnection.Close;
TempConnection.Free;
TempConnection := nil;
end;
end;
function GetComputerName: string;
var
buffer: array[0..MAX_COMPUTERNAME_LENGTH + 1] of Char;
Size: Cardinal;
begin
Size := MAX_COMPUTERNAME_LENGTH + 1;
Windows.GetComputerName(@buffer, Size);
Result := StrPas(buffer);
end;
server parametresine, GetComputerName fonksiyonuyla çalıştığı bilgisayarın adı sistemden alınabilir.böylece başka bir bilgisayarda çalıştırdığımızda her seferinde bilgisayar adını değiştirmek zorunda kalmayız.
database parametresine "master" veritabanı adı atanır.istenirse uygulamanın kullandığı veritabanı adı da olabilir.
kullanımı:
procedure TForm1.Button1Click(Sender: TObject);
begin
if IsSQLServerRunning(GetComputerName,'master','') then
begin
ShowMessage('SQL Server çalışıyor.');
end
else
begin
ShowMessage('SQL Server çalışmıyor......');
end;
end;
bu fonksiyonu bir unit içinde tanımlayıp ,uniti uses kısmına ekleyerek başka projelerde kullanabiliriz.
unit SQLConnection;
interface
uses
SysUtils,ADODB;
function IsSQLServerRunning(server:string; database:string; sapassword:string): boolean;
implementation
function IsSQLServerRunning(server:string; database:string; sapassword:string): boolean;
var
TempConnection: TADOConnection;
TempConnectionString: string;
begin
try
try
Result := TRUE;
TempConnection := TADOConnection.Create(nil);
TempConnectionString := 'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Password=%s;Initial Catalog=%s;Data Source=%s';
TempConnection.CommandTimeOut := 5;
TempConnection.ConnectionTimeOut := 5;
TempConnection.ConnectionString := Format(TempConnectionString, [sapassword, database, server]);
TempConnection.KeepConnection := FALSE;
TempConnection.LoginPrompt := FALSE;
TempConnection.Open;
except
Result := FALSE;
end
finally
TempConnection.Close;
TempConnection.Free;
TempConnection := nil;
end;
end;
end.
örnek uygulama ekte