Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-11-2003
jeni jeni is offline
Registrado
 
Registrado: sep 2003
Ubicación: Sinaloa,México
Posts: 7
Poder: 0
jeni Va por buen camino
Unhappy Problemas con Consultas!!!

Hola, tengo un problemilla, lo que pasa esque estoy haciendo un pequeño sistema en el cual estoy registrando proyectos que se realizan dentro de una escuela, pero para registrar un proyecto necesito verificar si no existe alguno parecido que ya este registrado, para esto hago una consulta, el problema aqui esque debajo del codigo de la consulta quiero poner una condicion la cual me diga que si el resultado de la consulta es mayor o igual que uno(osea que si encontro algun proyecto similar)no me permita registrar el nuevo proyecto y si es igual a cero que si lo registre.

Bueno el chiste es que no se como saber si la consulta arrojo resultados o no, si alguien me puede ayudar se lo agradezco de antemano...

A mi consulta es la siguiente:

query1.close;
query1.open;
query1.SQL.clear;
query1.sql.add('Select tbl_proyectos.Num_Control,tbl_proyectos.Titulo');
query1.sql.add('from tbl_proyectos');
query1.sql.add('where tbl_proyectos.cve_empresa=:empresa and tbl_proyectos.cve_tipo=:tipo and tbl_proyectos.num_control<>:control');
query1.ParamByName('empresa').datatype:=ftstring;
query1.ParamByName('tipo').datatype:=ftstring;
query1.ParamByName('empresa').value:=e_empresa.text;
query1.ParamByName('tipo').value:=e_tipop.text;
query1.ParamByName('control').datatype:=ftstring;
query1.ParamByName('control').value:=e_numcontrol.text;
query1.open;


Espero me haya sabido explicar...
jeni
Responder Con Cita
  #2  
Antiguo 03-11-2003
Viet Viet is offline
Miembro
 
Registrado: jul 2003
Ubicación: Argentina - Mar del Plata
Posts: 252
Poder: 21
Viet Va por buen camino
creo que con

Código:
 Query1.RecordCount > 0
Estaria bien
__________________
Marín Ignacio Borthiry (Viet) - "El hombre arriesga su vida cada vez que elije y eso es lo que lo hace libre" ;)
Responder Con Cita
  #3  
Antiguo 04-11-2003
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Tengo entendido que en Tablas paradox el RecordCount funciona bien, pero en otros sistemas puede dar un valor erróneo.

Una alternativa que nunca falla es:

Código:
query.Open;
if not query.IsEmpty then
while not query.eof do
begin
  if query.fields[0].isNull then // jarrrr valor nulo del primer campo.
  if query.fieldByName('NombreCampo').asinteger = 0 then // blah
// blah, blah
  query.Next
end;
Responder Con Cita
  #4  
Antiguo 04-11-2003
robertgs robertgs is offline
Registrado
 
Registrado: oct 2003
Posts: 3
Poder: 0
robertgs Va por buen camino
Otra opción que tienes si no te funciona el recordCount, que funciona en casi todas las BBDD es poner un contador y recorrer la consulta hasta que el contador sea mayor que 1, y utilizar una variable para salir del bucle cuando sea:

acabado:boolean;

acabado:=false;
while (not query.eof) and (not acabado) then
begin
i:=i+1;
if i>1 then
acabado:=true;
end;


Espero que sirva de ayuda.
Responder Con Cita
  #5  
Antiguo 04-11-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Lo mejor es lo que comenta el amigo Lepe, es decir, comprobar el estado de IsEmpty

Código:
try
  Query.Open;
except
  Exit;
end;

if Query.IsEmpty then
  // no hay registros
else
  // hay registros
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 12:30:10.


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
Copyright 1996-2007 Club Delphi