Hola a todos, hay que algo que me gustaria hacer y realmente no se me ocurre una forma optima para hacerlo. Actualmente uso FoxyDB para las conexiones con SQL y quiero hacer algo como esto (es solo un ejemplo, pero es basicamente esto lo que quiero hacer):
Tengo el siguiente cursor en VFP
select .t. as lsel,;
idcodigo;
from mitabla
into cursor c_codsel Readwrite
y luego creo la siguiente variable con la consulta sql
TEXT to lnPersona noshow
SELECT
idcodigo ,
Ltrim(Rtrim(Ltrim(Rtrim(sAPellido1))+Isnull(' '+Ltrim(Rtrim(sApellido2)),'')+', '+Ltrim(Rtrim(sNombres)))) as sEmpleado
from Persona
ENDTEXT
oConn.Query(
lnPersona ,"c_DatosPersona","Persona")
(Obviamente para este momento ya tengo la conexion creada con foxyDB)
La idea es que mi cursor c_CodSel puede traer una cantidad x de registro y el usuario puede cambiar el campo lsel de .t. a .f. y quisiera que la consulta que realizo en SQL solo traiga los codigos que en el cursor anterior esten .t.
Esto lo he hecho utilizando el in de sql. Por ejemplo
hago un scan en el cursor c_COdSel, guardo los codigos en una variable que se llama lcCodsel separado por coma y funciona a la perfeccion
from Persona
where idCodigo in (<<lcCodSel>>)
Cual es mi inconveniente en este momento, que el cursor de VFP puede tener 10 mil, 12 mil, incluso 100 mil registros y el usuario de diferentes formas puede seleccionar solo algunos de esos registros y esos son los que me interesa traer directamente desde SQL.
- Hay alguna forma mas optima para hacer esto o seria obligatoriamente usar el in????
- Este in, tiene alguna limitante de cantidad de registros que puedo enviar??? Si no me equivoco, el inlist de VFP (que seria mas o menos esto mismo en SQL) creo que tiene un limite de 24 parametros a enviar.
Espero que hayan entendido mi duda. Gracias por todo