Ir al contenido


Foto

Adoquery sql server 2000


  • Por favor identifícate para responder
2 respuestas en este tema

#1 luk2009

luk2009

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.040 mensajes
  • LocationSanto Domingo

Escrito 12 mayo 2009 - 10:59



delphi
  1. procedure TFRMpendientes.Timer1Timer(Sender: TObject);
  2.  
  3. begin
  4.   DMmonitorenred.ADOQPendientes.SQL.Clear;
  5.   DMmonitorenred.ADOQPendientes.SQL.Add('select * from activas where alarmnum > ' + quotedstr(inttostr(buscar)) );
  6.   DMmonitorenred.ADOQPendientes.Open;
  7.  
  8. if DMmonitorenred.ADOQPendientesALARMNUM.AsInteger > buscar  then
  9.  
  10.   begin
  11.     DMmonitorenred.ADOQPendientes.last;
  12.   end;
  13.   if (DMmonitorenred.ADOQActivasALARMNUM.Value) < (DMmonitorenred.ADOQPendientesALARMNUM.Value)  then
  14.       begin
  15.         //DMmonitorenred.ADOQActivas.Requery();
  16.         DMmonitorenred.ADOQActivas.SQL.Add('select * from activas where alarmnum > ' + quotedstr(inttostr(contador)) );
  17.         DMmonitorenred.ADOQActivas.Open;
  18.         DMmonitorenred.ADOQActivas.Last;
  19.       end;
  20.  
  21.  
  22. end;



- BUSCAR es una variable de tipo entero. A esta variable le paso el valor del campo llave llamado alarmum en el evento ONSHOW del form
y me sirve de guia para saber si hay algun evento nuevo que haya llegado a la base de datos del servidor.

- Tengo dos Dbgrid , uno es para los eventos nuevos que llegan y el otro tiene todo los eventos que tengan un campo llamado completa con el valor pendiente o en espera
la idea es que si el valor del campo alarmnum en el registro nuevo que llega es mayor que el de la tabla de pendientes, esta se actualice.

Esta parte la hace bien, lo que pasa es que SE MANTIENE ACTUALIZANDO EL QUERY DE LAS PENDIENTES AUNQUE NO HAYA LLEGADO NINGUN REGISTRO NUEVO En EL 1ER QUERY.

aunque solo lo hace a partir de que llegan los primero(s)  registro(s) en el primer query

gracias de antemano

  • 0

#2 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 13 mayo 2009 - 10:25

Hola
La verdad no entiendo bien lo que quieres, pero tal vez asi:


delphi
  1. procedure TFRMpendientes.Timer1Timer(Sender: TObject);
  2.  
  3. begin
  4.   DMmonitorenred.ADOQPendientes.SQL.Clear;
  5.   DMmonitorenred.ADOQPendientes.SQL.Add('select * from activas where alarmnum > ' + quotedstr(inttostr(buscar)) );
  6.   DMmonitorenred.ADOQPendientes.Open;
  7.  
  8.       if DMmonitorenred.ADOQPendientesALARMNUM.AsInteger > buscar  then
  9.         DMmonitorenred.ADOQPendientes.last;
  10.  
  11.     if (DMmonitorenred.ADOQActivasALARMNUM.Value) < (DMmonitorenred.ADOQPendientesALARMNUM.Value)  then
  12.         begin
  13.         DMmonitorenred.ADOQActivas.SQL.Add('select * from activas where alarmnum > ' + quotedstr(inttostr(contador)) );
  14.         DMmonitorenred.ADOQActivas.Open;
  15.         DMmonitorenred.ADOQActivas.Last;
  16.       end;
  17.  
  18. end;


Saludos
  • 0

#3 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 13 mayo 2009 - 11:10

Hola

Esta parte la hace bien, lo que pasa es que SE MANTIENE ACTUALIZANDO EL QUERY DE LAS PENDIENTES AUNQUE NO HAYA LLEGADO NINGUN REGISTRO NUEVO En EL 1ER QUERY.


Esto sucede porque no estás validando si hay o no datos en el query



delphi
  1. procedure TFRMpendientes.Timer1Timer(Sender: TObject);
  2. begin
  3.    DMmonitorenred.ADOQPendientes.SQL.Clear;
  4.    DMmonitorenred.ADOQPendientes.SQL.Add('select * from activas where alarmnum > ' + quotedstr(inttostr(buscar)) );
  5.    DMmonitorenred.ADOQPendientes.Open;
  6.    if ADOPendientes.RecordCount > 0 then begin //Nos aseguramos que existan datos en Pendientes.
  7.       if DMmonitorenred.ADOQPendientesALARMNUM.AsInteger > buscar  then begin
  8.          DMmonitorenred.ADOQPendientes.last;
  9.          if (DMmonitorenred.ADOQActivasALARMNUM.Value) < (DMmonitorenred.ADOQPendientesALARMNUM.Value) then begin
  10.             DMmonitorenred.ADOQActivas.Close; //Cerramos ADOQActivas para proceder a realizar la consulta.
  11.             DMmonitorenred.ADOQActivas.SQL.Clear; //Limpiamos la consulta anterior.
  12.             DMmonitorenred.ADOQActivas.SQL.Add('select * from activas where alarmnum > ' + quotedstr(inttostr(contador)) );
  13.             DMmonitorenred.ADOQActivas.Open;
  14.             DMmonitorenred.ADOQActivas.Last;
  15.          end;
  16.       end;
  17.    end;
  18. end;



Salud OS
  • 0




IP.Board spam blocked by CleanTalk.