Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Problema con LIKE en runtime (https://www.clubdelphi.com/foros/showthread.php?t=31297)

anghell77 04-05-2006 11:20:24

Problema con LIKE en runtime
 
Primero: Sobre Delphi 7 y Paradox 7....([/b]Estoy Atrasado en cuanto a tecnologia que puedo decir).....

a ver.... no se si esto se pueda hacer....antes de que me regañen..creo es el hilo adecuado....

quiero realizar una consulta mediante un like en runtime que devuelva a un DBgrid aquellos datos que sean capturados en un TEdit....por ejemplo....
capturo "F" en el Edit, y en el grid aparecen todos los registros de la F, luego ahi mismo añado "E" lo cual hace una cadena "FE", y devuelva al DBGrid todos los registros coincidentes con "FE" y así sucesivamente....

creo, mas no se si se realice con parámetros al like, pero no se asignarlos....ojalá alguien tenga ayuda para mi....

Gracias..Saludos desde Durango, México.

Neftali [Germán.Estévez] 04-05-2006 11:39:39

Utiliza un TQuery para conectar al DBGrid (en lugar de un TTable) y en la sentencia SQL añades una consulta similar a ésta:

Código SQL [-]
  select * from country where Name like 'P%'

Algo de código...

Código Delphi [-]
  Query1.Close;
  StrSQL :=  'select * from country where Name like ' + QuetedStr(Edit1.Text + '%');
  Query1.SQL.TExt := StrSQL;
  Query1.Open;

En tu caso, a medida que vayas cambiando lo que hay en el Edit (utiliza el evento OnChange de TEdit, por ejemplo), vuelves a crear la consulta, se la asgnar al TQuery y haces el Open de nuevo.

anghell77 04-05-2006 11:47:28

El Dbgrid esta ligado al source y este a un TQuery....
por lo demás fijate, que algo así habia pensado....agregar en elevento on Change o bien en OnKeyDown, sobre el cual esté ejecutando la consulta a cada cambio..... mas sin embargo la instruccion StrSQL no la reconoce al igual que QuetedStr.....no se si requiera añadir algo en el uses...:confused: :confused: :confused:

Bicho 04-05-2006 11:50:30

Hola perdonad que me meta pero,

StrSQL es una variable definida en el procedimiento o de forma global en la aplicación mediante

Código Delphi [-]
var StrSQL : String;

es una variable auxiliar que usa Neftali para guardar el texto de la consulta SQL y después asignarsela a la propiedad SQL.Text del Query.

Saludos

anghell77 04-05-2006 11:57:31

Disculpas si esto enfada...no soy demasiado bueno....:o
a ver.... he declarado STRSQL como dijiste.... String....

Ahora,
Query1.Close;
StrSQL := 'select * from Medicamentos where Sustancia like ' + QuetedStr(Edit1.Text + '%');
Query1.SQL.Text := StrSQL;
Query1.Open;

el problema viene con QuetedStr.. para el cual probé (tal vez pendejamente)..declararla como variable tambien, (string) y me ocurre el tipico error Mising Operator or Semicolon....

si no la declaro, no la identifica....
:( toy wey.....ayuda!!please!!

Bicho 04-05-2006 12:08:49

Es lógico que no te encuentre QuetedSTR ya que está mal escrito, prueba con QuotedStr

Saludos

anghell77 04-05-2006 12:13:56

Gracias, Bicho....ese era el error.....y ...Str???Ky.....no recuerdo el nombre, ya lo habia probado,,,jajaja, hice muchas pruebas de eso, y daba error.....

De nuevo, gracias a los involucrados.....una jodida letra y manda todo a la .....Gracias por esa "O" bicho......ya ha funcionado como es requerido...

Saludos
:) :) :D

Neftali [Germán.Estévez] 04-05-2006 12:14:16

Primero y antes que nada, el código era orientativo para darte una idea, no lo he probado (está claro, porque hay un error).

Cita:

Empezado por anghell77
mas sin embargo la instruccion StrSQL

Como bien han supuesto por aquí es una variable privada al evento OnChange (por ejemplo).
Código Delphi [-]
...
var
  StrSQL:String;
begin
   ...

Cita:

Empezado por anghell77
...al igual que QuetedStr

Evidentemente; Es también un error (como ya han apuntado); Me refería a QuotedStr; Tal vez tengas que añadir el uses la unit SysUtils, que es donde se encuentra.

EDITO: Veo que ya has llegado a la solución. :p

anghell77 04-05-2006 12:16:57

Todo Resuleto, Nef.....Gracias..... a todos....era superurgente......

Thnx

FER


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

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