FoxPro/Visual FoxPro - Consulta SQL

 
Vista:
sin imagen de perfil
Val: 96
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Consulta SQL

Publicado por roberto (55 intervenciones) el 24/01/2020 20:23:42
Siguiendo con la exploración de VFPy SQL, me encontré con un problema, como paso el resultado de una consulta efectuada mediante una sentencia SQL a una variable de memoria???

Estos, debido a que el resultado lo veo en una ventana como la mostrada en la imagen

select campo from tabla where condicion


consulta
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
Imágen de perfil de Leonardo Daniel A.
Val: 1.115
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Consulta SQL

Publicado por Leonardo Daniel A. (497 intervenciones) el 24/01/2020 22:24:38
a un cursor o un DBF cursor son tablas temporales, que al cerrarlas se borran del disco duro y memoria

1
2
3
4
5
6
7
select count(rfc) as total from historial_empleado where rfc ='XXXXXX' into cursor curDatos
 
IF _tally = 0
    wait wind 'No se encontraron datos'
ELSE
    wait wind 'Se encontraron ' + Str(total,8) + ' registros'
END IF
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
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Consulta SQL

Publicado por Fidel José (657 intervenciones) el 24/01/2020 22:41:08
Cuando no indicas la cláusula INTO, VFP crea un cursor y te muestra la respuesta en un browse.

select campo from tabla where condicion into array laResp && genera un array de respuesta

select campo from tabla where condicion INTO CURSOR curCreate READWRITE && crea el cursor curCreate
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
sin imagen de perfil
Val: 96
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Consulta SQL

Publicado por roberto (55 intervenciones) el 25/01/2020 00:13:56
Gracias por las respuestas pero lo que necesito es cargar e una variable de memoria ese numero que responde... 8853 en una variable de memoria.

Si lo cargo en un cursor, como lo saco de ahí... no se si me explico
que una variable m.codequ contenga el 8853
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
Imágen de perfil de Leonardo Daniel A.
Val: 1.115
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Consulta SQL

Publicado por Leonardo Daniel A. (497 intervenciones) el 25/01/2020 04:33:53
mmm pues asi como ya te lo dije, lo guardas en el cursor

y luego dices

miVariable = MiCursor.Total
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
sin imagen de perfil
Val: 96
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Consulta SQL

Publicado por roberto (55 intervenciones) el 25/01/2020 11:20:10
Bien , me funciono. Me apareció otro inconveniente, pero debo hacer otras pruebas a ver si lo soluciono de lo contrario estaré preguntando de nuevo.

Gracias por las respuestas fueron de gran utilidad en este proceso de aprendizaje y cambio que esto haciendo
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
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Consulta SQL

Publicado por Fidel José (657 intervenciones) el 25/01/2020 15:18:14
Para el caso en que se busca un dato único, puede ser útil lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
* Se deben definir los valores de Campo, Tabla y Condición
* En este ejemplo, supuestamente se espera un valor String como respuesta
* La respuesta del array se asigna a una variable de memoria
 
PROCEDURE BUSCAR
*---------------
LPARAMETERS tcTabla,tcCampo,tcCondicion
LOCAL lcRespuesta
LOCAL ARRAY laResp(1)
lcRespuesta = ""
SELECT &tcCampo FROM &tcTabla WHERE &tcCondicion INTO ARRAY laResp
IF !EMPTY(_tally) && _Tally es una variable del sistema que informa la cantidad de filas obtenidas
	lcRespuesta = NVL(TRIM(laResp[1,1]),"")	&& El array podría traer un valor .NULL.
ENDIF
RETURN m.lcRespuesta
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
sin imagen de perfil
Val: 96
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Consulta SQL

Publicado por roberto (55 intervenciones) el 27/01/2020 01:17:16
Gracias, gracias, gracias, he aplicado todo lo que me han indicado y mucho mas y la verdad que la pega de acceder a información a las tablas con sentencias sql facilita todo.

Solo una pequeña duda o aclaración, al hacer una consulta si la cierro la información se pierde aunque la pase a una variable de memoria.
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
Imágen de perfil de Leonardo Daniel A.
Val: 1.115
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Consulta SQL

Publicado por Leonardo Daniel A. (497 intervenciones) el 27/01/2020 16:59:50
si lo pasas a variables nop, las variables siguen en memoria

de hecho, podrias hacer un


SCATTER memvar && esto te pasa los campos que tengas en la tabla del registro actual a variables de memoria

y para acceder a ellas usas

m.Tu_campo1
m.Tu_campo2

y aunque cierres la tabla o el cursor, las variable siguen en memoria
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