In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Grabar una sentencia Sql en un campo de Sql

Foro de Xailer profesional en español
Responder
Avatar de Usuario
bingen
Mensajes: 581
Registrado: Lun Jul 07, 2014 8:17 pm
Ubicación: Bilbao
Contactar:

Grabar una sentencia Sql en un campo de Sql

Mensaje por bingen »

Buenas Ignacio, nos comentaste en Madrid como interceptar las sentecias que se ejecutan en un sql, pero si intento hacer un log con esto grabándo las sentencias necesarias en una tabla de Mysql, se monta un buén lio en el Insert.

Creo recordar que algo comentaste de una función para poder hacerlo ?¿?¿?¿?¿¿

Salu2 y gracias.
BiSoft Desarrollo de software profesional
http://www.bisoft.es
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9447
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Grabar una sentencia Sql en un campo de Sql

Mensaje por ignacio »

Buenas,

En el curso utilizaba una base de datos local SQLITE. No obstante si deseas hacer eso no tienes más que poner el evento a NIL antes del INSERT y luego restaurarlo.

Saludos
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
bingen
Mensajes: 581
Registrado: Lun Jul 07, 2014 8:17 pm
Ubicación: Bilbao
Contactar:

Re: Grabar una sentencia Sql en un campo de Sql

Mensaje por bingen »

Gracias Ignacio.

SqLite, claro asi es mas facil.

A que evento a Nil te refieres?

Salu2.
BiSoft Desarrollo de software profesional
http://www.bisoft.es
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9447
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Grabar una sentencia Sql en un campo de Sql

Mensaje por ignacio »

Buenos días,

De hecho yo propuse un simple fichero plano. En mi opinión no tiene mucho sentido hacer un backup de sentencias SQL en el mismo servidor donde luego quieres restaurarlo.

Código: Seleccionar todo

METHOD MariaDBDataSource1Execute( oSender, cSql ) CLASS TForm1

  oSender:OnExecute := ""

  MiCodigo( cSql )

  oSender:OnExecute := "MariaDBDataSource1Execute" 

RETURN Nil
O si lo prefieres con code-blocks:

Código: Seleccionar todo

oDS: OnExecute := {|o,cSql| MiCodigo( o, cSql ) }

FUNCTION MiCodigo( oDS, cSql )

  LOCAL cb := oDs:OnExecute

  oDS:OnExecute := NIL
  ..........
  ..........
  oDs:OnExecute := cb

RETURN Nil
Saludos
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
bingen
Mensajes: 581
Registrado: Lun Jul 07, 2014 8:17 pm
Ubicación: Bilbao
Contactar:

Re: Grabar una sentencia Sql en un campo de Sql

Mensaje por bingen »

Si tienes razón meterlo dentro de la BBDD es una tontería, podría ser un fichero plano, pero contendría información sensible de los datos que se graban, nombres, dni, cuentas corrrientes, claves, etc.

Para eso ya tiene MySql su propio sistema y fichero

SHOW VARIABLES WHERE variable_name = 'general_log_file'

que se puede activar

SET GLOBAL general_log = 'ON';

Sin tener que teclear ni una linea de código.

Salu2.
BiSoft Desarrollo de software profesional
http://www.bisoft.es
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9447
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Grabar una sentencia Sql en un campo de Sql

Mensaje por ignacio »

Buen truco. Gracias. :-)
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Responder