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 19-05-2010
Kenobi Kenobi is offline
Miembro
 
Registrado: mar 2007
Posts: 191
Poder: 18
Kenobi Va por buen camino
problema Borrar varias filas de dbgrid

Hola amigos....
buscando en el foro encontre una solucion para recorrer la filas seleccionadas de un tmsdbgrid, sin embargo me genera errores en caso de eliminar dichas filas....

Código Delphi [-]
for i := 0 to Grid.SelectedRows.Count - 1 do
Begin
Grid.GotoSelection(i);
consulta.delete
End;
Grid.SelectedRows.Clear;

si marco filas intercaladas me elimina la siguiente a la marcada, luego luego elimina cosas que no quiero y deja de eliminar otras que si quiero

creo que en el delete cuando elimino un registro el cursos salta al siguiente y pues zasss tambien lo borra, en todo caso les pregunto a ver que me dicen, antes de aplicar una solucion fea(algo como recorrer guardando los indices en un array para luego recorrer el array y eliminar las filas que coincidan con el indice del array)


Gracias por su ayuda....
Responder Con Cita
  #2  
Antiguo 19-05-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola Kenobi, prueba con esto:

Código Delphi [-]
  DBGrid.SelectedRows.Delete:

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #3  
Antiguo 10-08-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 15
gonza_619 Va por buen camino
Cita:
Empezado por Caro Ver Mensaje
Hola Kenobi, prueba con esto:

Código Delphi [-] DBGrid.SelectedRows.Delete:


Saluditos
hola, miren yo tengo un problema distinto al eliminar una fila seleccionada sobre un dbgrid. en primer lugar tengo 2 table relacionados , osea un maestrodetalle, lo que hice fue poner un dblookupcombobox, para el maestro, entonces cuando selecciono un registro de esa tabla maestra por medio de l combobox en el grid me aparece los datos relacionados.
Bien para insertar un registro use
Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var
  Valor, Maximo: Integer;

begin
  Maximo := 0;
  Table1.First;
  table2.Active:=false;

  while not Table1.EoF do
  begin
    Valor := Table1.FieldByName('cod_curso').AsInteger;
    if Valor > Maximo then
      Maximo := Valor;

    Table1.Next;
  end;
  table2.Active:=true;
maximo:=maximo+1;
table1.Insert;
table1.FieldByName('cod_curso').asinteger:=maximo;

luego guardo, pero el problema es cuando elimino una fila q seleccione en el dbgrid solo puse: table1.delete y me da error (master has detail records cannot delete or modify),
mi intencion es hacerlo de esa manera , quisiera saber si ahi alguna solucion, o que tendria q modificar en el codigo o agregar , gracias
Responder Con Cita
  #4  
Antiguo 10-08-2010
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 gonza.

Primero un consejo: Te conviene agregar un nuevo hilo para tu consulta.
Vas a tener más oportunidades de obtener una respuesta satisfactoria. (Ya que más gente va a leer el post y se vá a tratar tu tema en particular).

El error que te arroja es lógico y te dice que no puede borrar el registro actual puesto que hay otros registros que dependen de él.

Hay bases de datos que permiten el borrado en cascada y otras que nó, debiéndolo hacer vos por código.
Por lo que para ayudarte a solucionarlo, deberías especificar con que base de datos estás trabajando.

Saludos.

Última edición por ecfisa fecha: 10-08-2010 a las 19:38:44.
Responder Con Cita
  #5  
Antiguo 10-08-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 15
gonza_619 Va por buen camino
como eliminar fila de dbgrid

bueno las tablas las hice en paradox
Responder Con Cita
  #6  
Antiguo 10-08-2010
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Casi siempre surge la confusión con el uso de los grids, solo hay que recordar que cualquier grid no es mas que la representación de lo que contiene una tabla o query, es mejor hacer cualquier cambio directamente en la tabla y el grid en automático responde.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #7  
Antiguo 10-08-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 15
gonza_619 Va por buen camino
Cita:
Empezado por AzidRain Ver Mensaje
Casi siempre surge la confusión con el uso de los grids, solo hay que recordar que cualquier grid no es mas que la representación de lo que contiene una tabla o query, es mejor hacer cualquier cambio directamente en la tabla y el grid en automático responde.
ok, si lo se por eso buscaba algun codigo distinto para poder eliminar, pensaba en quizas desactivar la tabla maestro y despues eliminar el registro de la tabla detalle y despues volver a acivarlo, es mas lo probe y me da el mismo error, bueno espero alguna ayuda gracias a tdos
table2.active:=false;
table1.delete;
table2.active:=true;
probe con un navigator pero tambien me da el mismo error
Responder Con Cita
  #8  
Antiguo 10-08-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Un masterdetail lo que hace es ligar dos tablas (o mas) esto para hacer normalmente un enlace de dos dbfrid.
Cuando se llama a un master la relacion es filtrada por el campo requerido, la palabra magica, FILTRADA.
Ninguna tabla aceptara borrar campos filtrados por un Table, solamente por sql.

Saludos
PD: Independientemente de la BD.
__________________
Siempre Novato
Responder Con Cita
  #9  
Antiguo 10-08-2010
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Si definiste bien tus tablas, (no mencionas que motor usas) debiste haber colocado las dependencias entre la tabla maestra y la de detalle de manera que cuando borres un registro de la maestra, en automático se borren los detalles (en algunos motores se usa CASCADE).

Lo que dice caral es correcto, por eso no puedes borrar a partir de un grid, tienes que hacerlo directamente en la tabla.

Por otro lado el mensaje de error mismo te da la respuesta: "la tabla maestra tiene registros de detalle, no se puede borrar"...solución: primero borra todo detalle del registro maestro y luego el registro maestro. Ojo: tienes que cerrar las 2 tablas para hacer la operación.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #10  
Antiguo 10-08-2010
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 gonza_619 Ver Mensaje
bueno las tablas las hice en paradox
Hola de nuevo gonza.

Paradox no implementa actualizaciones en cascada.

En este enlace ya han respondido como hacerlo.

Saludos.
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
unir varias filas en una sola microbiano SQL 4 26-04-2010 18:28:27
Marcar varias filas de dbgrid Kenobi Varios 3 02-02-2010 15:22:03
Cómo borrar filas de un StringGrid sac OOP 3 28-04-2008 10:51:23
Seleccionar varias filas de un RXDBGrid kayetano C++ Builder 1 26-06-2006 16:43:00
Evitar Borrar más filas con DBGRID User_Baja_2 Varios 4 12-01-2006 23:59:09


La franja horaria es GMT +2. Ahora son las 01:14:10.


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