Tablas grandes con SQL
Publicado por Alejo (3 intervenciones) el 19/01/2007 12:58:10
Hola a todos
Soy bastante nuevo con Fox y tengo un problema con tablas grandes en SQL.
Necesito abrirlas y modificarlas sin filtrarlas via Where.
He utilizado CursorAdapters - Vistas remotas y algunas pruebas con Pass-Through
Alguien sabe como obtener un cursor FOX modificable contra SQLServer de una tabla grande (500000 registros aprox) y que no tarde la apertura ?
No me importa la tecnologia a usar (cualquiera de las 3 que mencioné anteriormente está bien)
Algunas pruebas que ya he hecho las cuento a continuación
1) CURSOR ADAPTER
En el caso de cursor adapters
Necesito saber como hacer para que funcione la propiedad FetchAsNeeded
Parametrizo el recordset (loRS) de modo que el cursor sea en el Servidor y dinámico
loRS.CursorType = 2 && adOpenDynamic
loRS.CursorLocation = 2 && adUseServer
MiCursorAdapter.FetchAsNeeded = .T.
MiCursorAdapter.DataSource = loRS
El problema es que cuando ejecuto
MiCursorAdapter.CursorFill()
Se trae todos los registros !!!!! (me pregunto ¿ para que sirve la propiedad FeetchAsNeeded ?)
Esto es así ? (pareciera que el cursor fuera adUseClient adOpenStatic)
¿ Se puede lograr que los registros se traigan a medida que se necesitan usando ADO ? (esto es, FetchasNeeded = .T.)
Esto lo he resuelto en otro lenguaje y Recodsets de ADO pero no puedo con Cursoradapters
Fox exije (al menos eso creo) que los recordsets soporten bookmarks, pero esto hace lenta la apertura de una tabla grande, ya sea utilizando cursores en el servidor o en el cliente.
2) VISTAS REMOTAS
Para el caso de vistas remotas me he topado con el problema de "connection busy" que tanto figura en los foros
Lo cierto es que con vistas remotas, no puedo poner
DBSetProp('Ventas','View','FetchSize',100)
DBSetProp('Ventas','View','FetchAsNeeded',.T.)
DBSetProp('Ventas','View','SendUpdates',.T.)
DBSetProp('Ventas','View','MaxRecords',-1)
Esto da Connection Busy, a menos que ponga MaxRecords < FetchSize (lo cual no me sirve, justamente, quiero que los fetch, sean "AsNeeded")
Muchas gracias
Soy bastante nuevo con Fox y tengo un problema con tablas grandes en SQL.
Necesito abrirlas y modificarlas sin filtrarlas via Where.
He utilizado CursorAdapters - Vistas remotas y algunas pruebas con Pass-Through
Alguien sabe como obtener un cursor FOX modificable contra SQLServer de una tabla grande (500000 registros aprox) y que no tarde la apertura ?
No me importa la tecnologia a usar (cualquiera de las 3 que mencioné anteriormente está bien)
Algunas pruebas que ya he hecho las cuento a continuación
1) CURSOR ADAPTER
En el caso de cursor adapters
Necesito saber como hacer para que funcione la propiedad FetchAsNeeded
Parametrizo el recordset (loRS) de modo que el cursor sea en el Servidor y dinámico
loRS.CursorType = 2 && adOpenDynamic
loRS.CursorLocation = 2 && adUseServer
MiCursorAdapter.FetchAsNeeded = .T.
MiCursorAdapter.DataSource = loRS
El problema es que cuando ejecuto
MiCursorAdapter.CursorFill()
Se trae todos los registros !!!!! (me pregunto ¿ para que sirve la propiedad FeetchAsNeeded ?)
Esto es así ? (pareciera que el cursor fuera adUseClient adOpenStatic)
¿ Se puede lograr que los registros se traigan a medida que se necesitan usando ADO ? (esto es, FetchasNeeded = .T.)
Esto lo he resuelto en otro lenguaje y Recodsets de ADO pero no puedo con Cursoradapters
Fox exije (al menos eso creo) que los recordsets soporten bookmarks, pero esto hace lenta la apertura de una tabla grande, ya sea utilizando cursores en el servidor o en el cliente.
2) VISTAS REMOTAS
Para el caso de vistas remotas me he topado con el problema de "connection busy" que tanto figura en los foros
Lo cierto es que con vistas remotas, no puedo poner
DBSetProp('Ventas','View','FetchSize',100)
DBSetProp('Ventas','View','FetchAsNeeded',.T.)
DBSetProp('Ventas','View','SendUpdates',.T.)
DBSetProp('Ventas','View','MaxRecords',-1)
Esto da Connection Busy, a menos que ponga MaxRecords < FetchSize (lo cual no me sirve, justamente, quiero que los fetch, sean "AsNeeded")
Muchas gracias
Valora esta pregunta


0