SQL SEVER DESCONECTANDO SOZINHO

PLUGSOFTSM 22/10/2015 13:53:23
#452901
Statussql é o nome do form que eu criei para mostra a mensagem....

No anexo tem uma imagem do formulário que criei para servir como sugestão
JCM0867 22/10/2015 15:04:14
#452908
Sim arrumei o Imports
Interrompi o serviço manualmente e rodei teu código

Ele reconhece serviço, diz que esta parado só que dá erro ao tentar abrir:
já na primeira linha: Serv.Start()
[Ô]Não é possível abrir o serviço MSSQL$SQL_CESC40 no computador[Ô]

O que pode ser?
PLUGSOFTSM 22/10/2015 16:28:34
#452911
Qual versão do SQL vc usa?
JCM0867 22/10/2015 17:13:36
#452919
Citação:

:
Qual versão do SQL vc usa?


2014 express

na verdade o erro é Não é possível abrir o serviço MSSQL$SQL_CESC40 no computador [ô] .[ô]
parece faltando alguma coisa. pois ele colocou computador [ô] .[ô]
talvez nome do computador
PLUGSOFTSM 22/10/2015 21:35:54
#452934
Amigo ..me desculpa... eu tentei selecionar do meu projeto somente a parte que interessava e esqueci algumas coisas
primeiro, no início onde passei assim:
Public RetStat as integer [ô]Essa varável é global

Fica assim
Public RetStat as integer [ô]Essa varável é global
Public Serv As ServiceController

e na parte onde está assim:
Private Function VerificarStatusSQL() As Integer
Dim Ret As Integer = 0
Try
For Each SV As ServiceProcess.ServiceController In ServiceProcess.ServiceController.GetServices
If SV.DisplayName.Contains([Ô]SQL Server ([Ô]) Then
If SV.Status <> ServiceControllerStatus.Running OrElse SV.Status = ServiceControllerStatus.Stopped OrElse SV.Status = ServiceControllerStatus.Paused Then
statussql.showdialog
Exit For
End If
End If
Next
Catch ex As Exception
MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Information)
Ret = 1
End Try
Return Ret
End Function

Fica Assim
Private Function VerificarStatusSQL() As Integer
Dim Ret As Integer = 0
Try
For Each SV As ServiceProcess.ServiceController In ServiceProcess.ServiceController.GetServices
If SV.DisplayName.Contains([Ô]SQL Server ([Ô]) Then
If SV.Status <> ServiceControllerStatus.Running OrElse SV.Status = ServiceControllerStatus.Stopped OrElse SV.Status = ServiceControllerStatus.Paused Then
serv = sv
statussql.showdialog
Exit For
End If
End If
Next
Catch ex As Exception
MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Information)
Ret = 1
End Try
Return Ret
End Function

acho que assim vai funcionar.....
é que no meu sistema eu coloquei mais coisas que não acho necessário expor
Procurei sintetizar somente o necessário
JCM0867 22/10/2015 22:37:52
#452936
Amigo, não é nessa rotina o erro

o erra é aqui:

Dim Rep As Integer = 0
Try
[ô]Dim Serv As ServiceController = New ServiceController([Ô]MSSQL$SQL_CESC40[Ô])
Do
[txt-color=#e80000]Serv.Start()[/txt-color] [txt-color=#0000f0]Erro: Não é possível abrir o serviço MSSQL$SQL_CESC40 no computador [ô] .[ô][/txt-color]
Serv.Refresh()
Application.DoEvents()
Serv.Refresh()
Application.DoEvents()
Rep += 1
If Serv.Status = ServiceControllerStatus.StartPending Then
Do
Serv.Refresh()
Loop Until Serv.Status = ServiceControllerStatus.Running
End If
Loop Until Rep = 5 OrElse Serv.Status = ServiceControllerStatus.Running
If Serv.Status = ServiceControllerStatus.Running Then
RetStat = 0
Me.Close()
ElseIf Rep = 5 Then
RetStat = 1
Throw New Exception([Ô]Excedido o limite de tentativas re reativar o serviço.[Ô] & vbCrLf & [Ô]O serviço não pode ser reativado ou inciado.[Ô])
Else
RetStat = 1
Throw New Exception([Ô]Um erro desconhecido impediu o Sistema de reiniciar o Serviço.[Ô])
End If
Catch ex As Exception
MessageBox.Show(ex.Message, [Ô]Serviço do SQL[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
RetStat = 1
End Try
JOAOBENEVIDES 23/10/2015 00:36:42
#452940
voce tentou trocar para sua instancia do sql server?
JCM0867 23/10/2015 09:20:22
#452948
sim está certo,
a parte que informa se ele esta conectado ou desconectado funciona, quer dizer que ele reconhece a instância.
se mando conectar dá o erro
PLUGSOFTSM 23/10/2015 10:52:24
#452952
Amigo... Fiz aqui e funcionou direitinho

O erro acontece pois vc não deve ter criado a variável global
[txt-color=#0000f0]Public Serv As ServiceController
[/txt-color]
ou não está atribuindo o valor a ela antes de chamar o formulário da mensagem
For Each SV As ServiceProcess.ServiceController In ServiceProcess.ServiceController.GetServices
If SV.DisplayName.Contains([Ô]SQL Server ([Ô]) Then
If SV.Status <> ServiceControllerStatus.Running OrElse SV.Status = ServiceControllerStatus.Stopped OrElse SV.Status = ServiceControllerStatus.Paused Then
[txt-color=#0000f0]serv = sv
[/txt-color] statussql.showdialog

Por causa disso, o sistema está tentando ativar um serviço que não é o certo

Eu uso o sqlserver 2008 e no meu PC, o displayname é
[txt-color=#0000f0]SQL Server (SQLEXPRESS)[/txt-color]

Debuga e verifica isso....

Se não funcionar ainda, me manda o código que vc montou que texto aqui
JCM0867 23/10/2015 13:29:25
#452958
O erro persiste
Segue aqui o código, basta joga-lo tudo num form1
ele está meio direto, verifica se está desabilitado e já tenta habilita o serviço
depois eu ajeito ele e coloco no projeto

[txt-color=#0000f0]l
Imports System.ServiceProcess

Public Class Form1
[ô] Essa duas variáveis coloquei num módulo como publico
[ô]Dim RetStat As Integer [ô]Essa varável é globa
[ô]Dim Serv As ServiceController

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
If VerificarStatusSQL() > 0 Then End
End Sub

Private Function VerificarStatusSQL() As Integer
Dim Ret As Integer = 0
Try
[ô]MsgBox(SV.DisplayName)
For Each SV As ServiceProcess.ServiceController In ServiceProcess.ServiceController.GetServices
If SV.DisplayName.Contains([Ô]SQL Server ([Ô]) Then
If SV.Status <> ServiceControllerStatus.Running OrElse SV.Status = ServiceControllerStatus.Stopped OrElse SV.Status = ServiceControllerStatus.Paused Then
Serv = SV
CarregaServico()
Exit For
End If
End If
Next
Catch ex As Exception
MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Information)
Ret = 1
End Try
Return Ret
End Function

Private Sub CarregaServico()
Dim Rep As Integer = 0
Try
[ô]Dim Serv As ServiceController = New ServiceController([Ô]MSSQL$SQL_CESC40[Ô])
Do
Serv.Start()
Serv.Refresh()
Application.DoEvents()
Serv.Refresh()
Application.DoEvents()
Rep += 1
If Serv.Status = ServiceControllerStatus.StartPending Then
Do
Serv.Refresh()
Loop Until Serv.Status = ServiceControllerStatus.Running
End If
Loop Until Rep = 5 OrElse Serv.Status = ServiceControllerStatus.Running
If Serv.Status = ServiceControllerStatus.Running Then
RetStat = 0
Me.Close()
ElseIf Rep = 5 Then
RetStat = 1
Throw New Exception([Ô]Excedido o limite de tentativas re reativar o serviço.[Ô] & vbCrLf & [Ô]O serviço não pode ser reativado ou inciado.[Ô])
Else
RetStat = 1
Throw New Exception([Ô]Um erro desconhecido impediu o Sistema de reiniciar o Serviço.[Ô])
End If
Catch ex As Exception
MessageBox.Show(ex.Message, [Ô]Serviço do SQL[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
RetStat = 1
End Try
End Sub
End Class
[/txt-color]
Página 2 de 3 [26 registro(s)]
Tópico encerrado , respostas não são mais permitidas