Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Problema con TIBDataSet (https://www.clubdelphi.com/foros/showthread.php?t=25705)

lpaburto 30-09-2005 18:27:24

Problema con TIBDataSet
 
Me dirijo a ustedes ya que estoy recien iniciandome con firebird, para esto estoy usando las IBX de DELPHI.
Les explico mi problema.
Creo una TIBDatabase y una TIBTransaction conectandolas sin problemas a la base de datos (Firebird 1.5). Luego creo un TIBDataset y le indico la sentencia de seleccion "SELECT campo FROM tabla" y me entrega el siguiente error:
dinamic sql error
SQL error code =-204
table unknown
[tabla]
at line 1, column n

La tabla a la que se hace referencia existe y la puedo acceder desde un TIBTable pero la optimo es utilizar TIBDataset segun lo que he leido.

Por favor si alguien me puede dar una ayuda.

vtdeleon 30-09-2005 19:15:28

Saludos
Cita:

le indico la sentencia de seleccion "SELECT campo FROM tabla"
Tienes alguna otra tabla?, ya que no creo que "tabla" sea una palabra reservada:rolleyes:
Cita:

pero la optimo es utilizar TIBDataset segun lo que he leido.
Exacto

lpaburto 30-09-2005 21:47:38

vtdeleon gracias por responder y te explico.

en la base de datos tengo varias tablas creadas (aun no he hecho nada en delphi, solo he diseñado la base de datos). y cuando hago referencia con el TIBDataset sea cual sea la tabla a la que le ejecuto el SELECT me indica que esta no existe. Pero si accedo mediante una TIBTable si conecta.

:confused:

dec 02-10-2005 04:54:26

Hola,

Me llama la atención cuando dices "a la que ejecuto..." porque si hago algo tal que así:

Código Delphi [-]
   IBDataSet1.Close;
   IBDataSet1.SelectSQL.Clear;
   IBDataSet1.SelectSQL.Add('select FIRST_NAME from EMPLOYEE');
   IBDataSet1.ExecSQL;
... la última instrucción provoca un error, aunque no exactamente el que a ti te sucede. Sin embargo, si sustituyo la última instrucción por "IBDataSet1.Open;" entonces no hay problemas. Por otro lado, fíjate en qué propiedad "escribo" la sentencia SQL, esto es, en la propiedad "SelectSQL" del "TIBDataSet"... ¿Cómo lo haces tú exactamente? ¿Podrías escribir aquí el código para echarle un vistazo? ;)

rastafarey 03-10-2005 15:10:05

Resp
 
Puedes poner la sentencia sql real.
Por que tambien hay que ver que dialecto estas usando por que si tu tbla se llma Productos y el dialecto con el que la creaste es el tres no la puedes acceder asi debes usas doble comilla "Productos".

Eso es un caso pero prefiero vre el sql real.

Pero sui te sql es exactamente el anterior la debes acceder la tabla a menos que le ayyas puesto un caracter en mayusculas ya que si esta todo en minusculas y no posee espacios en blanco no es necesario las comillas. Pero de lo cantrario si.

lpaburto 03-10-2005 16:48:44

Les agradesco a todos su ayuda, el problema no lo pude descubrir pero al cambiar el administrador de firebird con el que cree la base de datos (anteriormente "EMS Interbase & Firebird 3") al "IB Expert", volvi a crear la base con este y todo solucionado. Pude conectarme sin ningun problema, no se si sera algun problema de versiones nose pero almenos ya puedo continuar com mi proyecto. :confused:

Muchas gracias.

AGAG4 04-10-2005 16:13:31

Checa Esto....
 
Cambia IBDataSet1.ExecSQL; por IBDataSet1.Open;

Saludos....

Delfino 04-10-2005 23:13:23

El problema es muy sencillo pero de esos q desesperan: sencillamente en la selectsql del IBDataset "tabla" tenia q ser "TABLA", en mayusculas. El IBExpert por defecto pone a mayusculas el nombre de todos los objetos incluyendo las tablas. Es problema de los IBX, ya q al usar los
MDO no pasa esto, te recomiendo los uses, son un clon de los IBX pero soportan el acceso tb a traves de la libreria fbclient.dll..


La franja horaria es GMT +2. Ahora son las 19:04:24.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi