Cual es la capacidad de un GRID y Pregunta de SQL

24/10/2004 - 03:30 por jesus | Informe spam
Que tal camaradas del foro del foro.

Ayuden a este pobre novato que empieza a dar sus primeros pininos en FOX.
Tengo 3 preguntas las cuales son muy concretas y van de la mano.

Pregunta número 1:
¿Cual es la capacidad de registros que soporta un GRID para
visualizar?. Lo he intentado en una tabla de 18 filas con 140,000
registros aprox. y creo que sobrepasa los límites del GRID puesto que el
sistema deja de responder cuando trato de visualizar los datos de esta
manera.

No es que necesite todos esos registros y tampoco visualizar todas
las columnas pero me interesa saber que holgura de registros puedo
utilizar en un GRID en un determinado momento.

Pregunta número 2:
¿Como puedo asignar una consulta SQL a un GRID por medio de código?.
No deseo utilizar el generador para asignar una consulta, tabla y demás
debido a que el nombre de la tabla es dinámico y al hacerlo por medio del
generador, en el momento de que busque la tabla y si ésta ha cambiado de
nombre me podría marcar error.

Pregunta número 3:
¿Es posible crear una consulta o instrucción SQL por medio de una
variable?, como por ejemplo algo asi:

Variable1 = "nombre LIKE 'RODRIGO%' OR salario >= 1200"
SELECT nombre, apellidos, domicilio FROM Base_de_Datos!Tabla WHERE
Variable1

o como:

Variable2 = "nombre, apellidos, domicilio"
SELECT Variable2 FROM Base_de_Datos!Tabla WHERE nombre LIKE 'RODRIGO%' OR
salario >= 1200

.. como sea, si alguien pudiese despejar estas dudas se los agradecería
muchisimo.

-
PortalFox :: Nada corre como un zorr
http://www.portalfox.co

PortalFox - NNTP Forum Gatewa

Preguntas similare

Leer las respuestas

#1 Luis María Guayán
24/10/2004 - 04:49 | Informe spam
Hola Jesús, no es bueno unir varias preguntas en un mismo hilo, haz una pregunta
por hilo.

Vamos a las preguntas:

1. Creo que la capacidad de un grid esta dada por el usuario, no creo que haya
ninguno con la capacidad de ver 140.000 líneas con 18 columnas :-) Un control
Grid es un contenedor de objetos, que tiene los objetos columnas, cabeceras y
por cada registro, un control asociado, o sea que en tu ejemplo el número de
objetos seria igual a la suma de 1 grid + 18 columnas + 18 cabeceras +
18*140.000 controles, que da un total de 2.520.037 objetos que deben ser
"levantados" por tu formulario.

2. Para asignar una sentencia SQL como origen de datos de un control Grid, debes
configurar las propiedades:

RecordSourceType = 6 && Sentencia SQL
RecordSource = [SELECT nombre, apellidos, domicilio FROM Tabla]

3. Si es posible crear consultas con variables utilizando Macrosustitucion (ver
en la ayuda de VFP el tema "Sustitución de Macro")

Ej:
lcVar1 = "nombre LIKE 'RODRIGO%' OR salario >= 1200"
SELECT nombre, apellidos, domicilio FROM Base_de_Datos!Tabla WHERE &lcVar1

lcVar2 = "nombre, apellidos, domicilio"
SELECT &lcVar2 FROM Base_de_Datos!Tabla WHERE nombre LIKE 'RODRIGO%' OR salario
= 1200



Y tambien puedes hacer:

lcVar1 = "nombre LIKE 'RODRIGO%' OR salario >= 1200"
lcVar2 = "nombre, apellidos, domicilio"
SELECT &lcVar2 FROM Base_de_Datos!Tabla WHERE &lcVar1

Luis María Guayán
Tucumán, Argentina
________________________________
SysOp de www.PortalFox.com
Microsoft Visual FoxPro MVP
________________________________
La palabra imposible solo figura
en el diccionario de los tontos

"jesus" escribió en el mensaje
news:eS1H$
Que tal camaradas del foro del foro.

Ayuden a este pobre novato que empieza a dar sus primeros pininos en FOX.
Tengo 3 preguntas las cuales son muy concretas y van de la mano.

Pregunta número 1:
¿Cual es la capacidad de registros que soporta un GRID para
visualizar?. Lo he intentado en una tabla de 18 filas con 140,000
registros aprox. y creo que sobrepasa los límites del GRID puesto que el
sistema deja de responder cuando trato de visualizar los datos de esta
manera.

No es que necesite todos esos registros y tampoco visualizar todas
las columnas pero me interesa saber que holgura de registros puedo
utilizar en un GRID en un determinado momento.

Pregunta número 2:
¿Como puedo asignar una consulta SQL a un GRID por medio de código?.
No deseo utilizar el generador para asignar una consulta, tabla y demás
debido a que el nombre de la tabla es dinámico y al hacerlo por medio del
generador, en el momento de que busque la tabla y si ésta ha cambiado de
nombre me podría marcar error.

Pregunta número 3:
¿Es posible crear una consulta o instrucción SQL por medio de una
variable?, como por ejemplo algo asi:

Variable1 = "nombre LIKE 'RODRIGO%' OR salario >= 1200"
SELECT nombre, apellidos, domicilio FROM Base_de_Datos!Tabla WHERE
Variable1

o como:

Variable2 = "nombre, apellidos, domicilio"
SELECT Variable2 FROM Base_de_Datos!Tabla WHERE nombre LIKE 'RODRIGO%' OR
salario >= 1200

.. como sea, si alguien pudiese despejar estas dudas se los agradecería
muchisimo.


PortalFox :: Nada corre como un zorro
http://www.portalfox.com

PortalFox - NNTP Forum Gateway
Respuesta Responder a este mensaje
#2 Luis María Guayán
24/10/2004 - 05:02 | Informe spam
FE DE ERRATAS

Donde dice:
RecordSourceType = 6 && Sentencia SQL

Debe decir:

RecordSourceType = 4 && Sentencia SQL

Luis María Guayán
Tucumán, Argentina
________________________________
SysOp de www.PortalFox.com
Microsoft Visual FoxPro MVP
________________________________
La palabra imposible solo figura
en el diccionario de los tontos
Respuesta Responder a este mensaje
#3 jesus
25/10/2004 - 00:15 | Informe spam
Gracias a los dos por ayudarme.

He de confesar utilice un poco de los dos para hacer esto, con el ejemplo
de Luis Maria realizaba algo como esto en mi consulta:
Ruta = "C:\pruebas\MiTabla"
vCond = "nombre LIKE " + ALLTRIM(ThisForm.ThisForm.Id_Empleado.Value)

ThisForm.Grid1.RecordSource = [select id_empleado, nombre, apellido,
puesto from &Ruta WHERE &vCond]

pero tenia el problema de que me aparecia una ventana encima de la forma
que era exactamente identica a la del grid lo cual no deseaba. Intenté
agregar la clausula NOCONSOLE pero me daba algunos problemas, después
utilicé la técnica de colocar el CURSOR de Fernándo y pude corregir ese
pequeño problema,

Método Load de la forma:

ThisForm.Grid.RecordSourceType = 0

CREATE CURSOR tEmpleados ;
(nombre C(40))

y después en el método Init del Grid

This.RecordSource = ""

para eliminar cualquier valor y dejar una imagen de la tabla creada con el
cursor puesto que del otro modo el grid no se ve muy estetico, recuerden
que a final de cuentas lo que le gusta al usuario es algo bonito y fácil
de usar ;b.

Luego en el botón para realizar la consulta reasigne la variable del
cursor con una consulta SQL, sin olvidar cambiar la propiedad
RecordSourceType = 4 del grid en cuestión:

tEmpleados = [SELECT id_empleado, nombre, apellido, puesto FROM Ruta INTO
CURSOR tEmpleados WHERE vCond]

ThisForm.Grid.RecordSourceType = 4
ThisForm.Grid.RecordSource = tEmpleados

pero me resultó que como habia creado el cursor con una sola columna
sole esa es la que visualiza, con esto le dí un poco de éstetica al Grid
visualizando un campo cuando el usuario visualiza la forma y también
eliminé la aparición de la ventana que se crea al utilizar una consulta
SELECT. Pero me surgio el problema que solo visualizo el campo que cree
con el CURSOR y su información, voy a seguir intentando para resolver
ahora este pequeño problema...

Gracias por su ayuda, por lo menos ya tengo una noción un poco más clara
del objeto Grid XD

-
PortalFox :: Nada corre como un zorr
http://www.portalfox.co

PortalFox - NNTP Forum Gatewa
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida