Foros del Web » Programación para mayores de 30 ;) » .NET »

porque el primer Fill tarda?

Estas en el tema de porque el primer Fill tarda? en el foro de .NET en Foros del Web. yo tengo un combo y un grid en un Form donde coloco un código XX en dicho combo. El grid lo lleno dependiendo del codigo ...
  #1 (permalink)  
Antiguo 05/03/2004, 08:21
 
Fecha de Ingreso: enero-2004
Ubicación: Mérida
Mensajes: 60
Antigüedad: 20 años, 3 meses
Puntos: 1
porque el primer Fill tarda?

yo tengo un combo y un grid en un Form donde coloco un código XX en dicho combo.

El grid lo lleno dependiendo del codigo que coloque en el codigo.

dsVta.Tables("Ppal").Clear()

daPpal.SelectCommand.CommandText = "SELECT * FROM vePpal WHERE Cia ='" & combo.value & "'"

daPpal.Fill(dsVenta, "vePpal")


La primera vez que hago esto me tarda como 4 seg es Normal?
despues si rapido...

que me recomiendan......

Muchas Gracias......

P.D: Nose si estare haciendo algo mal

hasta luegoo
  #2 (permalink)  
Antiguo 05/03/2004, 08:23
 
Fecha de Ingreso: enero-2004
Ubicación: Mérida
Mensajes: 60
Antigüedad: 20 años, 3 meses
Puntos: 1
El grid lo lleno dependiendo del codigo que coloque en dicho Combo.
__________________
Michel Garcia
Mérida - Venezuela
  #3 (permalink)  
Antiguo 05/03/2004, 10:09
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Porque no usas un datareader en vez de un dataset para llenar tu grid.. ?


Saludos
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #4 (permalink)  
Antiguo 05/03/2004, 20:51
 
Fecha de Ingreso: marzo-2004
Ubicación: La Paz, BCS, Mexico
Mensajes: 41
Antigüedad: 20 años, 1 mes
Puntos: 0
El DataReader no es recomendable por que abre la conexion, mejor trata con un DataTable, asi no te preocupas de estar abriendo ni cerrando el objeto conexion....

Si quieres te pongo codigo fuente... (Ya que llegue a mi casa..)

Saludos...
  #5 (permalink)  
Antiguo 06/03/2004, 04:27
Avatar de SunDarK  
Fecha de Ingreso: diciembre-2003
Ubicación: Jerez de la Frontera
Mensajes: 1.193
Antigüedad: 20 años, 5 meses
Puntos: 8
Efectivamente,el Datareader corresponde a un modelo de datos conectados,y gracias a ADO.NET podemos usar el modelo de datos desconectado con el Dataset que es altamente recomendable.Respecto al Datatable que ha mencionado Charmander sería de la siguiente manera:

-------------------------------------------------
1ºPor ejemplo tienes un Datagrid y un botón para llenar el datagrid
2ºAl hacer click en el boton:
Dim otabla as Datatable
otabla= odataset.Tables("NOMBRE_DE_LA_TABLA_CON_LA_QUE_VAY AS_A_LLENAR_EL_DATAGRID")
Datagrid1.DataSource = otabla

-------------------------------------------------
Asi se llenaría con un Datatable,sustituyendo datagrid1 por el nombre de tu datagrid y odataset por el nombre de tu Dataset ^
Espero ke te haya sido de ayuda,un saludo!
  #6 (permalink)  
Antiguo 08/03/2004, 06:13
 
Fecha de Ingreso: enero-2004
Ubicación: Mérida
Mensajes: 60
Antigüedad: 20 años, 3 meses
Puntos: 1
lo que pasa es que yo lleno el grid dependiendo del codigo que eliga en el Combo

osea que cada vez que yo cambie el valor dentro del Combo yo hago lo siguiente:

ds1.Tables("Ppal").Clear()
daPpal.SelectCommand.CommandText = "SELECT * FROM Ppal WHERE Cia ='" & _
combo.value & "'"
daPpal.Fill(ds1, "Ppal")

otra cosa en el FormLoad configuro el grid osea configuro las columnas, colores, mascaras de columnas, le asigno al grid el DataSource para tenerlo siempre conectado a la tabla "Ppal"

***********Form Load**************

grDet.DataSource = ds1.Tables("Ppal")
grDet.RetrieveStructure()

Ahora el problema me viene cuando cambio por primera vez el valor en el combo que me tarda como 4 segundos en llenarme el grid, la segunda vez si lo hace violentamente.....

Me recomendaron un data reader pero es de solo lectura..., ahora con el data dable como haria para cambiar el grid cada vez que cambie el valor del combo. Será mas Rápido?

Gracias Uso VBForms
  #7 (permalink)  
Antiguo 08/03/2004, 08:54
Avatar de lucxx  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 321
Antigüedad: 20 años, 5 meses
Puntos: 0
Hola
Yo creo que el dataset debes llenarlo una unica vez con
"SELECT * FROM Ppal" y crear dataviews filtrados en funcion de lo que se se seleccione en el combo, y que sean estos los que se enlacen con el grid en lugar de estar trayendo continuamente informacion de la base de datos.
Otra cosa:
Cita:
El DataReader no es recomendable por que abre la conexion, mejor trata con un DataTable, asi no te preocupas de estar abriendo ni cerrando el objeto conexion....
No entiendo muy bien lo que se quiere decir con esto, que yo sepa los dataset no son telépatas, es decir, para llenarlos se necesita conectarse con la base de datos, ya sea a traves de un dataAdapter o un command, otra cosa es que una vez lleno la conexion no se mantenga, pero esta se realiza, ya sea implicitamente o declarada de forma explicita. En muchas ocasiones (cuando solo necesitamos leer datos de la base de datos) el datareader es la opción mas recomendable, ya que mientras que el dataset mantiene toda una tabla en memoria, el datareader solo deja una linea, y la verdad, la memoria del servidor no es como para tirarla. Y si todo el problema es tener que abrir y cerrar la conexion...
Salu2
  #8 (permalink)  
Antiguo 08/03/2004, 11:37
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
El DataReader no es recomendable por que abre la conexion, mejor trata con un DataTable, asi no te preocupas de estar abriendo ni cerrando el objeto conexion....
Estoy de acuerdo con lucxx, ya que en cuestiones de performance lo mas pesado es usar datasets así como son mas lentos que obviamente un datareader.

Primero hay que analizar bien lo que uno pretende mostrar o hacer, antes de usar para cualquier cosa un dataset.
  #9 (permalink)  
Antiguo 09/03/2004, 21:32
 
Fecha de Ingreso: marzo-2004
Ubicación: La Paz, BCS, Mexico
Mensajes: 41
Antigüedad: 20 años, 1 mes
Puntos: 0
Cita:
Mensaje Original por RootK


Estoy de acuerdo con lucxx, ya que en cuestiones de performance lo mas pesado es usar datasets así como son mas lentos que obviamente un datareader.

Primero hay que analizar bien lo que uno pretende mostrar o hacer, antes de usar para cualquier cosa un dataset.

totalmente de acuerdo con RootK, para obtener datos un DataReader es exelente, pero si tu sistema depende mucho de los datareaders puedes hacer que tu programa truene por cuestiones de la conexion abierta... al menos ami ya me toco toparme con problemas con los datareader...(motor de access JET)... me imagino que tronaba por el engine del access... sepa dios...

de hecho no es bronca del datareader sino de la conexion... tal ves sea un bug... y... esto es un poco dificil de explicar... mmm...

Ahunque a eso de estar abriendo la conexion para usar un command y el datareader prefiero usar un Datatable...

Otra cosa Muy interesante... la primera ves que accessar a los datos si se tarda un poco en eso, en esa caso mando un una forma que diga: "Conectandose...." ò "Cargando datos".. esta es una muy buena forma de "distraer al usuario final" para que no se desespere en la carga de datos...

volviendo al punto de la carga de datos, se tarda un poco... (estraño) pero despues no.. que te lleva a pensar eso? pues lo unico que se me ocurre es que se carga la primera ves el engine o motor de base de datos y despues queda en memoria...

Tambien si tu aplicacion tiene muchos controles la primera ves que cargas tal forma se tarda un poco y a eso agregale lo de la carga de datos... al final si es bantantito tiempo...

Alguien opina mas?
  #10 (permalink)  
Antiguo 10/03/2004, 01:46
Avatar de SunDarK  
Fecha de Ingreso: diciembre-2003
Ubicación: Jerez de la Frontera
Mensajes: 1.193
Antigüedad: 20 años, 5 meses
Puntos: 8
Cita:
Otra cosa Muy interesante... la primera ves que accessar a los datos si se tarda un poco en eso, en esa caso mando un una forma que diga: "Conectandose...." ò "Cargando datos".. esta es una muy buena forma de "distraer al usuario final" para que no se desespere en la carga de datos...
Esa idea es la mejor,yo lo que hago en todos mis programas que usan BD es poner un Splash Screen,es decir una ventana de inicio,que pone el nombre de mi empresa y un mensaje que pone "Esta ventana se cerrará en 10,9,8,7,etc segundos",y mientras que van pasando los segundos se va llenando el DataSet,asi el usuario no nota al principio esa tardanza.Lo malo es que eso puede amargar a algunos impacientes pero bueno...nunca llueve a gusto de todos
Venga un saludo a todos
  #11 (permalink)  
Antiguo 07/09/2008, 14:23
 
Fecha de Ingreso: septiembre-2008
Mensajes: 1
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: porque el primer Fill tarda?

Cita:
Iniciado por SunDarK Ver Mensaje
Esa idea es la mejor,yo lo que hago en todos mis programas que usan BD es poner un Splash Screen,es decir una ventana de inicio,que pone el nombre de mi empresa y un mensaje que pone "Esta ventana se cerrará en 10,9,8,7,etc segundos",y mientras que van pasando los segundos se va llenando el DataSet,asi el usuario no nota al principio esa tardanza.Lo malo es que eso puede amargar a algunos impacientes pero bueno...nunca llueve a gusto de todos
Venga un saludo a todos
soy principiante estoy trabajando con dataset tipados en vb 2005 y me ocurre lo mismo, mi bd esta alojada en sql server 2005 express y tarda unos segundos en
cargar el fill ya que en todos mis formularios ocupo diferentes fill dependiendo del table adapater que este utilizando y siempre pasa que al visualisar primero cuaquiera de mis formularios tarda en cargar y ya despues trabaja bien, me gustaria aplicar la idea que tu comentas solamente que no se como implementarlo,
me podrias poner algun ejemplo de como hacerlo ?
gracias
  #12 (permalink)  
Antiguo 08/09/2008, 15:06
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Respuesta: porque el primer Fill tarda?

hola y bienvenido dario_m, te recomiendo que verifiques la fecha en que se realizan los post para no revivir mensajes ya de mucho tiempo (Antiguo 10-mar-2004, 01:46)

Si quieres abre un nuevo tema para poderte ayudar de una mejor manera

Saludos
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 00:24.