none
Como crear una clase que contenga la cadena de conexion de una aplicacion y mandarla llamar para evitar estar cambiando lineas de codigo? RRS feed

  • Pregunta

  • Lo que pasa es que estoy desarrollando una aplicación para un colegio en visual basic, estoy trabajando en la computadora de la escuela que tiene instalado SQL Server 2008 R2 pero tambien trabajo desde mi laptop, 

    el problema es que al pasar el respaldo de la computadora a mi laptop tengo que estar cambiando las lineas que contienen la cadena de conexion de la escuela y son muchas, asi como esta:

    Dim cnx As New SqlConnection("Data Source=ICA1;Initial Catalog=AplicacionIca;Integrated Security=True")

    escuche que mediante una clase que contenga la cadena, solo se cambia una sola vez la linea

    si alguien sabe como sería este procedimiento se los agradeceria demasiado

    viernes, 4 de julio de 2014 19:26

Todas las respuestas

  • A la vista de la sentencia que estás usando (utiliza el objeto SqlConnection) deduzco que estás programando con VB.NET. Lo digo porque has puesto la pregunta en el foro de VB5/6. La diferencia es importante, porque la solución es diferente en VB.NET y VB5/6.

    Normalmente lo que se suele hacer en los programas de .NET es poner la cadena de conexión en el fichero de configuración de la aplicación (.config). Puedes leer una explicación aquí:

    http://joseluisgarciab.blogspot.com.es/2013/10/app-config-cadenas-de-conexion.html

    y tienes este artículo de MSDN:

    http://msdn.microsoft.com/es-es/library/ms254494(v=vs.110).aspx

    Pero si no quieres seguir el método estándar y realmente lo quieres hacer con una clase, basta con que en una clase cualquiera declares la conexión en una variable estática (Shared en VB.NET). En VB puedes declararla en un módulo, que el compilador automáticamente traduce a una clase estática:

    Module CadenasDeConexion
        Public MiCadena As String = "Data Source=ICA1;Initial Catalog=AplicacionIca;Integrated Security=True"
    End Module

    Después para usarla en cualquier sitio la llamas por el nombre del módulo (o la clase) seguido de un punto y el nombre de la variable:

    Dim cnx as SqlConnection = CadenasDeConexion.MiCadena

    sábado, 5 de julio de 2014 6:27
  • Hola puede ser algo como esto.

    Option Explicit
    Public cn As ADODB.Connection
    Public rs As ADODB.Recordset
    Public Sub Conectar()
      Set cn = New ADODB.Connection
      Set rs = New ADODB.Recordset
      rs.CursorLocation = adUseClient
      cn.Open "DSN=Multisistemas;HOST=localhost;DB=Multisistemas;UID=postgres;PWD=123;PORT=5432;"
    '  cn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Pedro;Data Source=PC1"
    End Sub
    
    Sub Desconectar()
      On Local Error Resume Next
      rs.Close
      Set rs = Nothing
      cn.Close
      Set cn = Nothing
    End Sub

    Espero te sirva.


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    lunes, 7 de julio de 2014 23:01