Como

21/11/2006 - 14:03 por Rodrigo Pizarro | Informe spam
Buenos dias?,

he creado un objeto de conexion a la base de datos, como puedo hacer para
que este objeto quede disponible para toda la aplicacion?, osea que lo
instancie solo 1 vez y que pueda abrir y cerrar la conexion n veces,

lo que necesito es como crear un variable global en VB6. antes esto se
hacia en los modulos?, como lo puedo hacer ahora para Visual Basic 2005?

Preguntas similare

Leer las respuestas

#1 Toni Recio
21/11/2006 - 15:23 | Informe spam
Yo haría una clase estática (static) con métodos compartidos (shared).

Aunque esto de mantener una conexión para toda la aplicación choca de frente
con la filosofía que intenta dar MS a ADO.NET

"Rodrigo Pizarro" wrote:

Buenos dias?,

he creado un objeto de conexion a la base de datos, como puedo hacer para
que este objeto quede disponible para toda la aplicacion?, osea que lo
instancie solo 1 vez y que pueda abrir y cerrar la conexion n veces,

lo que necesito es como crear un variable global en VB6. antes esto se
hacia en los modulos?, como lo puedo hacer ahora para Visual Basic 2005?





Respuesta Responder a este mensaje
#2 Rodrigo Pizarro
21/11/2006 - 16:02 | Informe spam
Toni, Gracias por tu tiempo,

te comento que estoy aprendiendo a trabajar con .net (Visual Basic 2005) y
tengo una base sql server 2000, y mi problema es que efectivamente estaba
creando muchas conexiones a la base de datos pero empece a tener problemas
por que tenia conexiones que no se cerraban y me traia intermitencia de
conexion cada vez que depuraba la la aplicacion la conexion primero se iba
por timeout la segunda vez que lo hacia, la aplicacion respondia. entonces
opte por crear un solo objeto de conexion y abrir lo y cerrarlo a medida que
lo ocupo.

entiendo que la idea es crear muchas conexiones y para eso fue optimizado
ado.net, pero como yo me encuentro en pañales aun, y prefiero tener el
control de 1 sola conexion.

Saludos!!!






"Toni Recio" <Toni escribió en el mensaje
news:
Yo haría una clase estática (static) con métodos compartidos (shared).

Aunque esto de mantener una conexión para toda la aplicación choca de
frente
con la filosofía que intenta dar MS a ADO.NET

"Rodrigo Pizarro" wrote:

Buenos dias?,

he creado un objeto de conexion a la base de datos, como puedo hacer para
que este objeto quede disponible para toda la aplicacion?, osea que lo
instancie solo 1 vez y que pueda abrir y cerrar la conexion n veces,

lo que necesito es como crear un variable global en VB6. antes esto se
hacia en los modulos?, como lo puedo hacer ahora para Visual Basic 2005?





Respuesta Responder a este mensaje
#3 Toni Recio
21/11/2006 - 16:18 | Informe spam
Hola de nuevo,

Te comprendo perfectamente, hay momentos en que las cosas tienen que
funcionar, peor o mejor, pero que tiren... ;-)

En ése sentido no me ha quedado claro si te serviria una clase estatica. ?¿?¿

Yo personalmente voy a cometer un acto de "sobervía" al proponerte otro
método, al menos para ver que te parece:

-Supongamos que trabajamos con SQL Server y que almacenamos la cadena de
conexión en el app.config.

La siguiente clase:

***********************************************************

Imports System.Configuration.ConfigurationManager
Imports System.Data.SqlClient
Imports System.Data.OleDb

#Region "DDBB"

Public Class DDBB

#Region "ExecuteSQLSelect"

Public Shared Function ExecuteSQLSelect(ByVal prmComando As String) As
DataTable
Try
If prmComando.Equals(String.Empty) Then
Return Nothing
Else
Dim scnSQLServer As New SqlConnection
Dim sdaAdaptador As SqlDataAdapter
Dim dstResultado As New DataSet
scnSQLServer.ConnectionString =
AppSettings("ConexionBD").ToString
scnSQLServer.Open()
sdaAdaptador = New SqlDataAdapter(prmComando, scnSQLServer)
sdaAdaptador.Fill(dstResultado, "DATOS")
scnSQLServer.Close()
Return dstResultado.Tables(0)
End If
Catch ex As Exception
Throw ex
End Try
End Function

#End Region '"ExecuteSQLSelect"

#Region "ExecuteSQLCommand"

Public Shared Function ExecuteSQLCommand(ByVal prmComando As String) As
Integer
Try
If prmComando.Equals(String.Empty) Then
Return 0
Else
Dim scnSQLServer As New SqlConnection
Dim sqcComando As New SqlCommand

scnSQLServer.ConnectionString =
AppSettings("ConexionBD").ToString
scnSQLServer.Open()
sqcComando.CommandText = prmComando
sqcComando.CommandType = CommandType.Text
sqcComando.Connection = scnSQLServer
scnSQLServer.Close()
Return sqcComando.ExecuteNonQuery
End If
Catch ex As Exception
Return 0
End Try
End Function

#End Region '"ExecuteSQLCommand"

End Class

#End Region 'DDBB

***********************************************************

, podría resolver tus problemas. Con dos simples métodos podría realizar
consultas, inserciones, actualizaciones y eliminar registros, olvívandote del
tema de las conexiones, para cada acción se cierra y se abre.

¿Qué te parece este enfoque?

Un abrazo,
Toni Recio
www.tonirecio.com


"Rodrigo Pizarro" wrote:

Toni, Gracias por tu tiempo,

te comento que estoy aprendiendo a trabajar con .net (Visual Basic 2005) y
tengo una base sql server 2000, y mi problema es que efectivamente estaba
creando muchas conexiones a la base de datos pero empece a tener problemas
por que tenia conexiones que no se cerraban y me traia intermitencia de
conexion cada vez que depuraba la la aplicacion la conexion primero se iba
por timeout la segunda vez que lo hacia, la aplicacion respondia. entonces
opte por crear un solo objeto de conexion y abrir lo y cerrarlo a medida que
lo ocupo.

entiendo que la idea es crear muchas conexiones y para eso fue optimizado
ado.net, pero como yo me encuentro en pañales aun, y prefiero tener el
control de 1 sola conexion.

Saludos!!!






"Toni Recio" <Toni escribió en el mensaje
news:
> Yo haría una clase estática (static) con métodos compartidos (shared).
>
> Aunque esto de mantener una conexión para toda la aplicación choca de
> frente
> con la filosofía que intenta dar MS a ADO.NET
>
> "Rodrigo Pizarro" wrote:
>
>> Buenos dias?,
>>
>> he creado un objeto de conexion a la base de datos, como puedo hacer para
>> que este objeto quede disponible para toda la aplicacion?, osea que lo
>> instancie solo 1 vez y que pueda abrir y cerrar la conexion n veces,
>>
>> lo que necesito es como crear un variable global en VB6. antes esto se
>> hacia en los modulos?, como lo puedo hacer ahora para Visual Basic 2005?
>>
>>
>>
>>
>>



Respuesta Responder a este mensaje
#4 Robinson.Moscoso
21/11/2006 - 16:21 | Informe spam
En VB 2005 tambien puedes crear el modulo, solo que no defines la varible
como public

seria algo como esto:

Imports System.Data.OleDb

Module funcionesbd

Public myconnection As OleDbConnection

end Module


Un saludo

Róbinson Moscoso
Colombia

"Rodrigo Pizarro" escribió en el mensaje
news:
Toni, Gracias por tu tiempo,

te comento que estoy aprendiendo a trabajar con .net (Visual Basic 2005)
y tengo una base sql server 2000, y mi problema es que efectivamente
estaba creando muchas conexiones a la base de datos pero empece a tener
problemas por que tenia conexiones que no se cerraban y me traia
intermitencia de conexion cada vez que depuraba la la aplicacion la
conexion primero se iba por timeout la segunda vez que lo hacia, la
aplicacion respondia. entonces opte por crear un solo objeto de conexion y
abrir lo y cerrarlo a medida que lo ocupo.

entiendo que la idea es crear muchas conexiones y para eso fue optimizado
ado.net, pero como yo me encuentro en pañales aun, y prefiero tener el
control de 1 sola conexion.

Saludos!!!






"Toni Recio" <Toni escribió en el mensaje
news:
Yo haría una clase estática (static) con métodos compartidos (shared).

Aunque esto de mantener una conexión para toda la aplicación choca de
frente
con la filosofía que intenta dar MS a ADO.NET

"Rodrigo Pizarro" wrote:

Buenos dias?,

he creado un objeto de conexion a la base de datos, como puedo hacer
para
que este objeto quede disponible para toda la aplicacion?, osea que lo
instancie solo 1 vez y que pueda abrir y cerrar la conexion n veces,

lo que necesito es como crear un variable global en VB6. antes esto se
hacia en los modulos?, como lo puedo hacer ahora para Visual Basic 2005?











Respuesta Responder a este mensaje
#5 Rodrigo Pizarro
21/11/2006 - 16:52 | Informe spam
Ok,
me sirvio, muchas gracias por tu ayuda!!!!


"Robinson.Moscoso" escribió en el mensaje
news:
En VB 2005 tambien puedes crear el modulo, solo que no defines la varible
como public

seria algo como esto:

Imports System.Data.OleDb

Module funcionesbd

Public myconnection As OleDbConnection

end Module


Un saludo

Róbinson Moscoso
Colombia

"Rodrigo Pizarro" escribió en el mensaje
news:
Toni, Gracias por tu tiempo,

te comento que estoy aprendiendo a trabajar con .net (Visual Basic 2005)
y tengo una base sql server 2000, y mi problema es que efectivamente
estaba creando muchas conexiones a la base de datos pero empece a tener
problemas por que tenia conexiones que no se cerraban y me traia
intermitencia de conexion cada vez que depuraba la la aplicacion la
conexion primero se iba por timeout la segunda vez que lo hacia, la
aplicacion respondia. entonces opte por crear un solo objeto de conexion
y abrir lo y cerrarlo a medida que lo ocupo.

entiendo que la idea es crear muchas conexiones y para eso fue optimizado
ado.net, pero como yo me encuentro en pañales aun, y prefiero tener el
control de 1 sola conexion.

Saludos!!!






"Toni Recio" <Toni escribió en el
mensaje news:
Yo haría una clase estática (static) con métodos compartidos (shared).

Aunque esto de mantener una conexión para toda la aplicación choca de
frente
con la filosofía que intenta dar MS a ADO.NET

"Rodrigo Pizarro" wrote:

Buenos dias?,

he creado un objeto de conexion a la base de datos, como puedo hacer
para
que este objeto quede disponible para toda la aplicacion?, osea que lo
instancie solo 1 vez y que pueda abrir y cerrar la conexion n veces,

lo que necesito es como crear un variable global en VB6. antes esto se
hacia en los modulos?, como lo puedo hacer ahora para Visual Basic
2005?















Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida