Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ayuda con locate (https://www.clubdelphi.com/foros/showthread.php?t=46151)

ercrizeporta 25-07-2007 10:57:37

ayuda con locate
 
hola necesito realizar unas busquedas en una base de datos, lo estoy realizando mediante el comando "locate". El problema que tengo es que locate me realiza la búsqueda siempre iniciando por el principio de la cadena de caracteres. Me gustaría saber si hay alguna forma de realizar esa busqueda pero que me encuentre la cadena que estoy buscando aunque esté en una posición distinta de la inicial.
Intento explicarme con un ejemplo:
Deseo buscar Cristobal
si en la base de datos tengo un campo que es "Cristobal" y otro que es "luis cristobal"

con la busqueda en locate solo me devolvería a la posición de la cadena "cristobal" pero me gustaría saber si hay alguna opción para que tambien me devolviera "luis cristobal".

muchas gracias!!!!

BlueSteel 25-07-2007 17:11:18

Hola ercrizeporta

puedes utilizar SQL a través de un Query.. y utilizar la sentencia Like....

para eso debes definir un componente de tipo Query (si es tablas planas) IBQuery (si es interbase) ADOQuery( si es ADO - SQL Server - Acces )

debes tener un Edit

Ejemplo, si queremos buscar un Proveedor por el nombre... tendriamos la siquiente sentencia

Edit1.Text -> Valor a buscar...dentro de un campo
Código Delphi [-]
Query.Close;
Query.SQL.Clear;
Query.SQL.Add('Select * From Proveedor ');
Query.SQL.Add('Where Nombre Like'+QuotedStr('%'+Edit1.Text+'%'));
Query.Open;


te recomiendo que indiques que bases utilizas y con que componente accedes a ellos

espero que te sirva

paldave 21-08-2007 17:12:21

Supongo que te refieres a la función Locate de TBDE:
Código Delphi [-]
function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean; override;

El parámetro Options te permite realizar búsquedas parciales, si se incluye loPartialKey.

Ejemplo:
Código Delphi [-]
TMiTabla.Locate('MiCampo','Cristobal',[loPartialKey]);


La franja horaria es GMT +2. Ahora son las 03:04:34.

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