Visual Basic - ADO

Life is soft - evento anual de software empresarial
 
Vista:

ADO

Publicado por jose (9 intervenciones) el 04/07/2007 16:42:40
hola,

Estoy modificando una aplicación y la verdad es que esta un poco mal hecha para mi gusto. Todos los data grids
utilizan un ado y este lo que hace es devolver todo los registros de la tabla y luego filtrarlos.

Me parece barbaro tener que cargar toda la tabla y luego dejar tan solo los que necesito,
esto me relentiza la aplicación mucho, lo que estoy intentando hacer es Crear la consulta por cada caso ponerla en el recordsource
y luego ejecutarla en el ado correspondiente.

Estoy aprendiendo y no tengo mucha experiéncia, por eso me gustaría que alguien me comentara cual es la mejor manera para sacar los datos de una base de datos sqlserver.

un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ADO

Publicado por Yo (49 intervenciones) el 04/07/2007 19:25:36
¿un ado? supongo que será un ADO DATACONTROL, pues te aviso que no necesariamente tiene que cargar TODA la tabla, también le puedes aplicar el filtro deseado. ¿cómo estás haciendo tu proceso?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Algo más ...

Publicado por Yo (49 intervenciones) el 04/07/2007 19:29:03
otra cosa: los data grids tambien se pueden enlazar a un recordset "normal", en vez de usar un adodatacontrol.
por eso te digo que si puedes postear aquí como lo estás haciendo podríamos orientarte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algo más ...

Publicado por jose (9 intervenciones) el 05/07/2007 08:39:17
sisis perdona, lo que hay hecho es lo siguiente:

El data grid lo tengo enlazado con el adodc.

y luego tengo el adodc con una consulta a una tabla asi " select * from ..... " , cada vez que quiero aplicar un filtro sobre la tabla ejecuto lo siguiente variando el filtro.

adoComponentes.Refresh
adoComponentes.Recordset.Filter = "CodigoOperacion='" & grdope.Text & "'"
adoComponentes.Recordset.Requery

para poner un ejemplo, si desde otro form quiero ver los componentes que tiene un cliente ejecuto lo anterior pero variando el filtro por CodigoCliente.

jeje Yo lo que hago es lo siguiente, pero a penas veo mejoras en el rendimiento...

adoComponentes.recordsource="Select * from Xcomponentes where CodigoOperacion="&grdope&""
adoComponentes.recordset.requery
adocomponentes.refresh

La pua de esto es que me mato hacer consultas pero bueno prefiero picar...
jejej

No se si es lo mejor.. Muchas gracias Yo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algo más ...

Publicado por Yo (49 intervenciones) el 05/07/2007 15:50:41
Pues algo que te podría aconsejar es en esta parte, donde YA aplicas un filtro:

adoComponentes.recordsource="Select * from Xcomponentes where CodigoOperacion="&grdope&""
adoComponentes.recordset.requery
adocomponentes.refresh

No uses "requery", que el "Refresh" se encarga de eso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cargar Grid

Publicado por Walter Rueda (49 intervenciones) el 22/07/2007 04:11:08
Espero te sirva este codigo solo carga los valores que cumplan un criterio con un combobox

rs.Open ("Select * from maestrohoteles where id_hotel= " & IH), Conex, adOpenStatic, adLockReadOnly

If (rs.BOF And rs.EOF) = True Then ' AdoMaestro.Recordset.MoveFirst

MsgBox "No existen registros para el Hotel seleccionado", vbInformation, "No existen registros"

Grid1.Clear
CmbHotel.SetFocus
Else

R = rs.RecordCount
Set Grid1.DataSource = rs
Grid1.SelectionMode = flexSelectionByRow

rs.MoveFirst
For i = 1 To R

Grid1.ColAlignment(0) = 4
Grid1.ColAlignment(1) = 4
Grid1.ColAlignment(2) = 4
Grid1.ColAlignment(3) = 4
Grid1.ColAlignment(4) = 4
Grid1.ColAlignment(5) = 4
Grid1.ColAlignment(6) = 4
Grid1.ColAlignment(7) = 4
Grid1.ColAlignment(8) = 4
Grid1.ColAlignment(9) = 4
Grid1.ColAlignment(10) = 4
Grid1.ColAlignment(11) = 4
Grid1.ColAlignment(12) = 4
Grid1.ColAlignment(13) = 4
Grid1.ColAlignment(14) = 4
Grid1.ColAlignment(15) = 4
Grid1.ColAlignment(16) = 4
Grid1.ColAlignment(17) = 4

Grid1.TextMatrix(Grid1.Rows - i, 1) = rs.Fields("frecepcion").Value
Grid1.TextMatrix(Grid1.Rows - i, 2) = rs.Fields("nfact").Value
Grid1.TextMatrix(Grid1.Rows - i, 3) = rs.Fields("ncontrol").Value
Grid1.TextMatrix(Grid1.Rows - i, 4) = rs.Fields("beneficiario").Value
Grid1.TextMatrix(Grid1.Rows - i, 5) = rs.Fields("ffact").Value
Grid1.TextMatrix(Grid1.Rows - i, 6) = rs.Fields("fdesde").Value
Grid1.TextMatrix(Grid1.Rows - i, 7) = rs.Fields("fhasta").Value
Grid1.TextMatrix(Grid1.Rows - i, 8) = rs.Fields("unidad").Value
Grid1.TextMatrix(Grid1.Rows - i, 9) = rs.Fields("evento").Value
Grid1.TextMatrix(Grid1.Rows - i, 10) = rs.Fields("descripcionfact").Value
Grid1.TextMatrix(Grid1.Rows - i, 11) = Format$(rs.Fields("montofact").Value, "currency")
Grid1.TextMatrix(Grid1.Rows - i, 12) = rs.Fields("os").Value
Grid1.TextMatrix(Grid1.Rows - i, 13) = rs.Fields("sol_pago").Value
Grid1.TextMatrix(Grid1.Rows - i, 14) = rs.Fields("modificado").Value
Grid1.TextMatrix(Grid1.Rows - i, 15) = rs.Fields("fecha_modi").Value
Grid1.TextMatrix(Grid1.Rows - i, 16) = rs.Fields("hora_modi").Value
Grid1.TextMatrix(Grid1.Rows - i, 17) = rs.Fields("id_hotel").Value

rs.MoveNext

Next


End If

'Formato_Linea
Grid1.FormatString = "|Recibido |No. Factura|No. Control|Beneficiario | Fecha Factura | Desde | Hasta | Unidad | Evento | Descripción | Monto | O.S | Sol Pago | Modificado por | Fecha de Modificación | Hora de Modificación | Id Hotel "

End If
rs.Close
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar