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)
-   -   Problemas buscando registro con Fibplus (https://www.clubdelphi.com/foros/showthread.php?t=71841)

voxi 13-01-2011 18:53:17

Problemas buscando registro con Fibplus
 
Wenasss, estoy intentando buscar un registro con Fibplus en una base de datos Firebird, lo he intentado con SQL y con Locate, la busqueda la hago en un page en el cual tengo varios dbedits y varios botones, last, prior, next etc.

Con SQL uso este código:

FPuntvenda.Fdataartic1.SelectSQL.Clear;
FPuntvenda.Fdataartic1.SelectSQL.Add('SELECT * FROM ARTICLES WHERE CODIC ='+ cod);
FPuntvenda.Fdataartic1.AutoUpdateOptions.UpdateTableName := 'ARTICLES';
FPuntvenda.Fdataartic1.Open;

me lo hace perfecto pero despues la base de datos se me queda solo con este registro y yo solo quiero que lo busque no que me filtre la base de datos.

con locate uso este codigo:

if FPuntvenda.Fdataartic.LocatePrior('CODIC',cod,[loCaseInsensitive, loPartialKey])then
else
Application.MessageBox('No se encuentra'),
'Informaciò', MB_OK + MB_ICONINFORMATION);

tambien me lo hace bien,pero solo la primera vez¡¡ despues ya no hace nada, y no se porque, en fin os agradeceria vuestra opinion, muchas gracias a todos.

celades1 14-01-2011 10:06:57

Hola

Lo primero es normal el fibdataset (que supongo es lo que empleas )
solo devuelve lo pedido con el selectsql

Pero pide con el selectsql lo que quieras ver (no toda la tabla en el caso de muchos registros)

el locate yo lo empleo para lo que tu quieres y me funciona sin problemas

.locate('CODIC',cod,[loCaseInsensitive])

donde codic es el primary key y cod es una variable en que previamente pongo el valor de busqueda

Saludos

voxi 14-01-2011 12:22:45

Cita:

Empezado por celades1 (Mensaje 387524)
Hola

Lo primero es normal el fibdataset (que supongo es lo que empleas )
solo devuelve lo pedido con el selectsql

Pero pide con el selectsql lo que quieras ver (no toda la tabla en el caso de muchos registros)

el locate yo lo empleo para lo que tu quieres y me funciona sin problemas

.locate('CODIC',cod,[loCaseInsensitive])

donde codic es el primary key y cod es una variable en que previamente pongo el valor de busqueda

Saludos

Pues no lo entiendo,el locate lo pongo igual que tu, y no hay manera...,solo me funciona una vez, a la próxima ya no lo encuentra, en fin seguro que alguna cosa hago mal pero vete tu a saber que es, de todos modos gracias por tu respuesta,un saludo.

voxi 14-01-2011 14:28:58

Ya está solucionado,tenía que poner la instrucción "trim" al coger la variable, gracias ¡¡


La franja horaria es GMT +2. Ahora son las 18:07:53.

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