Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   contar elemento de un select (https://www.clubdelphi.com/foros/showthread.php?t=63668)

tebre 25-02-2009 20:54:18

contar elemento de un select
 
hola compalñeros que tal miren mi duda esta en un select:
Código Delphi [-]
  Datos.QryInsertDetalleSolicitud.Close;
  Datos.QryInsertDetalleSolicitud.SQL.Clear;
  Datos.QryInsertDetalleSolicitud.SQL.Add('SELECT * ');
  Datos.QryInsertDetalleSolicitud.SQL.Add('FROM DetalleSolicitud');
  Datos.QryInsertDetalleSolicitud.SQL.Add('WHERE ClaveProducto='+ QuotedStr(Claveproducto)+ ' AND FolioSolicitud=' + EdfolioSolicitud.Text +';');
  Datos.QryInsertDetalleSolicitud.Open;
  if Datos.QryInsertDetalleSolicitud.RecordCount = 0 then {AQUI.- Quiero saber cuando solamente me quedeo un campo. como hacer eso??}
    Begin
      Application.MessageBox('En la solicitud debe contener un producto como minimo !!!', '::: Error :::',MB_ICONERROR);
    End
  else
    begin
    {aqui borro al elemento}
    end;



espero me puedan ayudar grax

Caro 25-02-2009 21:19:10

Hola tebre, no entiendo cual es el problema que tienes el RecordCount debería funcionarte, pero tambien puedes utilizar IsEmpty.

Código Delphi [-]
if Datos.QryInsertDetalleSolicitud.IsEmpty then//Si tu consulta no devuelve ningún registro 
  Begin
      Application.MessageBox('En la solicitud debe contener un producto como minimo !!!', '::: Error :::',MB_ICONERROR);
    End
  else
    begin
.............

Saluditos

tebre 25-02-2009 21:53:49

lo que yo quiero es que me elimine siempre y cuando exista como minimo un elemento en base de datos. entonces hago un select para saber si hay elemtos en la base de datos....si hay, que me elimine, por ejemplo si tengo 3 elementos...que me elimine a dos...pero que no me deje eliminar si solamente hay uno....como hacer eso???

Código Delphi [-]
 
Datos.QryInsertDetalleSolicitud.Close;
  Datos.QryInsertDetalleSolicitud.SQL.Clear;
  Datos.QryInsertDetalleSolicitud.SQL.Add('SELECT * ');
  Datos.QryInsertDetalleSolicitud.SQL.Add('FROM DetalleSolicitud');
  Datos.QryInsertDetalleSolicitud.SQL.Add('WHERE ClaveProducto='+ QuotedStr(Claveproducto)+ ' AND FolioSolicitud=' + EdfolioSolicitud.Text +';');
  Datos.QryInsertDetalleSolicitud.Open;
  if Datos.QryInsertDetalleSolicitud.RecordCount = 1 then {AQUI.- Quiero saber cuando solamente me quede un elemento. como hacer eso??}
    Begin
      Application.MessageBox('En la solicitud debe contener un producto como minimo !!!', '::: Error :::',MB_ICONERROR);
    End
  else
   {Eliminar}
  end;

roman 25-02-2009 22:01:28

¿Y cuál es el problema? Al parecer, tu código hace exactamente lo que quieres.

En todo caso, quizá sea más conveniente consultar directamente cuántos registros tienes:

Código SQL [-]
select count(*) from DetalleSolicitud
where ClaveProducto = :clave and FolioSolicitud = :folio

// Saludos


La franja horaria es GMT +2. Ahora son las 05:52:36.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi