Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-01-2019
Rc96 Rc96 is offline
Miembro
 
Registrado: ago 2017
Posts: 75
Poder: 7
Rc96 Va por buen camino
Question Error al refrescar el Query

Saludos,
Llevo rato intentando resolver el siguiente problema pero aun no encuentro nada , luego de cada insert, update o delete que realizo en la base de datos ingreso el siguiente codigo para refrescar el Query:

Código Delphi [-]
Query.DBGrid.DataSource.DataSet.Refresh;

el problema esta en que, aunque realiza la rutina sql correctamente, me genera el siguiente error:

Query: cannot perform this operation on a closed dataset.

Espero puedan ayudarme, gracias de antemano.
Responder Con Cita
  #2  
Antiguo 31-01-2019
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Comprueba que la propiedad Active del DataSet sea TRUE. Ten en cuenta que algunas operaciones pueden cerrarlo así que revisa lo que haces y, en última instancia, usa el método Open.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #3  
Antiguo 31-01-2019
Rc96 Rc96 is offline
Miembro
 
Registrado: ago 2017
Posts: 75
Poder: 7
Rc96 Va por buen camino
Cita:
Empezado por Ñuño Martínez Ver Mensaje
Comprueba que la propiedad Active del DataSet sea TRUE. Ten en cuenta que algunas operaciones pueden cerrarlo así que revisa lo que haces y, en última instancia, usa el método Open.

El Dataset esta activo, intente con el metodo open luego del rutina pero genera el siguiete error:

Cannont Open / define command use Execute / ExcSql

Código Delphi [-]
procedure Guardar;
  var
  BD_Codigo:String;
begin
  with Modulo.DMBox.FDQCategoria do
  begin
    Close;
    SQL.Text:='select * from inv_gpo_prod where "codigo"=:c';
    ParamByName('c').AsString:=MCategoria.E_Codigo.Text;
    Open;
    BD_Codigo:=FieldByName('codigo').AsString;
    if IsEmpty then
    begin
      Close;
      SQL.Clear;
      SQL.Add('insert into inv_gpo_prod ("codigo","descripcion","clasificacion","lote","observacion","status")');
      SQL.Add('values (:c,:d,:clasif,:l,:ob,:s)');
      Param_Guardar; ExecSQL; DMBox.FDConexion.Commit;
    end
    else
    begin
      Close;
      SQL.Clear;
      SQL.Add('update inv_gpo_prod set "codigo"=:c,"descripcion"=:d,"clasificacion"=:clasif,"lote"=:l,"observacion"=:ob,"status"=:s');
      SQL.Add('where "codigo"=:c');
      Param_Guardar; ExecSQL; DMBox.FDConexion.Commit;
    end;
  end;
end;

Última edición por ecfisa fecha: 31-01-2019 a las 20:08:24. Razón: Quitar emoticones del código
Responder Con Cita
  #4  
Antiguo 31-01-2019
Avatar de Soa Pelaez
Soa Pelaez Soa Pelaez is offline
Miembro
 
Registrado: nov 2015
Posts: 133
Poder: 9
Soa Pelaez Va por buen camino
Prueba cerrando y abriendo el query, aunque tambien puedes revisar que sentencia sql tiene tu query, que de pronto no se quede pegado con tus sentencias de update o insert y que este si tenga la de algún tipo de select de datos.
Responder Con Cita
  #5  
Antiguo 01-02-2019
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.234
Poder: 20
ElKurgan Va camino a la fama
¿No será que en alguna función, como el paramguardar o el ExecSQL lo estás cerrando sin querer?

Saludos
Responder Con Cita
  #6  
Antiguo 01-02-2019
Rc96 Rc96 is offline
Miembro
 
Registrado: ago 2017
Posts: 75
Poder: 7
Rc96 Va por buen camino
Cita:
Empezado por Soa Pelaez Ver Mensaje
Prueba cerrando y abriendo el query, aunque tambien puedes revisar que sentencia sql tiene tu query, que de pronto no se quede pegado con tus sentencias de update o insert y que este si tenga la de algún tipo de select de datos.

Buen día Soa, la unica forma de refrescar es realizando una rutina select despues de el insert, update o delete. Con esto resuelvo, aun asi me gustaria entender la causa de este error, debido a que estaba funcionando correctamente.



Gracias a todos por sus respuestas.
Responder Con Cita
  #7  
Antiguo 01-02-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Rc96 Ver Mensaje
Buen día Soa, la unica forma de refrescar es realizando una rutina select despues de el insert, update o delete. Con esto resuelvo, aun asi me gustaria entender la causa de este error, debido a que estaba funcionando correctamente.
Gracias a todos por sus respuestas.
Es el tipo de pregunta que resulta casi imposible de contestar si no vemos el código fuente implicado en el caso.
Sólamente podemos intentar averiguar.
Responder Con Cita
  #8  
Antiguo 01-02-2019
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por Rc96 Ver Mensaje
[...]estaba funcionando correctamente.
¿Exactamente con ese mismo código?

Porque así, como se ve, después de hacer el Insert o Update ningún Refresh funcionaría con el objeto Modulo.DMBox.FDQCategoria.

Y concuerdo con Casimiro: ¡No uses With en ningún caso! Tiene un enorme defecto de fábrica.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
ibase_query() [function.ibase-query]: Dynamic SQL Error SQL error code = -104 Token MALBOTO22 PHP 8 06-05-2015 19:22:39
Refrescar una Query oca Firebird e Interbase 0 27-01-2005 22:34:32
Refrescar un query para un DBGrid neon OOP 4 19-08-2004 17:06:39
Error en Query silviodp Conexión con bases de datos 11 30-07-2004 15:58:52
Como Refrescar un Query sitrico SQL 6 02-07-2004 21:40:35


La franja horaria es GMT +2. Ahora son las 23:12:31.


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