SQL SEVER DESCONECTANDO SOZINHO
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
No anexo tem uma imagem do formulário que criei para servir como sugestão
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?
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?
Qual versão do SQL vc usa?
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
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
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
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
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
voce tentou trocar para sua instancia do sql server?
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
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
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
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
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]
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]
Tópico encerrado , respostas não são mais permitidas