FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
SQLQuery no encuentra una tabla
Hola a todos,
en un pequeño proyecto que estoy haciendo en Delphi 10.2, estoy usando una base de datos SQLite3 que tiene 2 tablas (libros y ventas). Para atacarla, he colocado un SQLConnection y un SQLQuery, ambos de DBExpress. Tengo en el directorio de la aplicación el archivo sqlite3.dll versión 3.23.0100, descargado esta misma mañana. La conexión usa el driver sqlite, le coloco como parámetro la dirección de la base de datos y conecto: Hasta aquí, sin problemas. Para obtener los datos, uso el SQLQuery así:
Y aquí me salta un error diciendo que no encuentra la tabla "libros"... ¿Álguien sabe que estoy haciendo mal? |
#2
|
||||
|
||||
Para empezar deberías asegurarte de que está atacando a la base de datos que supones.
Bastaría con poner un Label.
También puedes ver si en ese punto la conexión está activa. (Justo antes de hacer la consulta)
Por otro lado deberías asegurarte de que que la tabla exista en esa base de datos mediante otra herramienta. ¿Cuál es el mensaje de error, sin traducir ni interpretar, que te da la aplicación y en qué punto de la aplicación exactamente? ¿Puede ser que sea CASE SENSITIVE y la tabla se llame LIBROS o Libros? ¿Estás ejecutando la aplicación desde una unidad de red? Después de la actualización de Windos10 esto puede darte problemas. No tengo experiencia con SQLLite específicamente, pero estas son algunas cosas que se me ocurren... |
#3
|
|||
|
|||
Cita:
Hola duilioisola, gracias por tu interés. Antes de responderte (no te ofendas, no lo digo con ningún tipo de acritud) te comento que llevo ya unos cuantos años desarrollando con Delphi y Lazarus, aunque perdí mi cuenta de Club Delphi y por eso aparezco sin post. Sí, está comprobado que la base de datos es esa, que contiene la tabla "libros", que está en el sitio adecuado, y verificado con una utilidad externa, y no, no es case sensitive. La aplicación será de escritorio, nada de red (hubiera usado un SGBD diferente). También he comprobado si estaba activa la conexión antes de activar el query. El mensaje de error, sin traducir ni interpretar, es: Project Feria.exe raised exception class TDBXError with message 'no such table: libros'. Acabo de comprobar que, en diseño, si establezco las propiedades correspondientes, tanto la conexión como el query se activan sin problemas y el sistema funciona, devolviendo los datos correctos... ???????? |
#4
|
||||
|
||||
¿Lo has seguido paso a paso con el depurador hasta que hace la conexión?
Por lógica, si no encuentra la BD es que está en otro sitio, o es otra, o no tiene permisos para acceder a ese directorio. Eso es independiente de la experiencia de cada uno |
#5
|
|||
|
|||
Cita:
Gracias Casimiro. Sí, el depurador salta justo al intentar activar el query, y el problema no es la base de datos, la encuentra, y el SQLConnectrion la abre sin problemas, el fallo es que no encuentra la tabla libros dentro de la base de datos (que por supuesto existe y contiene datos). Lo que más me sorprende es que no falle poniendo las propiedades en tiempo de diseño. Saludos |
#6
|
||||
|
||||
Qué cosa tan extraña.
Prueba a cambiarle el nombre a la tabla. Luego crea una nueva tabla libros. O también genera una nueva base de datos, a ver si hay algún espacio o caracter "raro" por ahí. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Traer campos que se encuentra en la tabla principal | novato_erick | SQL | 4 | 27-11-2012 11:36:51 |
no encuentra tabla, que yo no he llamado! | Nomad | SQL | 1 | 10-04-2010 16:29:11 |
estado en el que se encuentra una tabla | ercrizeporta | Conexión con bases de datos | 1 | 23-10-2006 15:17:29 |
Insolito, no encuentra la tabla!! | Mauro.NET | Conexión con bases de datos | 1 | 29-03-2005 20:30:56 |
|