PDA

Ver la Versión Completa : Ayuda Con .locate En Delphi 7


eudy.net
05-06-2007, 05:54:33
:confused::confused::confused::confused: NO ENTIENDO NADA DE NADA DE LOCATE OSEA NO SE ACTIVAR EL: TLOCATEOPTIONS POR MAS QUE BUSCO NADA ME SALE. SI ALGUIEN PUEDE AYUDARME Y MANDARME LOS CODIGOS DE UN PROGRAMA SENCILLO SOLO QUIERO VER DONDE ES QUE SE PONE:

Unit

DB

type
TLocateOption = (loCaseInsensitive, loPartialKey);
TLocateOptions = set of TLocateOption;

SE LO AGRADECERIA EN EL ALMA

ATT. EUDYNET

droguerman
05-06-2007, 06:11:22
recordar q locate devuelve verdadero cuando encuentra un registro:

ejemplo 1:

tuDataset.locate('codigo', valorABuscar, [loCaseInsensitive]);

ejemplo 2:

tuDataset.locate('codigo', valorABuscar, [loCaseInsensitive, loPartialKey]);

ejemplo 3:

tuDataset.locate('codigo;nombre', VarArrayCreate([valorABuscar, variable2]), [loCaseInsensitive, loPartialKey]);

eudy.net
05-06-2007, 06:16:52
GRACIAS POR LA AYUDA. PERO LO QUE EN VERDAD NECESITO SABER ES DONDE ES QUE DEBO DE PONER :

Unit

DB

type
TLocateOption = (loCaseInsensitive, loPartialKey);
TLocateOptions = set of TLocateOption;

NO SE DONDE SE PONE ESO :( AYUDENME POR FAVOR
AYUDENME QUE ESO ES PARA AHORITA :(

roman
05-06-2007, 07:56:12
No tienes que ponerlo en ningún lado, son tipos de datos que ya están declarados en la unidad db.pas. Si en lugar de desesperarte revisas con atención el ejemplo que te puso droguerman, verás que el LocateOptions no es algo que debas activar, sino que se trata de un parámetro que indica a Locate cómo hacer la búsqueda.

Y por favor, no repitas hilos.

// Saludos

Neftali [Germán.Estévez]
05-06-2007, 10:57:39
Y por favor, no repitas hilos.

Yo añadiría que por favor no escribas en mayúsculas; no hay ninguna razón para ello.
Revisa la Guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php) y recordarte que una búsqueda en los foros sobre locate te dará muchos hilos sobre el tema con mucho código de ejemplo.

zanyodark
08-06-2007, 08:47:46
exacto como dicen el locate te devuelve un valor falso o verdadero, lo unico que tienes que hacer es declarar una variable (opcion:TLocateOptions;)
y donde vayas a utilizar el locate puede ser como esto...

ZTable1.Locate('Clave',Edit1.Text,opcion);
if ZTable1.Locate('Clave',Edit1.Text,opcion)=False then
Begin
ShowMessage('Escuela no encontrada, por favor escriba otra DPR');
Edit1.Clear();
Edit1.SetFocus();
end
else
Button8.Enabled:=True;
end;

donde clave es el nombre del campo en donde va a buscar, edit1.text de donde va a sacar lo que va a buscar. si es false quiere decir que no encontro y si es true es encontrado.

karlaoax
08-06-2007, 18:17:30
Mira aqui te pongo un codigo que hice hace como 6 años, ahora todo lo manejo por query's, busca en el foro para que empieces a dominar delphi, por lo que veo utilizas Paradox, buena eleccion para empezar pero te recomiendo que leas mas acerca de Firebird y MySQL para que veas que existe un abismo entre Paradox y los otros 2 :D

Tenia un Edit (txtclave)
1 Table
1 datasource
En tu caso los DBedits que vayas a necesitar ;)

var
options:tlocateoptions;
clave:string;
begin
clave:=txtclave.Text;
// In this section I'm checking that someboby writes the Clave, to avoid show dates wrongs :D
if(clave='')then
begin
txtclave.Text:='Escribe tu codigo';
txtclave.SetFocus();
messagebox (handle,'Escribe la clave','Error',mb_ok);
end else
begin
// And in this section i begin to find the dates :D
if not table1.locate ('clave',txtclave.text,options) then begin
messagebox (handle,'Clave no existente','Information',mb_ok);
txtclave.Text:='Escribe de nuevo';
txtclave.SetFocus();

end
else begin

// Aqui pones tus campos de tu tabla
DBEdit1.DataField:='campo1';
DBEdit2.DataField:='campo2';
..... N campos
options:=[lopartialkey];
end;
end;

Atte: Karla :p

Neftali [Germán.Estévez]
11-06-2007, 13:50:48
Usad TAG's cuando escribáis código Delphi (http://neftali.clubdelphi.com/images/ResaltarSintaxisDelphi.png), no es tan difícil...