Visual Basic - msflexgrid Urgente!!!

Life is soft - evento anual de software empresarial
 
Vista:

msflexgrid Urgente!!!

Publicado por guider (5 intervenciones) el 27/05/2005 14:01:05
Hola desde ya gracias por leer el msj. Bueno esto es urgente porque pueden que me quede sin trabajo sino puedo resolver esto.
El problema que tengo es que no puedo cargar un flexgrid desde una base de datos de 80 mil registros x 20 columna me dice que no hay memoria para el msflexgrid probe cargarlo en partes usando 5 msflexgrid de 19 mil registros c/u y tarda un monton, porbe con mshflexgrid y se cuelga la maquina es una pentium III con 128 megas de ram.
aca mando la conexion de ado que tengo y la carga del msflexgrid haber si hay un error.
________________________
Public Micn As ADODB.Connection
Public Mirs As ADODB.Recordset
________________________

Set Micn = New ADODB.Connection
Set Mirs = New ADODB.Recordset
Dim Ruta As String
Ruta = App.Path & "\domicilios.mdb"
Micn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= '" & Ruta & "';Persist Security Info=False")
Mirs.Open (" " & QueConsulta & " "), Micn, adOpenDynamic, adLockOptimistic

____________________________________

With Grilla
Call Cant

If Cantreg <> 0 Then Mirs.MoveFirst
.Rows = 1

While Not Mirs.EOF



.Cols = (Mirs.Fields.Count) + 1

.AddItem ""
For X = 1 To .Cols - 1

If Not Mirs.Fields(X - 1) = "" Then
.TextMatrix(.Rows - 1, X) = Mirs.Fields(X - 1)


End If
Next X

Mirs.MoveNext

Wend
End With
_

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:msflexgrid Urgente!!!

Publicado por Guider (5 intervenciones) el 31/05/2005 21:29:55
Me contesto a mi mismo por si alguno tiene un problema parecido la solucion es cargando un mshflegrid de la siguiente manera
set mshflexgrid1.datasource = Mirs("este es el nombre con que hago el open del recordset") y ahi se cargan barbaro.

Bueno saludos chau
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:msflexgrid Urgente!!!

Publicado por Dani (7 intervenciones) el 10/07/2005 01:31:42
Has Provado El Sistema Del As 400 Cargar Solo Un Nº Determinado de registros
y Guardar Los Otros Registros En Memoria O Un Fichero Temporal O En La Misma Base De Datos.

El Mejor Sistema Es En Memoria Para Eso Crearemos Un Tipo De Datos

option explicit

Private Type MiTipoDeDatosEnMemoria
Campo1 As String * 30
Campo2 As String * 30
Campo3 As String * 30
Campo4 As String * 240
Campo5 As Boolean
Campo6 As Integer
'etc...,todos los campos que quieras y del tipo que quiera
End Type

Private DatosMemoria() As MiTipoDeDatosEnMemoria 'Convertimos el tipo en una matriz sin dimensiones
Dim index As Integer, MinimoFichero As Integer, MaximoFichero As Integer
Dim Respuesta As Boolean

'Rellenamos El Tipo De Datos
Private Sub Pasar()
Set rs = Adodc1.Recordset
While Not rs.EOF
Aumento = Aumento + 1
ReDim Preserve DatosMemoria(Aumento - 1)
With DatosMemoria(Aumento - 1)
.Campo1 = rs.Fields("Nombre")
.Campo2 = rs.Fields("Direcciom")
.Campo3 = rs.Fields("Telefono")
.Campo4 = rs.Fields("Notas")
.Campo5 = True
.Campo6 = Aumento
rs.MoveNext
End With
Wend
End Sub

Private Sub Form_Load()
Respuesta = CargarNuevo(MinimoFichero, MaximoFichero)
End Sub
'Para Controlar Cuando LLegamos Al Primer O Ultimo Fichero Cargado

Private Sub MSHFlexGrid1_Scroll()
Dim Diferencia As Integer
'Redimensionar Diferencia Si Falla El Calculo
Diferencia = Int(MSHFlexGrid1.Height / MSHFlexGrid1.RowHeight(1)) - 3
MSHFlexGrid1.Row = MSHFlexGrid1.Row + 1
If MaximoFichero = MSHFlexGrid1.TopRow + Diferencia Then MaximoFichero = MaximoFichero + 1000: MinimoFichero = MinimoFichero + 1000: Respuesta = CargarNuevo(MinimoFichero, MaximoFichero)
If MinimoFichero = MSHFlexGrid1.TopRow - 1 Then MaximoFichero = MaximoFichero + 1000: MinimoFichero = MinimoFichero + 1000: Respuesta = CargarNuevo(MinimoFichero, MaximoFichero)
End Sub

Private Function CargarNuevo(PrimerElemento As Integer, UltimoElemento As Integer) As Boolean

For index = PrimerElemento To UltimoElemento Step 1
With DatosMemoria(index - 1)
MSHFlexGrid1.TextMatrix(index, 0) = .Campo1
MSHFlexGrid1.TextMatrix(index, 1) = .Campo2
MSHFlexGrid1.TextMatrix(index, 2) = .Campo3
MSHFlexGrid1.TextMatrix(index, 3) = .Campo4
MSHFlexGrid1.TextMatrix(index, 4) = .Campo5
MSHFlexGrid1.TextMatrix(index, 5) = .Campo6
End With
Next index

CargarNuevo = True
End Function
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:msflexgrid Urgente!!!

Publicado por David (3 intervenciones) el 07/09/2006 22:39:16
es que we, en primer lugar, no entiendo por que qioeres cargar tantos registros en un Flexgrid, si al final, lo que vas a hacer es una busqueda avanzada. Pero bueno, es logico que no se puedan cargar tantos registros, inclusive en una P IV, te deceo mucha suerte. Ojala encuentres la solucion.
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:msflexgrid Urgente!!!

Publicado por David (3 intervenciones) el 07/09/2006 22:39:18
es que we, en primer lugar, no entiendo por que qioeres cargar tantos registros en un Flexgrid, si al final, lo que vas a hacer es una busqueda avanzada. Pero bueno, es logico que no se puedan cargar tantos registros, inclusive en una P IV, te deceo mucha suerte. Ojala encuentres la solucion.
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:msflexgrid Urgente!!!

Publicado por David (3 intervenciones) el 07/09/2006 22:39:24
es que we, en primer lugar, no entiendo por que qioeres cargar tantos registros en un Flexgrid, si al final, lo que vas a hacer es una busqueda avanzada. Pero bueno, es logico que no se puedan cargar tantos registros, inclusive en una P IV, te deceo mucha suerte. Ojala encuentres la solucion.
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