Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Fox pro y SQL Server 2000
Message
From
30/07/2003 17:41:37
 
 
To
30/07/2003 17:09:20
General information
Forum:
Visual FoxPro
Category:
Other
Miscellaneous
Thread ID:
00814886
Message ID:
00815153
Views:
14
Hola Alexis tenemos varios puntos a tomar en cuenta en tu código que nos envias...
1.- En realidad necesitas todos (SELECT * ...) los campos de tu tabla de empleados?. Esta comprobado que reducir el numero de columnas que viajarán por el cable (o el aire) ayuda a que la consulta llegue al lado cliente de forma mas rapida y sin saturar la red.
2.- Necesitas tomar en cuenta el tema de parametrización, es sumamente importante en el esquema cliente-servidor que se consulten únicamente los registros que sean necesarios, en tu ejemplo estas haciendo viajar la tabla completa desde el servidor hacia tu cliente, esto es una perdida de tiempo y un desperdicio de recursos de red.
3.- De igual forma, para que quieres un producto cartesiano entre Empleados y Empresas?, no le veo forma de proceso de negocios.
4.- El hacer tu proceso en lote, es decir, bajar toda la información y procesarla después, te llevará a tu problema de inconsistencia de datos, ya que los procesos deberían de ser en linea.

A mi juicio deberías centrarte en optimizar los procesos en línea para que no fueran lentos, en estos momentos acabo de terminar un procedimiento que me calcula el adeudo algún contribuyente, en los casos mas drásticos se tarda 0.078 segundos en procesar todo (tanto la consulta en SQLServer como el procesamiento desde VFP), en una tabla de 160,000 contribuyentes contra otra de 400,000 de avaluos que hay que cotejar. No veo el por que deba de tardarse tanto el tuyo.

>el codigo es el siguiente
STORE SQLSTRINGCONNECT('dsn=conefox;uid=nn;pwd=nn') TO ln_sql

IF ln_sql <= 0
MESSAGEBOX('Imposible Conectar con base de datos Sql',48,'Master Retail')
ELSE
WAIT windows 'Buscando Informacion de Empleados...' nowait
lc_empleados = "select * from empleados order by compania,numep"
= SQLSETPROP(ln_sql, 'asynchronous', .F.)
= SQLEXEC(ln_sql, lc_empleados, 'LC_EMPLEADO1')

lc_emp = "select nombre,codigo,nomenc from empresa"
= SQLSETPROP(ln_sql, 'asynchronous', .F.)
= SQLEXEC(ln_sql, lc_emp, 'LC_EMPrEsa')
ENDIF

SELECT *, cia_autoriza as ciaa from LC_EMPLEADO1 INTO TABLE c:\LC_EMPLEADO

SELECT LC_EMPLEADO1
use
= SQLDISCONNECT(ln_sql)
>este es el codigo que utilizo, revise la estructura de la tabla y el campo mas grande es un char de 30....
Apoya a Visual FoxPro usandolo legalmente
--
¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º
Espartaco Palma Martínez
SysOp PortalFox
http://www.portalfox.com
esparta@portalfox.com
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform