[ medixsa @ 02.09.2008. 22:03 ] @
Pozdrav !!!

Delphi 7
FireBird 2.1 itd UIB commponents

moj kod
Code:
  with frmProdaja.tblProdaja do
  begin
    First;
    while not Eof do
     begin
        Delete;
     end;
   Next;


dobijem gresku

List index out of bounds(-1)

probao sam i sa SQL ali ne ide

Code:
  tblProdaja.Close;
  tblProdaja.SQLSelect.Clear;
  tblProdaja.SQLSelect.Add('DELETE * FROM Prodaja');
  tblProdaja.Open;

ne ide


Hvala na odgovoru

Edit: Dodati code tagovi

[Ovu poruku je menjao chachka dana 02.09.2008. u 23:36 GMT+1]
[ schild @ 03.09.2008. 06:14 ] @
Mozda ti je onaj "Next" visak? Probaj bez njega.

Btw, ne koristim bas UIB ali mi svakako ne ide da u tblProdaja.SQLSelect dodajes 'DELETE * FROM Prodaja'... To se radi preko neke Query komponente, a ne kroz dataset.
[ savkic @ 03.09.2008. 12:33 ] @
> dobijem gresku
> List index out of bounds(-1)

Kao što je Dejan već rekao, greška je u Next, sa njime preskačeš slogove jer se posle brisanja pokazivač pozicionira na naredni slog a posle Next se on preskače.

> probao sam i sa SQL ali ne ide
> tblProdaja.SQLSelect.Add('DELETE * FROM Prodaja');
> tblProdaja.Open;

Verovatno zato što koristiš Open, ovaj kveri ne vraća rezultate zato treba da se koristi ExecSQL (ili već kakva je tačno sintaksa).
Postoji i jedan trik za brisanje koji adekvatan ako se radi o ogromnim tabelama bez zavisnih objekata (trigeri, procedure), naime dosta je brže dropovati tabelu i ponovo je napraviti nego brisati slogove iz nje.
[ medixsa @ 03.09.2008. 18:09 ] @
OK hvala svima na odgovorima rijesio sam problem ,tako sto sam postavio UIB Query komponnetu i sa SQl kodom i executeSQL procedurom obrisao sve slogove.

repl. Savkic ,Tabela nema zavisni objekata ,mislim da je dobra ideja , kako vi kazete da je efikasniji nacin itd..


Hvala