Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Leer Error Que Devuelve El Driver De La Conexion A La Base De Datos
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Leer Error Que Devuelve El Driver De La Conexion A La Base De Datos 
 
Hola a todos.
Sucede lo siguiente. Teniendo una conexión a una base de datos sqlite3 intento crear una tabla por código y da error. ¿Como puedo "leer" el texto completo del error?

Este el códifo SQL
BEGIN TRANSACTION;
DROP TABLE IF EXISTS `tabla`;
CREATE TABLE IF NOT EXISTS `tabla` (
        `id`    INTEGER PRIMARY KEY AUTOINCREMENT,
        `name`  TEXT UNIQUE,
        `desc`  TEXT,
);
COMMIT;
 

Este es el codigo de creacion de tabla en gambas
'...
    If con.Databases.Exist("labasededatos") Then
      con.Open
    Else
      Print "La base NO existe " & dbn
      con.Databases.Add(dbn)
      con.Close
      con.Name = dbn
      con.Open
  
     ''Creación de la tabla
      con.Exec(sql) ' sql se muestra arriba

    Catch
      Print Error.Text
      Print Error.Code
      Print Error.Where

    Endif
 

Bien si ejecuto este código en gambas el error que logro recuperar (el texto ) es:
Citar:
Query failed: near ")": syntax error

Pero si corro el código SQL en el programa DB Browser, un administrador de baases sqlite, este me devuelve un error mucho mas detallado
Citar:
Resultado: near ")": syntax error
En la línea 12:
CREATE TABLE IF NOT EXISTS `tabla` (
    `id`    INTEGER PRIMARY KEY AUTOINCREMENT,
    `name`    TEXT UNIQUE,
    `desc`    TEXT,
)

El error es que hay una coma en     `desc`    TEXT, y no deberia.
Lo que me interesa es ver donde esta el error ya que en SQL complejos es muy difícil encontrar el error, pero si se sabe en que linea mirar es otra cosa.
Es como si gambas al primer salto de linea descarta lo que sigue.
Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Leer Error Que Devuelve El Driver De La Conexion A La Base De Datos 
 
Hola

tincho, si no me equivoco, (es muy probable que si),  la coma "," despues de  
`desc`  TEXT
no va...

Espero que alguien lo confirme. (o no)

Abrazo!!
 



 
whisper - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Leer Error Que Devuelve El Driver De La Conexion A La Base De Datos 
 
whisper escribió: [Ver mensaje]
Hola
tincho, si no me equivoco, (es muy probable que si),  la coma "," despues de  
`desc`  TEXT
no va...
Espero que alguien lo confirme. (o no)
Abrazo!!

Si, efectivamente estas en lo correcto, la coma no debe estar allí, es un ejemplo que yo cree para ejemplificar lo que sucede cuando hay un error.
El post va de como leer el error que devuelve la base de datos mas que del error en si.
Ya que Error.Text solo devuelvela primera línea y el resto lo descarta.
Gracias de todas maneras por el interés.
Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Leer Error Que Devuelve El Driver De La Conexion A La Base De Datos 
 
tincho escribió:  

Bien si ejecuto este código en gambas el error que logro recuperar (el texto ) es:
Citar:
Query failed: near ")": syntax error

Pero si corro el código SQL en el programa DB Browser, un administrador de baases sqlite, este me devuelve un error mucho mas detallado
Citar:
Resultado: near ")": syntax error
En la línea 12:
CREATE TABLE IF NOT EXISTS `tabla` (
    `id`    INTEGER PRIMARY KEY AUTOINCREMENT,
    `name`    TEXT UNIQUE,
    `desc`    TEXT,
)

El error es que hay una coma en     `desc`    TEXT, y no deberia.
Lo que me interesa es ver donde esta el error ya que en SQL complejos es muy difícil encontrar el error, pero si se sabe en que linea mirar es otra cosa.
Es como si gambas al primer salto de linea descarta lo que sigue.
Saludos.


Si, creo que te has explicado perfectamente bien.

Mira parece que el obstáculo que te surge tiene que ver con el "Salto de línea". Debes averiguar la longitud de todo el texto en "Print Error.Text", me explico, si la longitud es lo que vez, entonces no tienes nada que hacer pero si es mayor, entonces como comprenderás, es un fallo de el "Salto de línea" que no esta expresado en "Print Error.Text"

tincho dime algo y si no das con la solución, te seguiré ayudando al respecto.

Saludos.
 



 
gambafeliz - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Conexion Base De Datos MYSQL Con Gambas2 kbza Bases de Datos 12 Sabado, 10 Octobre 2009, 11:39 Ver último mensaje
CanihoJR
No hay nuevos mensajes Ayuda Con Gambas Y Conexion A Un Servidor ... mcesar-87 Bases de Datos 2 Sabado, 26 Junio 2010, 14:07 Ver último mensaje
ahtonio
No hay nuevos mensajes Conexion A Base De Datos Oracle Juangg1977 Bases de Datos 1 Jueves, 03 Abril 2014, 13:14 Ver último mensaje
germinal
No hay nuevos mensajes Forma Correcta En La Conexion De Base De D... Lykan Bases de Datos 13 Miercoles, 29 Abril 2015, 23:25 Ver último mensaje
Lykan
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario