Página 1 de 1

Grabar una sentencia Sql en un campo de Sql

Publicado: Mié Feb 03, 2016 5:34 pm
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.

Re: Grabar una sentencia Sql en un campo de Sql

Publicado: Mié Feb 03, 2016 7:16 pm
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

Re: Grabar una sentencia Sql en un campo de Sql

Publicado: Lun Feb 08, 2016 8:34 am
por bingen
Gracias Ignacio.

SqLite, claro asi es mas facil.

A que evento a Nil te refieres?

Salu2.

Re: Grabar una sentencia Sql en un campo de Sql

Publicado: Lun Feb 08, 2016 11:20 am
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

Re: Grabar una sentencia Sql en un campo de Sql

Publicado: Mié Feb 17, 2016 6:59 pm
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.

Re: Grabar una sentencia Sql en un campo de Sql

Publicado: Jue Feb 18, 2016 12:35 pm
por ignacio
Buen truco. Gracias. :-)