Delphi下检查SQL Server服务器当前运行状态! ( 积分: 50 )

  • 主题发起人 主题发起人 haloon
  • 开始时间 开始时间
H

haloon

Unregistered / Unconfirmed
GUEST, unregistred user!
Delphi下检查SQL Server服务器当前运行状态!
要求:Delphi下随时监控SQL Server状态。
1、命令提示符下可用:TELNET <SQL Server IP> 1433  检查。
2、Delphi下如何模拟实现上述功能。
 
Delphi下检查SQL Server服务器当前运行状态!
要求:Delphi下随时监控SQL Server状态。
1、命令提示符下可用:TELNET <SQL Server IP> 1433  检查。
2、Delphi下如何模拟实现上述功能。
 
原来做过:
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;
//---------------------------------------------------------------------------
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部