FoxPro/Visual FoxPro - Sql a cursor o tabla

 
Vista:

Sql a cursor o tabla

Publicado por ANTONIO MARTIN (55 intervenciones) el 03/11/2008 21:59:59
Saludos a todos, tengo una base de datos con 6 campos y 1,400,000 registros, esta informacion la quiero mostrar en un grid, haciendo pruebas en una red me hace lo siguiente: Utilizando SELECT * FROM MIBASE WHERE CODIGO="0001" INTO CURSOR BASETEM, independientemente del numero de concidencias lo carga rápido directamente en un browse pero en el grid dura hasta un minuto en cargarse, obviamente tengo el RECORDSOURCETYPE=4 y RECORSORUCE=[SELECT * FROM MIBASE WHERE CODIGO="0001" INTO CURSOR BASETEM], algo que tambien observo es que en barra de mensajes me indica el numero de registros encontrados en un tiempo maximo de 3 segundo, pero vuelvo a comentarles el grid se queda en blanco y hasta despues de casi un minuto me nuestra la informacion.
En cambio en lugar de mandar el resultado a un cursor lo envio a una tabla tengo que esperar a que procese toda la base y entonces si me muestra de manera rapida la informacion en el grid. Les progunto saben porque enviando a cursor y lo despliego en un browse me lo hace rápido y dilate al cargarlo en el grid, o si lo hago por tabla como puedo hacelerar el proceso, de antemano 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

RE:Sql a cursor o tabla

Publicado por Edgar dvd (135 intervenciones) el 03/11/2008 23:07:58
utilzia este metodo amigo haber si te agiliza algo

Select Campo1,Campo2,Campo3 From MiTabla Into Cursor Temporal
ThisForm.Grid1.RecordSouce = ''
ThisForm.Grid1.RecordSouceType = 1
ThisForm.Grid1.RecordSouce = 'Temporal'
ThisForm.Grid1.Colum1.ControlSource = 'Temporal.Campo1'
ThisForm.Grid1.Colum2.ControlSource = 'Temporal.Campo2'
ThisForm.Grid1.Colum3.ControlSource = 'Temporal.Campo3'
***Esta linea la repites por cada campo a mostrar en el grid
ThisForm.Grid1.SetFocus

recuerda que como haces esto debe tener diseñado tu grid con las columas que vas a mostrar porque si no te marcara error

te debe dar mejor resultado
suerte
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

RE:Sql a cursor o tabla

Publicado por TITO (311 intervenciones) el 04/11/2008 01:09:37
Antonio:
No puedes dejar de ver este sitio:
http://www.fpress.com/revista/Num0902/xyart4.htm

Si te sirvio, me cuentas,
TITO
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

RE:Sql a cursor o tabla

Publicado por ANTONIO MARTIN (55 intervenciones) el 04/11/2008 02:37:34
Gracias por su pronta respuesta, Edgar ya hice lo que me sugieres pero sigo con el mismo problema no se actualiza rapido el grid y en cambio por el browse es rápido; Tito excelente información pero no me ayuda por el momento, estoy seguro que pronto lo utilizare, gracias. Les puse en un espacio de Diino un archivo zip el cual contine la base de datos y un formulario de prueba para que lo revisen espero me puedan ayudar la dirección es:

http://cmarkvirtual.diinoweb.com/files/

Ahi aparece el archivo y lo pueden descargar. nuevamente gracias espero sus comentarios....
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: 4
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

RE:Sql a cursor o tabla

Publicado por kong (682 intervenciones) el 04/11/2008 21:10:55
tal vez funcione con SET OPTIMIZE ON

............
por si acaso, talvez seteastes para que las tablas y archivos temporales se alojen en algun sitio que tengan que pasar lo la red.
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

RE:Sql a cursor o tabla

Publicado por ANTONIO MARTIN (55 intervenciones) el 04/11/2008 22:18:45
Gracuas Kong por contestar, ya probe con lo de SET OPTIMIZE ON y nada todo sigue igual y tambien verifique que mi directorio de archivos y tablas temporales esta en C:WINDOWSTEMP, ahora te recuerdo que cuando envio el SELECT... INTO CURSOR y enseguida ejecuto un BROWSE me lo hace rápido, tambien he seguido jugando y resulta que si consulto el resultado en un TEXT o lo mando a un COMBO tambien me lo hace rápido, ojala y tengan alguna otra sugerencia, Gracias....
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: 4
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

RE:Sql a cursor o tabla

Publicado por kong (682 intervenciones) el 05/11/2008 20:54:40
hola.
entonces parece que lo ideal es el LISTBOX
. primero la consulta SQL en un cursor, luego ponerlo en el LIST y un REQUERY
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

QUE CREEN LIXTO EL POLLO

Publicado por ANTONIO MARTIN (55 intervenciones) el 06/11/2008 19:29:28
Gracias a quienes me contestarón, con sus sugerencia y que me la pase jugando encontre el problema se los comento para si alguien en alguna ocacion lo ocupa aqui esta:

Fué algo tan simple que, cuando se ejecuta un SELECT * FROM MIBASE WHRE CODIGOARTI="00001" INTO CURSOR MICURSOR, en teoria debia de mandarlo al cursor MICURSOR, pues en primera apariencia si lo hace si verificamos el ALIAS(), pero si consultamos el DBF(), realmente sigue leyendo la base de donde se consulta MIBASE, y no el archivo temporal que deberia de crear VFP en la carpeta temporal; es por ello que el BROWSE si lo abria rápido pero el grid no, lo único que hice fue aumentar un nombre a cualquir campo en la consulta de la siguiente manera SELECT CODIGOCOMP AS CODIGO, CODIGOARTI, CANTIDDECO FROM MIBASE WHERE CODIGOARTI="0000" INTO CURSOR MICURSOR y lixto el ALIAS() me regresa MIBASE, el DBF() C:WINDOWSTEMPARCHIVOTEMPORAL, y la consulta me la ejecuta igual de rapido que el BROWSE.

Nuevamente gracia a todos pero esto yo no lo sabia, ni modo "ahora soy mas ignorante", Saludos....
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