FoxPro/Visual FoxPro - SQL Server con tablas grandes

 
Vista:

SQL Server con tablas grandes

Publicado por Alejo (3 intervenciones) el 23/01/2007 13:36:04
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 ni parámetros en vistas remotas.

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 !!!!! (como si FeetchAsNeeded no tuviera efecto)

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder