Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   problemas con el query (https://www.clubdelphi.com/foros/showthread.php?t=34058)

juangabriel1786 25-07-2006 22:47:09

problemas con el query
 
Hola mi Nombre es juan gabriel, trato de hacer una consulta con el Query y me funciona, pero ok me trae los datos al DBgrid, pero lo que realmente necesito es saber si el query encontro lo que busca,, para asi poder tomar deciciones aqui esta el codigo que uso.

ejemplo: Se le pasa un valor, lo encontro ok, decirle al usuario, olle ese codigo ya existe no puede introducirlo de nuevo.
Y si no fue encontrado,guardar los datos.

Query1.open;
Query1.close;
Query1.ParamByName('buscar').AsInteger:=Strtoint(Edit1.Text);
Query1.open;

Ruben_Cu 25-07-2006 23:33:26

Hola juangabriel1786, hay varias maneras de hacerlo una de ellas es como propones, llegado ese punto puedes preguntar si devolvio algún valor a sea si el query no está vacío, esto sería:
Código Delphi [-]
Query1.open;
Query1.close;
Query1.ParamByName('buscar').AsInteger:=Strtoint(Edit1.Text);
Query1.open;
if not query1.IsEmpty then ShowMessage('El código ya existe');
Saludos

ContraVeneno 25-07-2006 23:50:35

O simplemente puedes poner una llave primaria única en tu base de datos y listo.

Cada vez que alguien quiera agregar un dato que ya existe, te enviará una excepción de violación de llave primaria. (Key Violation)

BuenaOnda 25-07-2006 23:56:26

Hola JuanGa
 
Mira :
hay muchas maneras de Saber si el query nos retorno un valor, o encontro alguna coincidencia con la consulta, que nos le hemos indicado...

para seto debes realizar lo sgte :


Query.Sql.Clear;
Query.Sql.Text:='Select * From Tabla';
Query.Open;

ese codigo nos permite..realizar la consulta verdad.....

ahora para saber si se encontraon coincidencias podrias preguntar
de la sgte manera :

1) IF NOT Query.IsNull THEN

2) IF Query.RecordCount > 0 THEN

3) IF NOT Query.EOF THEN

Bueno amigaso, espero que te sirva..mucha suerte.

ContraVeneno 26-07-2006 00:00:49

Solo para aclarar un poco. Si utilizas llaves primarias en tu base de datos, no tendrás que buscar los datos, luego compararlos con los que quieres grabar, para luego tomar la decisión de si los grabas o no los grabas.

Utilizando llaves, solo tienes que hacer el intento de grabar y listo.

Código:

try Grabar
except on Key violation "Ya existe"


y sin llaves:
Código:

Buscar
Comparar
SI ya existe TONS
 "Ya existe"
SI NO
 Grabar


Ruben_Cu 26-07-2006 00:47:47

Hola a todos, parece que ya estoy cansado.
Cita:

Empezado por BuenaOnda
1) IF NOT Query.IsNull THEN

La propiedad IsNull se aplica a los TField pero no conozco que sea aplicable al TQuery. ¿Es así o estoy en un error?

Tambien puedes verificar el resultado de la busqueda con:
Código Delphi [-]
IF Query1.EOF and Query1.Bof Then ShowMessage('No hay registros');
O usando la función Locate.
Saludos

juangabriel1786 26-07-2006 02:00:26

Muchas Gracia por sus ayuda.
 
Muchas Gracia por sus ayuda Realmente se lo agradesco, ahora puedo crear mi proyecto.


La franja horaria es GMT +2. Ahora son las 23:52:27.

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