Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   como borrar datos de una tabla (https://www.clubdelphi.com/foros/showthread.php?t=43890)

majuub 23-05-2007 12:55:01

como borrar datos de una tabla
 
buenas estoy haciendo un trabajo para informatica, al pulsar un boton se descarga un documento de texto en un combobox, la informacion del combobox lo pasamos a la tabla, ¿como seria para borrar los datos de fila en fila de la tabla? para que se comprenda mejor pongo el boton de pasar del combobox la informacion a la tabla:
var i,j,nf:integer;
begin
t.rowcount:=(l.items.count div 8)+1;
i:=0;
j:=1;
while i<= l.items.count-1 do
begin
t.cells[1,j]:=l.items[i];
t.cells[2,j]:=l.items[i+1];
t.cells[3,j]:=l.items[i+2];
t.cells[4,j]:=l.items[i+3];
t.cells[5,j]:=l.items[i+4];
t.cells[6,j]:=l.items[i+5];
t.cells[7,j]:=l.items[i+6];
t.cells[8,j]:=l.items[i+7];
t.cells[9,j]:=l.items[i+8];
i:=i+8;
j:=j+1;
end;
nf:=0;
for i:=1 to t.rowcount do if t.cells[1,i]<>'' then nf:=nf+1;
t.rowcount:=nf+1;
end;
saludos;)

kuan-yiu 23-05-2007 13:46:17

Utiliza las etiquetas Delphi para que el código se señale correctamente:
Código Delphi [-]
var i,j,nf:integer;
begin
  t.rowcount:=(l.items.count div 8)+1;
  i:=0;
  j:=1;
  while i<= l.items.count-1 do
  begin
    t.cells[1,j]:=l.items[i];
    t.cells[2,j]:=l.items[i+1];
    t.cells[3,j]:=l.items[i+2];
    t.cells[4,j]:=l.items[i+3];
    t.cells[5,j]:=l.items[i+4];
    t.cells[6,j]:=l.items[i+5];
    t.cells[7,j]:=l.items[i+6];
    t.cells[8,j]:=l.items[i+7];
    t.cells[9,j]:=l.items[i+8];
    i:=i+8;
    j:=j+1;
  end;
  nf:=0;
  for i:=1 to t.rowcount do
    if t.cells[1,i]<>'' then
      nf:=nf+1;
  t.rowcount:=nf+1;
end;
Y de paso sería necesario que nos dieses algo más de información, como por ejemplo la base de datos que usas. Aunque me parece que lo que necesitas son unas nociones básicas sobre el uso de las bases de datos. Si es así te recomiendo que busques el libro "La cara oculta de Delphi 4" que se encuentra disponible en muchos sitios de la red y creo que te ayudará.

Ñuño Martínez 23-05-2007 13:47:26

Creo que no se refiere a una tabla de base de datos, si no a una tabla de presentación de datos (TGrid), ¿o me equivoco?

Lepe 23-05-2007 14:33:00

Usa t.Rows[3].delete;

Borrará toda la fila número 4 (considerando que empieza en cero, y que dicha fila suele ser fixed).

Saludos

seoane 23-05-2007 14:41:29

Cita:

Empezado por Lepe
Usa t.Rows[3].delete;

:confused: ¿Eso te compila Lepe?

Yo usaria algo como esto:
Código Delphi [-]
procedure EliminarFila(Grid: TStringGrid; Fila: Integer);
var
  i: integer;
begin
  if (Fila >= 0) and (Fila < Grid.RowCount)  then
  begin
    for i:= Fila to Grid.RowCount - 2 do
      Grid.Rows[i].Assign(Grid.Rows[i+1]);
    Grid.RowCount:= Grid.RowCount - 1;
  end;
end;

// Por ejemplo para eliminar la fila 2
EliminarFila(StringGrid1,1);

Lepe 23-05-2007 15:04:01

Pues vaya chasco me he llevado en BDS2006...

Las filas son TStrings... en principio esto compila:
Código Delphi [-]
t.Rows[3].Delete(3);

Pero en ejecución lanza una bonita excepción de "Invalid Grid Operation":
Código Delphi [-]
procedure TStringGridStrings.Delete(Index: Integer);
begin
  InvalidOp(sInvalidStringGridOp);
end;

La verdad es que desde el code Insgiht vi el método Delete así que suspuse que no habría problemas.

Perdonen vuestras mercedes ;).

Saludos

majuub 23-05-2007 19:07:30

me refiera a una tabla TStrings lo malo es que son filas indefinidas lo mismo 30 que 49, deberia empezar a borrar desde la ultima fila gracias y saludos;)


La franja horaria es GMT +2. Ahora son las 09:29:33.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi