Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Problema con una transaccion
#1

Hola Amigos.

Actualmente utilizo Gambas 3.17.3 QT5, y  con mysql 8, Linux Mint 20.3 x86_64 y estoy teniendo un problema
ya que la insercion en las tablas no se ejecuta y no recibo ningun mensaje de error.

por ejemplo en un boton colocamos:

conn.Begin

      conn.exec("insert into tabla1....") ' sentencias sin error
      conn.exec("insert into tabla2.....")' sentencias sin error
      conn.exec("inset into puntos set codigo=2,nombre='ALESSANDRI E GUZMAN',debito=4483.04,detalle='venta factura No.'582,fecha='2022/11/21',usuario='ales'") 'sentencia con error

conn.Commit

como se puede observar en el campo detalle de la tercera tabla hay un error de sintaxis, pero gambas no detecta que hay un error,
no recibo el mensaje de error y la insercion no se ejecuta en ninguna tabla.

Si alguien me puede ayudar por favor.

Pd: en gambas 3.14 no tenia problemas.
    ¡Gracias!
#2

(23-11-2022, 02:56)alessandri escribió:  conn.exec("inset into puntos set codigo=2,nombre='ALESSANDRI E GUZMAN',debito=4483.04,detalle='venta factura No.'582,fecha='2022/11/21',usuario='ales'") 'sentencia con error

Veo que entre "factura No." y "582" hay un " ' " ( Chr(39) ) que puede ser la causa del problema.
Si es eso, tal vez te sirva esta función que hice hace un tiempo:

GAMBAS
  1. '' Returns a text suitable for SQL queries, removes line breaks and characters not compatible with SQL statements.
  2. Static Public Function Chek4SQL(strInput As String) As String
  3.   Dim strOutput As String
  4.   strOutput = Replace(strInput, Chr(92) & Chr(110), ":")
  5.   strOutput = Replace(strOutput, Chr(34), "")
  6.   strOutput = Replace(strOutput, "\n", " ")
  7.   strOutput = Replace(strOutput, "\r", "")
  8.   strOutput = Replace(strOutput, "\x00", "")
  9.   strOutput = Replace(strOutput, Chr(39), Chr(46)) ' ' > .
  10.   strOutput = Replace(strOutput, Chr(44), Chr(46)) ' , > .
  11.   Return strOutput



1 Saludo.
    ¡Gracias!
#3

(23-11-2022, 02:56)alessandri escribió:  Hola Amigos.

Actualmente utilizo Gambas 3.17.3 QT5, y  con mysql 8, Linux Mint 20.3 x86_64 y estoy teniendo un problema
ya que la insercion en las tablas no se ejecuta y no recibo ningun mensaje de error.

por ejemplo en un boton colocamos:

conn.Begin

      conn.exec("insert into tabla1....") ' sentencias sin error
      conn.exec("insert into tabla2.....")' sentencias sin error
      conn.exec("inset into puntos set codigo=2,nombre='ALESSANDRI E GUZMAN',debito=4483.04,detalle='venta factura No.'582,fecha='2022/11/21',usuario='ales'") 'sentencia con error

conn.Commit

como se puede observar en el campo detalle de la tercera tabla hay un error de sintaxis, pero gambas no detecta que hay un error,
no recibo el mensaje de error y la insercion no se ejecuta en ninguna tabla.

Si alguien me puede ayudar por favor.

Pd: en gambas 3.14 no tenia problemas.
Te recomiendo encarecidamente que en estas sentencias utilices los parámetros reemplazables, que te ahorrarán un montón de problemas. Así tu código quedaría como:
GAMBAS
  1.    conn.exec("inset into puntos set codigo=&1,nombre=&2,debito=&3,detalle=&4,fecha=&5,usuario=&6",2,"ALESSANDRI E GUZMAN",4483.04,"venta factura No.582,"2022/11/21',"ales")


Con esto (siempre que los valores sean correctos para el tipo de campo, claro) no deberías tener problemas.

Saludos

No podemos regresar
    ¡Gracias!
#4

Gracias amigos.
    ¡Gracias!


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)