Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-07-2013
giulichajari giulichajari is offline
Miembro
 
Registrado: nov 2012
Posts: 306
Poder: 12
giulichajari Va por buen camino
Eliminar un registro de DBGRid

Bueno amigos tengo un DBGrid, con la propiedad de SelectRows en true, es decir que si seleeccion una fila se negrea.
Tengo el siguiente codigo en un menu:

Código Delphi [-]
Query1->Close();
        Query1->SQL->Clear();

 Query1->SQL->Add("DELETE FROM GASTO WHERE Fecha = :VALUE");
 Query1->ParamByName("VALUE")->Value = DBGrid1->Fields[0]->Value;
 Query1->ExecSQL();

Y me da error: Creating cursor handle. No se que puede ser.
Tambien me gustaria que se actualize el DBGRid al borrar un dato.

Muchas gracias.
Responder Con Cita
  #2  
Antiguo 02-07-2013
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 18
TiammatMX Va camino a la fama
Donde hay flechas, hay apaches...

Quiero suponer que donde tienes "->" deberían estar puntos "."; si es así, no veo dónde pudiera estar el problema, a menos que al momento de sustituir tu parámetro venga en nulo...
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Responder Con Cita
  #3  
Antiguo 02-07-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Como dice tiammat, tál como está ese código no tendría que dar error.

Revisa que en el código original no te haya quedado:
Código:
  Query1->Close();
  Query1->SQL->Clear();
  Query1->SQL->Add("DELETE FROM GASTO WHERE Fecha = :VALUE");
  Query1->ParamByName("VALUE")->Value = DBGrid1->Fields[0]->Value;
  Query1->Open(); // <= aquí
Por que si estuvieras usando el método Open en ese caso, te daría exáctamente el error que mencionas.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 02-07-2013
giulichajari giulichajari is offline
Miembro
 
Registrado: nov 2012
Posts: 306
Poder: 12
giulichajari Va por buen camino
Respuesta

Me funciono, el caso es que no se actualiza en el acto. Muchas gracias
Responder Con Cita
  #5  
Antiguo 03-07-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por giulichajari Ver Mensaje
Me funciono, el caso es que no se actualiza en el acto. Muchas gracias
Hola.

Eso sin dudas es debido a que el TDBGrid está asociado a otro componente distinto a "Query1". Al finalizar el borrado tendrías que hacer un Refresh() sobre el otro componente (o cerrarlo y abrirlo).

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 03-07-2013
giulichajari giulichajari is offline
Miembro
 
Registrado: nov 2012
Posts: 306
Poder: 12
giulichajari Va por buen camino
Post Respuesta

Coloque el codigo que me dijiste pero dice
Query1 Cannot perform this operation on a closed dataset, pero no quise ponerle un Query1- open por lo que me dijiste anteriormente.
Responder Con Cita
  #7  
Antiguo 03-07-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

A ver.... Si DBGrid1 está vinculado a Query1 no se puede hacer de la forma anterior ya que al llamar al método Close() se cierra la consulta que alimenta a DBGrid1 y al referenciar a Fields[x] se elevaría una excepción.

Entonces, hay que salvar el valor del campo previamente al cerrado:
Código:
{
  Variant aux = DBGrid1->Fields[0]->Value; // resguardar valor

  Query1->Close();
  Query1->SQL->Text = "DELETE FROM GASTO WHERE Fecha = :PVALUE";
  Query1->ParamByName("PVALUE")->Value = aux;
  Query1->ExecSQL();
  ...
}
Si el caso fuera otro, sería bueno que explicaras con que consulta o dataset está vinculado el DBGrid y el código completo de la consulta.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 03-07-2013
giulichajari giulichajari is offline
Miembro
 
Registrado: nov 2012
Posts: 306
Poder: 12
giulichajari Va por buen camino
Respuesta

Pues me sigue tirando error, y esto para mi se debe a que el DBGrid esta vinculado a un DataSource, entonces este debe estar cerrado. Gracias
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
eliminar registro dbgrid y base de datos edgar_prospero Varios 7 21-08-2012 02:10:22
Eliminar ultimo registro de un dbgrid lisc_dla Varios 8 04-08-2011 15:26:53
Eliminar registro sizne OOP 4 30-04-2010 15:17:58
Eliminar registro Zakio14 Firebird e Interbase 5 20-03-2008 07:07:07
eliminar opcion de eliminar en un dbgrid morfeo21 Varios 3 14-07-2005 17:05:32


La franja horaria es GMT +2. Ahora son las 04:43:24.


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