Ejemplo de Begin Transaction usando Cursoradapter

515 views
Skip to first unread message

Mario Escudero

unread,
Apr 11, 2016, 10:23:51 PM4/11/16
to Comunidad de Visual Foxpro en Español
Buenas noches:
Alguien tendrá algún ejemplo ?
Gracias
Saludos

Víctor Hugo Espínola Domínguez

unread,
Apr 12, 2016, 12:23:05 AM4/12/16
to publice...@googlegroups.com
Hola Mario

Adjunto una clase de capa de datos y de cursor adapter creado por código, modificado de una clase de Cetin Basoz. Yo uso xml para transferir datos entre las capas, pero se puede simplificar compartiendo directamente los cursores creados.

Para traer datos desde el servidor uso SPT y solo para grabar, y no en todos los casos uso cursor adapter, mira el código y si te gusta el estilo te ayudo a implementarlo.


Saludos,
Víctor.
Lambaré - Paraguay.

vhecageneric.prg
vtacapadatos.prg

Mario Escudero

unread,
Apr 12, 2016, 8:17:01 AM4/12/16
to publice...@googlegroups.com
Hola Victor:
Qué parte de todo el código de ambos prg habría que usar?
O mejor dicho, en qué parte de mi programa tendría que adaptar este código?
No sería algo tan sencillo como grabar el CA con tableupdate(.f.,.t.) y que se actualice en en SQL?
Eso lo hago pero no sé cómo podría aplicar el Begin Transaction...
Gracias


----
Mario Escudero
Mov 995-817087  Rpm #995817087 

Antonio Meza

unread,
Apr 12, 2016, 12:07:27 PM4/12/16
to Comunidad de Visual Foxpro en Español
Mario!!!

Que servidor de base de datos vas a usar? es un proyecto nuevo? te recomiendo FoxyDb si vas a usar MariaDb, MySql o Firebird, es mas sencillo FoxyDb que cursorAdapter e incluso mas rápido porque se manejan las conexiones y transacciones nativas de cada servidor de base de datos, a diferencia de CA que usa las estandar SQL.


Nota: FoxyDb es una capa de acceso a datos.

saludos
Antonio Meza

Víctor Hugo Espínola Domínguez

unread,
Apr 12, 2016, 12:07:41 PM4/12/16
to publice...@googlegroups.com
Hola Mario

El código que te envié es más para que le eches una miradita y tratar de entender la técnica involucrada, falta una clase que la enviaré lo antes posible, con esas tres clases ya podrás probarlas desde la ventana de comandos.

Revisa el método GrabarFactura de vtaCapaDatos.prg, éste parte de la premisa de que se va grabar una factura nueva, es para un punto de venta tipo supermercado, antes de grabar la cabecera obtiene el número de factura que le corresponde (una combinación de número de sucursal, número de terminal y un correlativo), una vez grabada la cabecera obtiene el ID generado para usarlos como FK en las tablas de detalle y pagos, no hace actualización de stock que no es buena idea en un punto de venta de alta concurrencia.



Saludos,
Víctor.
Lambaré - Paraguay.


Mario Escudero

unread,
Apr 12, 2016, 1:36:03 PM4/12/16
to publice...@googlegroups.com

Hola Antonio:
Pienso actualizar mi sistema de restaurantes que la tengo con tablas libres usando Cursoradapter y SQL que es la BD con la que estoy familiarizado.
Gracias
Saludos

Mario Escudero
Rpm #995817087
www.cheff2000.com

Enviado desde mi móvil

Víctor Hugo Espínola Domínguez

unread,
Apr 12, 2016, 3:21:32 PM4/12/16
to publice...@googlegroups.com
Ahí va la clase faltante.


Saludos,
Víctor.
Lambaré - Paraguay.


gencapadatos.prg

Antonio Meza

unread,
Apr 12, 2016, 4:17:56 PM4/12/16
to Comunidad de Visual Foxpro en Español
te recomiendo inviertas un poco mas de tiempo incluso usando CursorAdapter y te cambies a un servidor de base de datos!!

saludos
Antonio Meza

Mario Escudero

unread,
Apr 12, 2016, 4:30:13 PM4/12/16
to publice...@googlegroups.com

No entiendo bien.
Qué diferencia hay entre un Servidor de BD y el SQL que tengo instalado?
Gracias

Mario Escudero
Rpm #995817087
www.cheff2000.com

Enviado desde mi móvil

Antonio Meza

unread,
Apr 12, 2016, 5:00:08 PM4/12/16
to Comunidad de Visual Foxpro en Español
cuando dices SQL te refieres a SqlServer?

saludos

Mario Escudero

unread,
Apr 12, 2016, 5:11:50 PM4/12/16
to publice...@googlegroups.com
sip


----
Mario Escudero
Mov 995-817087  Rpm #995817087 

Mario Escudero

unread,
Apr 12, 2016, 5:12:01 PM4/12/16
to publice...@googlegroups.com
SQL 2014


----
Mario Escudero
Mov 995-817087  Rpm #995817087 

Antonio Meza

unread,
Apr 12, 2016, 5:24:45 PM4/12/16
to Comunidad de Visual Foxpro en Español
jajaja eso ya cambia jajaja SQL se refiere al estándar de acceso y manejo de los datos, y ya cada servidor de base de datos tiene su nombre o marca, SqlServer, MySql, MariaDb, FireBird, etc, es mejor que te refieras a SqlServer como tal y no solo Sql porque se confunde jejeje

saludos

Mario Escudero

unread,
Apr 17, 2016, 12:01:44 PM4/17/16
to publice...@googlegroups.com

Hola Antonio:
Estoy leyendo todo sobre FoxyDb y me parece fabuloso!
Mas bien, una consulta, no he visto si se puede trabajar con SQL Server, ya que he hecho algunas cosas con la versión 2014.
Gracias
Saludos

Mario Escudero
Rpm #995817087
www.cheff2000.com

Enviado desde mi móvil

Antonio Meza

unread,
Apr 18, 2016, 10:10:09 AM4/18/16
to Comunidad de Visual Foxpro en Español
Con SqlServer no esta terminado, como no lo uso no he tenido necesidad y hacen falta varios detalles para agregarlo.

saludos
Antonio Meza

Mario Escudero

unread,
Apr 18, 2016, 3:18:33 PM4/18/16
to publice...@googlegroups.com

Entonces qué motor de BD me recomendarías? MariaDb?
Gracias

Mario Escudero
Rpm #995817087
www.cheff2000.com

Enviado desde mi móvil

Antonio Meza

unread,
Apr 18, 2016, 4:07:08 PM4/18/16
to Comunidad de Visual Foxpro en Español
ya es cuestión de gustos, de momento estoy usando MariaDb 10.0.24, ya salio la 10.1 pero no he realizado pruebas.

También esta Firebird.

saludos
Antonio Meza

Arnaldo Toledano

unread,
Apr 19, 2016, 4:41:28 PM4/19/16
to publice...@googlegroups.com
Antonioa.
Que ventajas hay entre la versión 5.X y las versión 10.x de MariaDB????

Arnaldo Toledano

Antonio Meza

unread,
Apr 19, 2016, 5:35:01 PM4/19/16
to Comunidad de Visual Foxpro en Español
ufff son un montón de mejoras!!!

Date una vuelta por este link

saludos
Antonio Meza

mapner

unread,
Apr 19, 2016, 5:46:22 PM4/19/16
to Comunidad de Visual Foxpro en Español
Humilde recomendacion de mi parte, si estás comenzando con bd cliente servidor te sugiero Firebird. Muy simple de instalar y de usar, muy potente, amplia portabilidad , sencilla administracion... A la vez te recomiendo el blog de Walter Ojeda Valiente sobre Firebird.

Saludos

Antonio Meza

unread,
Apr 19, 2016, 6:14:45 PM4/19/16
to Comunidad de Visual Foxpro en Español
Y ademas ya salio la versión 3 de firebird jejeje

MariaDb es aun mas sencilla de instalar que firebird, y trae en la propia instalación HeidiSql que sirve para administrar de forma sencilla. Actualmente uso la versión 10.0.24, pero ya esta la versiones 10.1.13 hay cambios importantes entre la 10.0 y la 10.1 aun no he realizado pruebas con la 10.1

Por eso FoxyDb funciona con MariaDb, Mysql y Firebird porque son los motores que uso.

saludos
Antonio MEza

Mario Escudero

unread,
Apr 19, 2016, 6:35:31 PM4/19/16
to publice...@googlegroups.com
Gracias mapner. 
Por mi parte me quedaré con MariaBD debido a que ya comencé con ella y me siento bastante cómodo. 
Un excelente tutorial es el siguiente:
Gracias nuevamente
Saludos


----
Mario Escudero
Mov 995-817087  Rpm #995817087 

mapner

unread,
Apr 19, 2016, 11:22:07 PM4/19/16
to Comunidad de Visual Foxpro en Español
Antonio, sin ánimo de que todo comentario se convierta en una competencia interminable, porque dices que MariaDB "es más facil de instalar" que Firebird? 
Te basas en algún artículo especializado en el tema? 
- MaríaDB download W 64 msi 93MB
- Firebird download W 64 msi 9MB (y si le agregásemos Administrador como Flamerobin + driver ODBC y algún otro utilitario no llegaría a los 20 MB)

- MaríaDB espacio de disco requerido 270MB
- Firebird espacio de disco requerido 18MB

Esto en realidad no dice nada, cada producto es bueno en lo suyo y tiene sus méritos. Luego, es gusto de cada uno.

Carlos Miguel FARIAS

unread,
Apr 20, 2016, 7:03:36 AM4/20/16
to Grupo Fox
Comparando ...
también...
o también...

Tal como dice Mapner

Firebird es una opción a tener en cuenta por dos razones fundamentales.
El volumen de la instalación es mínima, comparada con otros motores.
Y ES LA UNICA QUE NO NECESITA SERVIDOR!!!

Por lo que si estamos hablando de aplicaciones para pocos usuarios (menos <100, aunque aguanta hasta unos 1000) donde no tienes personal dedicado a mantenimiento de la BD, Firebird puede resultar una buena opción.

Cuando nosotros seleccionamos postgresql, entre otras cosas, lo hicimos por el manejo de datos espaciales (georeferenciados), tipos de datos especiales (como columnas de arrays dinámicos, entre otros), datos numéricos con casi 100.000 dígitos (con la inflación uno nunca sabe ;-D).

Además postgresql permite que los procedimientos almacenados se escriban en un lenguaje propio pero admite que se escriban p.e. en python, que es el lenguaje seleccionado para desarrollo.

Tenemos la ventaja de que contamos con área de personal que puede gestionar los servidores

Saludos: Miguel, La Pampa (RA)

Larga Vida y Prosperidad
Que la Fuerza los acompañe, el tamaño del zapato no importa, lo que importa es que te sea cómodo.

Mario Escudero

unread,
Apr 20, 2016, 8:09:45 AM4/20/16
to publice...@googlegroups.com
Buenos días:
Hasta cuántos Gb puede tener la BD en ambos motores?
Gracias
Saludos


----
Mario Escudero
Mov 995-817087  Rpm #995817087 

mapner

unread,
Apr 20, 2016, 8:55:01 AM4/20/16
to Comunidad de Visual Foxpro en Español
Hoy en día FB, MDB y PG tienen tamaño de BD limitado solo por el sistema operativo y la capacidad de discos.

En cuanto a tamaño por tabla FB 32TB , MDB 256TB , PG 32TB
(si alguien del foro tiene una tabla de 32TB o más, nos avisa y mandamos a los inspectores de Record Guiness)

Coincido con los dichos de Miguel sobre FB y PG, solo que cuando dice que FB no requiere servidor, se debe referir al bajo mantenimiento, pero FB si requiere servidor (es un SGBD cliente / servidor con todas las de la ley). En FB (como en la gran mayoría de SGBD) disponer de buen hardware como procesador, RAM y discos adecuados, influye en el rendimiento. Tengo sistemas corriendo con FB con más de 500 conexiones simultáneas y en esos casos el "fierro" importa. 
Pero si vas a correr con mínimas conexiones (digamos hasta 20) puede instalarse en cualquier PC hasta con W XP y trabajará OK.

Saludos

Mario Escudero

unread,
Apr 20, 2016, 9:22:07 AM4/20/16
to publice...@googlegroups.com

Excelente información mapner.
Otra consulta: Cómo sueles conectar los usuarios al sistema principal? Por Unidad de Red (cableado), Conexión a Escritorio Remoto u otro?
Lógicamente me refiero a los terminales físicamente ubicados en el mismo local o empresa.
Gracias

Mario Escudero
Rpm #995817087
www.cheff2000.com

Enviado desde mi móvil

mapner

unread,
Apr 20, 2016, 10:21:40 AM4/20/16
to Comunidad de Visual Foxpro en Español
Mario,

La comunicación de las BD Cliente Servidor es por un servicio TCP/IP , esto puede ser por LAN directo (dentro del mismo edifico) o por WAN (generalmente VPN).
El acceder vía WAN a BD C/S más allá del tema seguridad, tiene que ser revisado por un tema de rendimiento. Hacer una consulta en WAN que retorne 100.000 registros no es una buena idea.
Tu sistema tiene que ser re-diseñado para paginar las consultas y enviar la mínima cantidad de datos en cada transmisión de ida y vuelta.

Si tu sistema ya tiene un diseño complicado para WAN se puede usar RDP. Esto es, instalar un servidor Terminal Service y los clientes accederán por escritorio remoto. Luego los datos correrán de la aplicación en TS al servidor BD por red LAN. Es una buena solución pero tiene el tema del costo de la licencia TS por cada usuario que ingresa.

Otras alternativas es rediseñar el sistema en capas en un solo entorno o en un multi-entorno.

Por ejemplo tu sistema cliente podría ser Desktop VFP y tu proveedor de datos podría ser una aplicación RESTful (que retorne datos en JSON o XML) la que puede estar desarrollada en: ??? (JAVA, PHP, Python, Ruby, .NET, ...)

Saludos

Antonio Meza

unread,
Apr 20, 2016, 10:25:21 AM4/20/16
to Comunidad de Visual Foxpro en Español
Hola Mapner!!!

Me refería a la instalación, en MariaDb su instalador solo pones el puerto o le dejas por default el 3306, le pones la clave a Root, habilitas UTF8 y posiblemente otro parámetro y listo, en  cambio en FB tienes que seleccionar el tipo de instalación, y varios detalles mas.

Solo me refería a la instalación, en cuanto al tamaño depende a quien le preguntes te dirá si importa o no jajajajajajajaj

NOTA: Por eso dije que FoxyDb sirve para MariaDb, MySql y Firebird porque son los motores que uso. PostGreSql es muy bueno pero su instalación no es sencilla es lo malo.

saludos

mapner

unread,
Apr 20, 2016, 10:35:14 AM4/20/16
to Comunidad de Visual Foxpro en Español
Antonio,

Sobre el tamaño... hay colegas que alardean sobre quien tiene el pen drive más pequeño en tamaño pero más grande en capacidad... cosa que confunde a más de uno... :))

Miguel Canchas

unread,
Apr 20, 2016, 1:17:22 PM4/20/16
to publice...@googlegroups.com

PostgreSQL no es sencillo..!!!!!! En que no es sencillo???????? …. Si la primera vez que lo instale lo único que hice fue dar siguientes y poner una contraseña….

 

MK

Antonio Meza

unread,
Apr 20, 2016, 1:22:51 PM4/20/16
to Comunidad de Visual Foxpro en Español, mcan...@ximesa.com
jajaj se están excitando muchos va de nuevo!!!!

Firebird es fácil y sencillo y es el mejor
PostgreSql es fácil y sencillo y es el mejor
Mysql es fácil y sencillo y es el mejor
MariaDb es fácil y sencillo y es el mejor

y los demás que me faltaron son fáciles y sencillos y son los mejores!!

alguna duda??? jajajajajajaj


Carlos Miguel FARIAS

unread,
Apr 20, 2016, 1:41:22 PM4/20/16
to Grupo Fox

Ya es viernes?

Alberto Mancuso

unread,
Apr 20, 2016, 1:47:14 PM4/20/16
to publice...@googlegroups.com

Hola compañeros mi duda es en cuanto a la instalación de. Un sistema nuevo como hago para copiar la base de datos por lo que vi firerbird crea un solo archivo fbd donde yo lo puedo copiar fácil del cliente en cambio MySQL es mas complicado copiar la base ud que opinan

Antonio Meza

unread,
Apr 20, 2016, 1:56:21 PM4/20/16
to Comunidad de Visual Foxpro en Español
Usa HeidiSql y tiene la opción de exportar e importar la base de datos a un archivo .Sql o si conectas los 2 servidores la puedes enviar de un servidor a otro con el mismo HeidiSql, hay muchas formas y todas son sencillas.

saludos

Mario Escudero

unread,
Apr 20, 2016, 2:12:59 PM4/20/16
to publice...@googlegroups.com

Creo que en motores de BD es cuestión de gustos y colores. Creo que lo más importante es la técnica empelada y lo bien (o mal) que se haga pata Cliente/Servidor.
Estoy comenzando a estudiar y practicar FoxyDb de Antonio Meza. Sin embargo no está demás, con la mejor intención, tener opciones sobre otras técnicas de capas.
Mi problema, como ya lo mencioné, es trabajar con Tablas Libres durante más de 15 años y me han causado demasiados problemas sobretodo en mi software para restaurantes.
Entonces, mi factor crítico es TIEMPO por lo que, según he visto hasta ahora, la técnica de FoxyDb es la rápida de implementar, al menso en mi caso.
Gracias de antemano por sus valiosos aportes.
Saludos

Mario Escudero
Rpm #995817087
www.cheff2000.com

Enviado desde mi móvil

jajaj se están excitando muchos va de nuevo!!!!

Ssegusoc Sss

unread,
Oct 22, 2016, 8:22:44 PM10/22/16
to Comunidad de Visual Foxpro en Español
Hola Mario Buenos dias, han pasado un poco de meses de esta publicaciones, y me identifico mucho con tu situación, ya que tambien yo la estoy pasando por el momento e invertido mucho tiempo buscando temas y tutoriales para encontrar mi solucion, he programado mucho utilizando tablas libres(nativas) y he querido dar un gran brinco a manejar mis programas a cliente / servidor,, ahora bien..
me imagino ya has tenido buenos resultados en tu problemáticas anteriores consultadas.
que me recomiendas, utilizar para manejar mis bases de datos, fireBird, MariaDB, o MySQL,? que son los motores con lo que se piede trabajar el gestionador de Antonio Meza, que por cierto me parece interesando, y el cual estoy empezando a aprender de ello.
De antemando gracias.

Carlos Miguel FARIAS

unread,
Oct 23, 2016, 6:12:48 AM10/23/16
to Grupo Fox

Lo importante son los datos. Elige la sea más simple para el usuario hacer backups y restaurar. Si usas un framework de acceso y teniendo a mano el autor, que mejor que él te asesore.
Saludos: Miguel, La Pampa RA
Larga vida y prosperidad.
Que la fuerza los acompañe.

Reply all
Reply to author
Forward
0 new messages