MS SQL Server Database Manager Gönderen: dynamo Tarih: 30 May 2007 15:20:04

SQL Server 2000 servislerini yönetmeyi sağlayan bir programdır.
1)
SQL Server Service:SQL Server'ın temel işlevlerini yerine getirmesini sağlayan veritabanı motorunu sunan servistir. Her SQL Server örneği (instance) için ayrı bir SQL Server servisi bulunur.
2-)
SQL Server Agent :SQL Server Agent belirli zamanlarda belirli görevleri yerine getiren bir servistir. Her SQL Server örneği (instance) için ayrı bir SQL Server Agent bulunur.
3-)
Distributed Transaction Coordinator Service:
Farklı bölgelerde bulunan birbirine bağlı birden fazla SQL Server sistemlerinin birlikte çalışabilirliğini düzenler.
sqlmangr.exe yi delphi'den çalıştırma:
procedure TForm1.Button3Click(Sender: TObject);
begin
WinExec('C:\Program Files\Microsoft SQL Server\80\Tools\Binn\sqlmangr.exe', SW_SHOW or SW_MINIMIZE or SW_SHOWMINIMIZED);
end;
SQL Server servislerini kontrol etmek için örnek bir uygulama yapalım:

Yüklü SQL Server listesini combobox'a alır:
procedure TForm1.FormCreate(Sender: TObject);
var
sqlServerName:TStrings;
i:Integer;
begin
sqlServerName:=TStringList.Create;
GetSQLServerList(sqlServerName);
for i := 0 to sqlServerName.Count-1 do
ComboBox1.Items.Add(sqlServerName.Strings[i]);
sqlServerName.Free;
str_exe:=ExtractFilePath(Forms.Application.ExeName);
ComboBox1.ItemIndex:=0;
end;
sabit ve değişkenlerin tanımı:
private
{ Private declarations }
public
{ Public declarations }
str_exe:string;
end;
var
Form1: TForm1;
IsExists:Boolean = False;
const
MSSQL_98StartCommand = 'scm -action 1 -pwd "%s"';
MSSQL_NTStartCommand = 'net start mssqlserver';
MSSQL_98StopCommand = 'scm -action 6';
MSSQL_NTStopCommand = 'net stop mssqlserver';
implementation
uses SQLServerLists;
{$R *.dfm}
sql server çalışıyor mu kontrolü:
function IsNT:Boolean;
begin
Result:=(Win32MajorVersion >= 4) and (Win32Platform = VER_PLATFORM_WIN32_NT);
end;
function IsExistsMSSQL:Boolean;
const
MSSQLSERVER = 'SOFTWARE\Microsoft\MSSQLServer';
var
Reg:TRegistry;
begin
Result:=IsExists;
if Result then Exit;
if not IsNT then
Reg:=TRegistry.Create
else
Reg:=TRegistry.Create(KEY_READ);
with Reg do
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
Result := KeyExists(MSSQLSERVER);
IsExists := Result;
finally
Free;
end;
end;
servis başlatma fonksiyonu:
//sql server başlat
function StartMSSQL(Pass:string):Boolean;
var
S: string;
begin
Screen.Cursor:=crHourGlass;
try
if not IsNT then
S:=Format(MSSQL_98StartCommand, [Pass])
else
S:=MSSQL_NTStartCommand;
try
WinExec(PChar(S), SW_HIDE);
Result:=True;
except
Result:=False;
end;
finally
Screen.Cursor:=crDefault;
end;
end;
servis durdurma fonksiyonu:
//sql server durdur
function StopMSSQL:Boolean;
begin
Screen.Cursor:=crHourGlass;
try
try
if not IsNT then
WinExec(MSSQL_98StopCommand, SW_HIDE)
else
WinExec(MSSQL_NTStopCommand, SW_HIDE);
Result:=True;
except
Result:=False;
end;
finally
Screen.Cursor:=crDefault;
end;
end;
sql server durumu:
//sql server durumu
function GetSqlServerStatus(lpszComputerName: LPCTSTR): Integer;
var
ssStatus: SERVICE_STATUS;
dwOldCheckPoint: DWORD;
dwStartTickCount: DWORD;
dwWaitTime: DWORD;
dwStatus: DWORD;
lpszServiceName: LPCTSTR;
schSCManager: SC_HANDLE;
schService: SC_HANDLE;
begin
if (lpszComputerName <> nil) and
((StrComp(lpszComputerName, '127.0.0.1') = 0) or (StrComp(lpszComputerName, '.') = 0)) then
lpszComputerName := nil;
lpszServiceName := 'MSSQLServer';
schSCManager := OpenSCManager(
lpszComputerName, //Computer name
nil, // ServicesActive database
SC_MANAGER_ALL_ACCESS); // full access rights
if schSCManager = 0 then
GetSqlServerStatus := -1; //Machine not exists
schService := OpenService(
schSCManager, // SCM database
lpszServiceName, // service name
SERVICE_ALL_ACCESS);
if schService = 0 then begin
CloseServiceHandle(schService);
GetSqlServerStatus := -2; //SqlServer Service not Exists
end;
if not QueryServiceStatus(
schService, // handle to service
ssStatus) then begin // address of status information structure
CloseServiceHandle(schService);
GetSqlServerStatus := -3; //MyErrorExit('QueryServiceStatus');
end;
Result := ssStatus.dwCurrentState;
end;
function SqlServerStatus(MachineName:string):string;
var
SrvStatus:integer;
str:string;
begin
SrvStatus:=GetSqlServerStatus(pChar(MachineName));
case SrvStatus of
1:str:='Stopped ';
2:str:='Starting ';
3:str:='Stopping ';
4:str:='Running ';
5:str:='Restarting after being paused ';
6:str:='Pausing ';
7:str:='Paused ';
end;
Result := str;
end;
servisi çalıştırma:
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if StartMSSQL('.') then
begin
sleep(3000);
StatusBar1.Panels[0].Text:=SQLServerStatus(ComboBox1.Text)+'-'+'\\'+ComboBox1.Text+'-'+'MSSQLServer';
Image1.Picture.LoadFromFile(str_exe+'runningserver.bmp');
SpeedButton1.Enabled:=false;
SpeedButton2.Enabled:=true;
end
else
begin
end;
end;
servisi durdurma:
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
if Forms.Application.MessageBox(Pchar('\\'+ComboBox1.Text+ ' üzerinde MSSQLSERVER servisini DURDURMAK istiyor musunuz?'),'SQL Server Service Manager',MB_YESNO+MB_ICONINFORMATION)=ID_YES then
begin
StopMSSQL;
sleep(3000);
StatusBar1.Panels[0].Text:=SQLServerStatus(ComboBox1.Text)+'-'+'\\'+ComboBox1.Text+'-'+'MSSQLServer';
Image1.Picture.LoadFromFile(str_exe+'stopserver.bmp');
SpeedButton1.Enabled:=true;
SpeedButton2.Enabled:=true;
end;
end;
örnek uygulama ekte.
Ynt: MS SQL Server Database Manager Gönderen: pcmusti Tarih: 03 June 2007 11:18:01
Teşekkürler Eline sağlık Kardeş
Ynt: MS SQL Server Database Manager Gönderen: olsunartik Tarih: 03 June 2007 11:20:20
Ellerine saglik.