Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Ayuda sentencia LIKE (https://www.clubdelphi.com/foros/showthread.php?t=60668)

marcial 09-10-2008 17:21:32

Ayuda sentencia LIKE
 
Hola a todos:
Trabajo con D5 y FIBPlus6.4.
Tengo la siguiente consulta que tengo puesta en el OnChange del Edit
Código SQL [-]
{SQL := 'Select * from Articulos where DESCRIPCION LIKE "%' + Edit2.Text + '%"';}
if pFIBTransaction1.InTransaction then pFIBTransaction1.Commit;
pFIBDataSet1.SelectSQL.Clear;
pFIBDataSet1.SelectSQL.Add(SQL);
pFIBDataSet1.QSelect.ExecQuery;
pFIBtransaction1.Commit;
pFIBDataSet1.Open;

Siempre me ha funcionado con Paradox, de hecho, lo que estoy es utilizando el mismo programa pero en vez de tablas utilizo los pFIBDataset del FibPlus pero al ejecutarla con Firebird me da el siguiente error:
Columns does not belong to referenced table
Dinamic SQL error
error code -206
Column unknow
%E% at line 1,column 43 (La E es lo que yo tecleo en el Edit2)

La tabla tiene la columna "Descripcion" definida y como estoy empezando no tengo idea de donde puede fallar.

Muy agradecido por vuestra colaboracion
Marcial

jhonny 09-10-2008 17:47:14

Apuesto que tu BD esta en Dialecto 3, por lo que es mejor que utilices comillas simples en lugar de las comillas dobles, así:

Código Delphi [-]
 
SQL := 'Select * from Articulos where DESCRIPCION LIKE ''%' + Edit2.Text + '%''';}
if pFIBTransaction1.InTransaction then pFIBTransaction1.Commit;
pFIBDataSet1.SelectSQL.Clear;
pFIBDataSet1.SelectSQL.Add(SQL);
pFIBDataSet1.QSelect.ExecQuery;
pFIBtransaction1.Commit;
pFIBDataSet1.Open;

Espero te sirva. ;)

BlueSteel 09-10-2008 17:49:27

Hola

Puede que tu problema sea por la sentencia que empleas.... prueba a poner el nombre de la Tabla y el Campo entre comillas dobles...

Código Delphi [-]
{SQL := 'Select * from "Articulos" where "DESCRIPCION" LIKE "%' + Edit2.Text + '%"';}
cuando trabajé con Interbase, utilizaba esto...

Código Delphi [-]
             
IBQ_Select.Close;
IBQ_Select.SQL.Clear;
IBQ_Select.SQL.Add('Select * From "Cliente" ');
IBQ_Select.SQL.Add('Where "Cli_Razon" Like'+QuotedStr('%'+vBus.Text+'%'));
IBQ_Select.Open;

espero que sea eso

Salu2:p:D

marcial 09-10-2008 17:52:13

Muchas gracias Jhonny ahora si funciona. !lo que es el saber las cosas¡ (y querer compartirlas)

marcial 09-10-2008 17:54:05

Muchas gracias BlueSteel. La respuesta de jhonny soluciono el problema.

jhonny 09-10-2008 17:54:33

Cita:

Empezado por marcial (Mensaje 319182)
Muchas gracias Jhonny ahora si funciona. !lo que es el saber las cosas¡ (y querer compartirlas)

Que bueno, ahora que también lo sabes, también podrás compartirlo ;).


La franja horaria es GMT +2. Ahora son las 00:42:23.

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