FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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:
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. |
#2
|
||||
|
||||
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 |
#3
|
||||
|
||||
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í Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#4
|
|||
|
|||
Respuesta
Me funciono, el caso es que no se actualiza en el acto. Muchas gracias
|
#5
|
||||
|
||||
Cita:
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 .... |
#6
|
|||
|
|||
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. |
#7
|
||||
|
||||
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(); ... } Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#8
|
|||
|
|||
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
|
|
|
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 |
|