Como saber se o SQL Server está instalado pelo Delphi
Olá gostaria de saber como que é feito para saber se o SQL Server está instalado em uma maquina.
Porque preciso fazer um exe que faça a verificação, caso não tenha o sql server instalado ele irá pedir para o usuário instalar, caso o usuário já possua o sql server ele irá criar um usuaário e os bancos de dados.
Agradeço desde já
Porque preciso fazer um exe que faça a verificação, caso não tenha o sql server instalado ele irá pedir para o usuário instalar, caso o usuário já possua o sql server ele irá criar um usuaário e os bancos de dados.
Agradeço desde já
Levisants
Curtidas 0
Respostas
Marcio.theis
26/09/2005
Você quer saber se o servidor SQL Server esta instalado na máquina ?
GOSTEI 0
Levisants
26/09/2005
É isso mesmo eu preciso ver se o SQL Server ou MSDE está instalado caso não esteja meu programa irá pedir para instalar ou sql server ou o MSDE..
GOSTEI 0
Bruno Belchior
26/09/2005
quanto a instalação é meio complicado de dizer... o q pode ser feito mais facilmente é ver se ele está rodando na porta que o próprio utiliza... não sei qual a porta o SQL Server utiliza mas substitua no luga do XXX...
if IsServiceRunning(XXX) then ShowMessage(´Está executando´);
GOSTEI 0
Vinicius2k
26/09/2005
[quote:7ee6475cfa=´Bruno Belchior´]... não sei qual a porta o SQL Server utiliza mas substitua no luga do XXX...[/quote:7ee6475cfa]
Porta 1433, por padrão. Mas Bruno, que função é essa ´IsServiceRunning´?
Colega,
Vc pode ter uma informação para se basear, mas ter absoluta certeza que um SGBD istá instalado é difícil.
Se o serviço estiver levantado, com certeza ele está instado. Mas se o serviço estiver parado, complica.
Em plataforma NT é mais simples: se o serviço existir, mesmo estando parado, ele está instalado. Mas em Win9X não existe serviço então vc não pode seguir este caminho.
Nos Win9X, creio que o máximo que vc pode fazer é procurar por arquivos nas pastas padrão de instalação (o que não é muito confiável, pois ele pode estar instalado em outra pasta) e/ou procurar por chaves no registro que indiquem que ele está instalado.
Se for analisar se ele está ´escutando´ em uma porta, cuidado pois a informação pode ser falsa visto que, a partir do Win XP, se o SQL Server ou MSDE não tiver o SP3 instalado, a porta é fechada por questões de segurança devido à vulnerabilidade existente antes deste Service Pack.
T+
if IsServiceRunning(XXX) then ShowMessage(´Está executando´);
Porta 1433, por padrão. Mas Bruno, que função é essa ´IsServiceRunning´?
Colega,
Vc pode ter uma informação para se basear, mas ter absoluta certeza que um SGBD istá instalado é difícil.
Se o serviço estiver levantado, com certeza ele está instado. Mas se o serviço estiver parado, complica.
Em plataforma NT é mais simples: se o serviço existir, mesmo estando parado, ele está instalado. Mas em Win9X não existe serviço então vc não pode seguir este caminho.
Nos Win9X, creio que o máximo que vc pode fazer é procurar por arquivos nas pastas padrão de instalação (o que não é muito confiável, pois ele pode estar instalado em outra pasta) e/ou procurar por chaves no registro que indiquem que ele está instalado.
Se for analisar se ele está ´escutando´ em uma porta, cuidado pois a informação pode ser falsa visto que, a partir do Win XP, se o SQL Server ou MSDE não tiver o SP3 instalado, a porta é fechada por questões de segurança devido à vulnerabilidade existente antes deste Service Pack.
T+
GOSTEI 0
Bruno Belchior
26/09/2005
na verdade me equivoquei, visto que [b:b12abba516]IsServiceRunning[/b:b12abba516] é uma propriedade da classe TIBControlService, a função a qual queria me referir é [b:b12abba516]ServerIsRunning[/b:b12abba516], mas como havia citado anteriormente:[quote:b12abba516=´Bruno Belchior´]quanto a instalação é meio complicado de dizer[/quote:b12abba516]e o colega Vinicios reforçou, no Win9X é meio q no método das tentativas, pois não há uma forma X (Pelo menos q conheço) de se ter certeza sobre o assunto...
GOSTEI 0