delphi 判断SQL Server 服务器是否安装与开启

1. 问题简介:

一般情况下,使用程序连接数据库的时候,当数据库服务器不存在,或者数据库服务器没有启动的时候,

会导致数据库连接失败,所花费的时间很长。所以,在进行连接前,有必要对这些做出判断,然后返回给用户一

个正确的提示信息,减少等待的时间。

2. 数据库服务器连接不上,可以分成以下几种情况:

1>. 根本就不存在数据库服务器,及系统根本就没有安装数据库服务器。

2>. 系统安装了数据库服务器,但是数据库服务器没有开启。

3>. 数据库服务器开启了,但是处于【暂停】或者【停止】的状态。

4>. 当然还有最常见的,就是连接信息有问题。

解决办法:

1.最简单的办法,直接使用异常提供的信息,Delphi的异常中,提供的错误类型很完善。

例如:

procedure TForm1.btn1Click(Sender: TObject);

begin

try

adocon1.Connected:=True;

except

on   E:exception   do

Showmessage(E.message)

end;

end;

注意: 但是在数据库服务【停止】或者【未安装】的情况下,由于连接数据库抛出异常有一个超时时间,

所以提示用户连接不上所需时间很长,所以可以先判断是否安装,和数据库服务器是否开启(需要以下办法),

然后又异常来判断服务器是在【启动】状态,还是在【暂停】状态。

2.通过注册表判断系统是否安装了SQL Server数据库。

uses    Registry;

procedure TForm1.btn1Click(Sender: TObject);

var

ARegistry: Tregistry;

cdkey:string;

begin

ARegistry := Tregistry.Create;

ARegistry.RootKey := HKEY_LOCAL_MACHINE;

try

ARegistry.OpenKey(‘SOFTWARE\MICROSOFT\MICROSOFT SQL SERVER\80\Registration‘, False);

cdkey := ARegistry.ReadString(‘CD_KEY‘);

if cdKey =‘‘ then

showmessage(‘没有安装SQL Server数据库‘)

else

showmessage(‘安装了SQL Server数据库‘)

except

ARegistry.Destroy;

end;

end;

注意:<1>.如果安装的是绿色版,注册表中不存在信息,不可以使用这种办法。

<2>.安装SQL Server之后卸载,注册表中的信息没有修改,所以判断可能是不正确,会提示已经安装。

3. 通过进程判断SQL Server数据库服务器是否开启

uses   Tlhelp32;

procedure   TForm1.Button1Click(Sender:   TObject);

var

ProcessList   :   Thandle;

pe   :   TPROCESSENTRY32;

ProcList   :   TStringList;

i   :   integer;

begin

ProcList   :=   TStringList.Create;

try

ProcessList   :=   CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

pe.dwSize   :=   sizeof(TPROCESSENTRY32);

if   process32first(ProcessList,pe)   then

begin

ProcList.Add(pe.szexefile);

while   process32next(ProcessList,pe)   do

ProcList.Add(pe.szexefile);

end;

for   i   :=   0   to   ProcList.Count   -1   do

if   ProcList[i]   =   ‘sqlservr.exe ‘   then

ShowMessage( ‘SQL   Server   already   Run! ‘);

finally

ProcList.Free;

end;

end;

注意:SQL Server服务器的三种状态:

<1>.【启动】:进程中有 ‘sqlservr.exe‘,能进行访问连接。

<2>.【暂停】:进程中有 ‘sqlservr.exe‘,不能进行访问连接。

<3>.【停止】:进程中没有 ‘sqlservr.exe‘,不能进行访问连接。

在【暂停】或者【停止】的暂停下,不允许进行连接。

scm   -action   1   -slient   1   -service   mssqlserver     //启动

scm   -action   6   -slient   1   -service   mssqlserver     //停止

时间: 2024-12-26 17:41:55

delphi 判断SQL Server 服务器是否安装与开启的相关文章

Delphi下检查SQL Server服务器当前运行状态!

Delphi下检查SQL Server服务器当前运行状态!要求:Delphi下随时监控SQL Server状态.1.命令提示符下可用:TELNET <SQL Server IP> 1433 检查.2.Delphi下如何模拟实现上述功能.----------原来做过:function GetSqlServerStatus(lpszComputerName: LPCTSTR): Integer;var  ssStatus: SERVICE_STATUS;  dwOldCheckPoint: DWO

delphi连接sql server的字符串2011-10-11 16:07

delphi连接sql server的字符串2011-10-11 16:07 一.delphi连接sql server 放一个连接组件 ADOConnection, 其它组件TADODataSet,TADOQuery等的connection指向ADOConnection就可以了. 你可以双击ADOConnection,使用它的向导.也可以使用下面的代码 function OpenADOConn:boolean; begin result:=false; try with ADOConnectio

SQL Server 2016 AlwaysOn 安装及配置介绍

SQL Server 2016  AlwaysOn 安装及配置介绍 Always On 可用性组功能是一个提供替代数据库镜像的企业级方案的高可用性和灾难恢复解决方案. SQL Server 2012 中引入了 Always On 可用性组功能,此功能可最大程度地提高一组用户数据库对企业的可用性. "可用性组" 针对一组离散的用户数据库(称为"可用性数据库" ,它们共同实现故障转移)支持故障转移环境. 一个可用性组支持一组读写主数据库以及一至八组对应的辅助数据库. (

Windows Server2016+SQL Server 2016 Cluster安装及配置

Windows Server2016+SQL Server 2016 Cluster 安装及配置 我们知道,近期微软正式发布了Windows Server2016和SQL Server Cluster 2016,所以借此机会来尝试一下Windows Server2016+SQL Server Cluster 2016安装及配置,对于相关功能的优化及升级需要在官网上自己查看整理.大概就是windows server2016跟windows10页面框架结构差不多,SQL Server2016从安装上

Centos 7.0 下安装 Zabbix server 服务器的安装及 监控主机的加入(1)

一.本系列分为6部分 1.Centos 7.0 下安装 Zabbix server 服务器的安装及 监控主机的加入 2.Centos 6.5 下安装 Zabbix server 服务器的安装及 监控主机的加入 3.zabbix server的Discover功能,实现zabbix agent 大批量的自动添加,并链接到指定的模版 4.zabbix 报警方式之 邮件报警 5.zabbix 报警方式之 微信公众号报警 6.zabbix server 端的优化工作(解决mysql 性能下降,以及zab

SQL Server服务器上需要导入Excel数据的必要条件

SQL Server服务器上需要导入Excel数据,必须安装2007 Office system 驱动程序:数据连接组件,或者Access2010的数据库引擎可再发行程序包,这样就不必在服务器上装Excel了.

[转]无网络环境,在Windows Server 2008 R2和SQL Server 2008R2环境安装SharePoint2013 RT

无网络环境,在Windows Server 2008 R2和SQL Server 2008R2环境安装SharePoint2013 RT,这个还有点麻烦,所以记录一下,下次遇到省得绕弯路.进入正题: 首先准备好Windows Server 2008 R2,SQL Server 2008 R2,SharePoint Server 2013安装介质.密钥和补丁,补丁情况可参照下表: Product Number Description Download Address Windows Server

SQL Server 2008 的安装

SQL Server 2008简体中文企业版下载(SQL2008) SQL Server 2008分为SQL Server 2008企业版.标准版.工作组版.Web版.开发者版.Express版.Compact 3.5版,其功能和作用也各不相同,其中SQL Server 2008 Express版是免费版本(SQLServer2008各版本介绍). SQL Server 2008企业版是一个全面的数据管理和业务智能平台,为关键业务应用提供了企业级的可扩展性.数据仓库.安全.高级分析和报表支持.这

Microsoft SQL Server 2016 RC3 安装

首先下载SQL Server 2016 RC3 安装iso 下载链接 ed2k://|file|cn_sql_server_2016_rc_3_x64_dvd_8566578.iso|2464823296|D648877A38C788E257C4F16AF62029CD|/ 来源:msdn.hk 第一步 运行安装文件向导,点击第一个选项进行安装sql服务器引擎,与其他版本安装步骤差不多. 安装前需要java jdk 1.7环境 第二步 安装ssms(Microsoft SQL Server Ma