Ver Mensaje Individual
  #7 (permalink)  
Antiguo 16/04/2009, 15:16
solangel
 
Fecha de Ingreso: abril-2008
Mensajes: 82
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Cómo verifico si la bd a la que quiero acceder existe?

Hola Claudio,la verdad es que lo resolví de una manera, pero estoy buscando algo parecido a lo de Dradi7, pero lamentablemente cuando traté de implementar su código en mi editor de codigo de vb.net, había muchos errores sintánticos y no supe como resolverlos o traspasarlos a una forma legible por el vb.net, a todo esto estoy con vb.net 2005 y sqlserver2000.
Bueno de la forma que lo hice pregunto si la bd se encuentra en la carpeta predeterminada del sqlserver, así:

If File.Exists("C:\Archivos de programa\Microsoft SQL Server\MSSQL\Data\" & Txtbasedatos.Text & "") = True Then
conexionBD = New OdbcConnection("Driver={SQL Server};Server=" & Txtservidor.Text & ";Database=" & Txtbasedatos.Text & ";uid=" & Txtusuario.Text & ";pwd=" & Txtcontrasena.Text & ";connect timeout=" & Txttimeout.Text & "")
'si existe la bd me conecto a ella
Try
conexionBD.Open()
MsgBox("Conectado correctamente")
Catch ex As Exception ' SqlException
MsgBox("Error en la conexión")
MsgBox(ex.Message)
Finally
If (conexionBD.State = ConnectionState.Open) Then
conexionBD.Close()
End If
End Try
Else
If MessageBox.Show("¡NO existe la base de datos " & Txtbasedatos.Text & "!" & vbCrLf & _
"¿Desea crearla?", "No existe base de datos", _
MessageBoxButtons.YesNo) = DialogResult.Yes Then
Call Crea_BDSQL() 'si no existe pregunto al usuario si desea crearla y ahí llamo a una función que la crea
Else
Exit Sub
End If
End If

El problema es que esto resulta solo si el archivo de la bd está en la carpeta del sql y no en cualquier otra del pc, para eso debería cambiar esta sentencia

If File.Exists("C:\Archivos de programa\Microsoft SQL Server\MSSQL\Data\" & Txtbasedatos.Text & "") = True Then ...

por algo como esto

Dim SQL As String = "IF EXISTS (SELECT * FROM master..sysdatabases WHERE Name = " & Txtbasedatos.Text & " )"

y hasta ahí llego, estoy tratando de ver como se hace, porque supongo que EXISTS es una función

Bueno eso sería todo, espero que te ayude en algo y que ambos lo podamos resolver, saludos.