Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   un SQL con LIKE no me sale (https://www.clubdelphi.com/foros/showthread.php?t=91986)

darkbits 19-06-2017 21:48:00

un SQL con LIKE no me sale
 
un saludo al club
estoy trabajando con DX10.1
y tengo problemas en la programacion con LIKE

esta consulta en la consola de mysql me funciona bien recibo la columna de datos.
Código SQL [-]
SELECT * FROM productos WHERE nombre_producto LIKE "%F010095%";


Código SQL [-]
     _DM.consulta1.SQL.Text:= 'SELECT * From productos Where nombre_producto LIKE :busco2';
     _dm.consulta1.ParamByName('busco2').Text:='%'+Buscar2.Text+'%';  //QuotedStr('%'+buscar2.text+'%');
     _DM.consulta1.Open;

en delphi estoy haciendo asi
'%'+Buscar2.Text+'%' NO funciona
QuotedStr('%'+buscar2.text+'%'); tampoco funciona.

porfa agradezco su ayuda

oscarac 19-06-2017 22:01:58

Intenta cambiando
Código Delphi [-]
ParamByName.VALUE

darkbits 19-06-2017 22:05:20

:( nada..

oscarac 19-06-2017 22:12:42

que es buscar2.text ???
imagino que es un edit.

darkbits 19-06-2017 22:17:22

buscar2.txt es F010095 100252 T22555 esta definido como varchar

oscarac 19-06-2017 22:18:34

es una variable?
no estoy entendiendo bien
trata de colocar un poco mas de código
desde cuando defines buscar2

darkbits 19-06-2017 22:25:45

buscar2.text es un TEDIT yo lleno manualmente los valores

F15255
T25215
..

y voy HACIENDO El LIKE mi base de datos con los valores que están definidos por VARCHAR

oscarac 19-06-2017 22:28:24

Yo hago algo como esto

Código Delphi [-]
      dmGlobal.qryBuscarAnexo.SQL.Clear;
      SqlStr := 'Select * From tblAnexo where Empresa = ' + QuotedStr(dmGlobal.g_CodigoEmpresa);
      if _tipo = 0 then
        SqlStr := SqlStr + ' and Codigo Like ' + QuotedStr(_Anexo + '%')

      SqlStr := SqlStr + ' Order By Codigo';

      dmGlobal.qryBuscarAnexo.SQL.Add(SqlStr);
      dmGlobal.qryBuscarAnexo.Open;

y si me funciona

mallenat 20-06-2017 10:02:32

¿Has probado a lanzar la query resultante directamente en la base de datos?

Segun comentas esta es tu query objetivo:
Código SQL [-]
SELECT * FROM productos WHERE nombre_producto LIKE "%F010095%";

En tu código veo que el ";" final no está incluido
Código Delphi [-]
_DM.consulta1.SQL.Text:= 'SELECT * From productos Where nombre_producto LIKE :busco2';

En algunos mootres de base de datos es necesario incluirlo, revísa si es tu caso.

Adicionalmente puedes concatenar con una funciona CONCAT('%', :busco2 ,'%'):
Código Delphi [-]
_DM.consulta1.SQL.Text:= 'SELECT * From productos Where nombre_producto LIKE CONCAT('%', :busco2 ,'%')';

darkbits 20-06-2017 16:33:44

gracias a todos q colaboraron
solucione con este codigo
Código SQL [-]
_DM.consulta1.SQL.Text:= 'SELECT * From productos Where nombre_producto LIKE CONCAT('%', :busco2 ,'%')';


La franja horaria es GMT +2. Ahora son las 07:43:54.

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