Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/11/2012, 11:57
Avatar de Jamsito
Jamsito
 
Fecha de Ingreso: agosto-2012
Mensajes: 28
Antigüedad: 12 años, 3 meses
Puntos: 0
Pregunta Mejorar la Obtencion de Datos, para desplegarlos, via ODBC

Que tal compañeros

Con una consulta.

Tengo una Forma (form, ventana) que despliega mucha informacion de cierto producto, esta se abre luego que se selecciona dicho producto.

en esta ventanita tengo Textbox en los cuales yo coloco la informacion de la base de datos :)

ahi todo bien, la cuestion es que tarda mucho en abrir (15 segundos) mientras que las demas formas del programa no tardan ni 1 segundo en abrir entonces si se nota la diferencia con esta

yo estoy usando conexion odbc, y este es mi codigo, el cual busca el primer registro de la tabla y lo obtiene, luego busca otro registro y lo trae, todos estos registros los guardo en variables las cuales yo las coloco en los Textbox antes mencionados

el problema es que hago un select por cada campo que obtengo de la base de datos , les deje un ejemplo de 4 campos que obtengo

Código SQL:
Ver original
  1. ' Aqui me conecto
  2. Dim conexionODBC As New OdbcConnection
  3. Dim cadenaConexion As String = ("dsn=" & varGlobalServer & ";uid=" & varGlobalUsuario & ";pwd=" & varGlobalContrasena & ";")
  4. conexionODBC.ConnectionString = cadenaConexion
  5. conexionODBC.Open()
  6.  
  7. 'Aqui hago las consultas a la BD
  8. Dim varDesProducto AS NEW OdbcCommand("Select DESCRIPCION_PROD from MAESTRO_PRODUCTOS WHERE PRODUCT0='" & txtCodProducto.Text & "'", conexionODBC)
  9. Dim varDesCodUni AS NEW OdbcCommand("Select DESCRP_UNIDAD_VENTA from UNIDADES_DE_VENTA WHERE CODIGO_UNIDAD_VENTA='" & txtCodigoUnidad.Text & "'", conexionODBC)
  10. Dim varDesBodega AS NEW OdbcCommand("Select DESCRIPCION_BODEGA from MAESTRO_DE_BODEGAS WHERE CODIGO_BODEGA='" & txtCodBodega.Text & "'", conexionODBC)
  11. Dim varDesUbi AS NEW OdbcCommand("Select DESCRIP_UBICACION from UBICACIONES WHERE CODIGO_DE_UBICACION='" & txtCodUbi.Text & "'", conexionODBC)
  12.  
  13. 'Aqui coloco en los Textbox el valor obtenido en las consultas de arriba, pero antes evaluo si hay un nulo, puesto que si encuentra nulo y no verifico el programa da error
  14. If IsDBNull(varDesProducto.ExecuteScalar) Then
  15.            txtDescProducto.Text = ""
  16. Else
  17.            txtDescProducto.Text = varDesProducto.ExecuteScalar
  18. End If
  19. If IsDBNull(varDesCodUni.ExecuteScalar) Then
  20.            txtDescUnidad.Text = ""
  21. Else
  22.            txtDescUnidad.Text = varDesCodUni.ExecuteScalar
  23. End If
  24. If IsDBNull(varDesBodega.ExecuteScalar) Then
  25.            txtDescBodega.Text = ""
  26. Else
  27.            txtDescBodega.Text = varDesBodega.ExecuteScalar
  28. End If
  29. If IsDBNull(varDesUbi.ExecuteScalar) Then
  30.            txtDescUbicacion.Text = ""
  31. Else
  32.            txtDescUbicacion.Text = varDesUbi.ExecuteScalar
  33. End If

bueno y asi con un monton de campos que obtengo de la base de datos., en el ejemplo de arriba consulto de distintas tablas , pero hay veces que necisto info de la misma tabla

yo quisiera saber si hay un metodo de tirar solo una consulta y luego obtener los campos individualmente y meterlos en los textobx para desplegarlos, supongo que esto seria mucho mas rapido.

me comentan que en visual 5 existe algo que se llama recordset , pero no se a que se refiere y ando perdido en el tema

talvez alguien me puede ayudar

Gracias de antemano