Necesito Migrar de VFP6 a VFP9 y tengo unos select con group by a la vieja usansa. ¿Qué puedo hacer para poder mantenerlos como están? Leí de la existencia de un comando llamado SET ENGINEBEHAVIOR Gracias
1 respuesta
Respuesta de Cesar RalFito
1
1
Cesar RalFito, Ing. de Sistemas Jefe de Automatizacion Registro Civil...
Las funciones agregadas y GROUP BY Esto ha atrapado a muchos desarrolladores VFP, especialmente desde VFP 8.0, que fue donde apareció por primera vez. En versiones anteriores, la sintaxis siguiente estaba admitida: SELECT Country, City, AVG(Inv_Total) FROM Invoices GROUP BY Country Sin embargo, aunque es legal, la sintaxis provocará datos potencialmente incorrectos. En el ejemplo de arriba, VFP va a seleccionar una ciudad arbitraria para que se corresponda con cada país, incluso aunque ese país pueda tener muchas ciudades. SQL ANSI-92 impone una regla muy sencilla: si la consulta tiene cláusula GROUP BY. T-SQL fuerza estrictamente esa regla, como hace VFP 8.0, 9.0 y superior, pero las versiones anteriores de FoxPro no (en VFP 8.0 y superior, puede sobreescribir este comportamiento estableciendo ENGINEBEHAVIOR 70). Usa esto * METODO: SQL COMPATIBLE LOCAL lnversion ***** lnversion = VERSION(5) ***** IF lnversion >= 8 *SET ENGINEBEHAVIOR 70 && hace lo mismo que el paso seguiente SYS(3099,70) ENDIF NOTA: EJECUTE ESTA RUTINA AL INICIO DEL SISTEMA **** * METODO: SQL_RESTABLECER **** LOCAL lnversion ***** lnversion = VERSION(5) ***** IF lnversion >= 8 *SET ENGINEBEHAVIOR 80 && hace lo mismo que el paso seguiente SYS(3099,80) Endif Nota: ejecuta esta rutina al final de tu sistema Atentamente. Fitocava