Hola, a todos
Desde medidados del 2015 incursionamos en FoxyDB en nuestra empresa para migrar las tablas nativas a motor de datos.
Por la presión de los compromisos cotidianos no logramos avanzar mucho: Normalizamos las más de 300 tablas del sistema y generamos un módulo para cargar datos históricos de nuestros usuarios desde la vieja estructura de tablas libres al nuevo modelo de datos en MariaDB.
Posiblemente ahora tengamos el tiempo para migrar todo el sistema, y quisiera saber si en términos generales la comunidad recomienda la clase FoxyDB de Antonio Meza, o la clase SQLDATA de Germán F. Valdez.
Nuestros primeros pasos fueron con FoxyDB, y nos sentimos muy cómodos. La limitación es que aún no podríamos ofrecer SQL Server u Oracle a cierto perfil de usuarios potenciales de nuestro sistema.
Entiendo que SQLDATA no tiene ése problema, pero trabaja con Cursoradapter y algunos han comentado en éste foro que no es la opción más eficiente en términos de performance.
Independientemente de las opiniones que espero recibir del foro, asumo que los dos desarrollos son excelentes, y agradezco la generosidad de Antonio y German.
Saludos,
Diego.-
Gracias, Antonio.
Se trata de una aplicación grande, y no está muy ordenada. Sólo algunos módulos están desarrollados en capas (…los módulos desarrollados en los últimos años).
El nuevo modelo de datos que desarrollamos (MariaDB) es muy diferente al original (DBC), y por eso las consultas para la carga de los cursores son bastante complejas.
Muchas tablas acumulan millones de filas en pocos años, porque es un sistema de trazabilidad por RFID. (…queremos ser cuidadosos en la cantidad de filas que se cargan a los cursores, para poder abandonar al fin la tecnología RDP.)
Y generalmente hay muchos usuarios concurrentes, 24 x7.
Dudé antes de mandar el post, porque temía provocar un debate acalorado. Pero no hubo respuestas contundentes.
¿Sugerís que avancemos con FoxyDB?
Saludos , gracias.-
Hola Diego.
Comparto las palabras de Antonio, el buen uso de una tecnología hace a la eficiencia.
X otro lado, de querer salir de las tablas libres de VFP y aprender otro sistema de almacenamiento no elegiría nunca CursorAdapter, si me pondría a trabajar con algún motor SQL. Cuál elegir, depende de gustos y si se quiere gastar o no, en mi caso yo elegí Firebird dado q es totalmente gratis y trabaja tanto en Windows como en Linux y accedo al mismo a través de ODBC. Dicen q el trabajar con ADO sobre SQL es más rápido, pero requiere de más trabajo y en Firebird las librerías de ADO son pagas, x ahora lo desestimé totalmente.
Hace un tiempo atrás conversé con Pancho q ha trabajado con SQLServer a través de ADO, pero realmente es muy difícil precisar cuál es mejor.
En cuanto a q librería elegir, no he probado ninguna de las 2, pero es bueno agradecer a quienes decidieron gastar parte de su tiempo p hacer más fácil el acceso a los programadores de la comunidad VFP a los motores SQL.
Saludos
Esteban.
Gracias por la info, Germán
¿Vos crees que la performance de Cursoradapter no es mas baja en relación a SQLexec?
Saludos,
De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] En nombre de Germán Fabricio Valdez
Enviado el: martes, 27 de diciembre de 2016 10:26 p. m.
Para: Comunidad de Visual Foxpro en Español <publice...@googlegroups.com>
Asunto: [vfp] Re: FoxyDB VS. SQLDATA
la sqldata.dll usa proveedores de ADO (oledb y odbc) de 32 bits que proporcionan los motores de bases de datos, no es necesario comprar nada
el tema de la programacion cliente-servidor es tratar de traer la menor cantidad de registros posibles al cliente
yo he notado en pruebas, más velocidad en ADO que en ODBC pero trayendo 500.000 registros de un sql server 2000
en aquella epoca odbc traia mal la longitud de los campos
numericos y ado andaba perfecto , que se soluciono con la
aparicion de sqlncli en sql2005 en adelante, un driver tanto para
odbc como oledb
la sqldata tiene metodos que ocultan la complejidad de ADO y
cursoradapter, realmente nunca accedes a ADO ni a cursoradapter
con la clase
Gracias, Daniel y German
En nuestro caso, el problema es que las tablas SQL no corresponden al modelo de datos del sistema. Por eso, cada Cursor estaría generado mediante una consulta con muchas cláusulas JOIN y UNION.
Supongo que en ese caso, los cursoradapter no pueden actualizar la tabla SQL automáticamente, ¿verdad?
Saludos,
la sqldata esta preparada para actualizar solo una tabla de una base de datos, puede tener agregados campos de un inner join pero deben ser excluidos de la actualizacion
pero la sqldata tiene la opcion psqlejecutar("comando") donde envias los comandos update,insert,y delete personalizados
dentro de una misma transaccion
Muchas gracias, Mauricio, Daniel, Antonio y German!
Valiosísima información y notable el tiempo dedicado desinteresadamente a cada respuesta.
Creo que las dos clases merecen el trabajo de probarlas por separado, y que cualquier elección será buena.
Seguramente volveré a molestarlos en enero.
Saludos y feliz 2017
-----Mensaje original-----
De: publicesvfoxpro@googlegroups.com [mailto:publicesvfoxpro@googlegroups.com] En nombre de German Fabrcio Valdez
Enviado el: jueves, 29 de diciembre de 2016 1:14 a. m.
De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] En nombre de German Fabrcio Valdez
Enviado el: jueves, 29 de diciembre de 2016 1:14 a. m.