indeksowanie tabeli

0

stoworzylem sobie baze danych w delphi. i teraz zrobilem juz dodawanie rekodrów i usuwanie w tabeli. mam w tabeli kolumne w ktorej zawarty mam indeks rekordu. teraz chcialbym aby ten indeks mi sie aktualizowal gdy usune jakis rekord. bo obecnie mam tak ze jak np mam rekordy o indeksach od 1 do 10 i usune 5 mam 9 rekordów ale indeksy mam kolejno 1-4 i od 6-10moze ktos moglby mi tyu pomoc?? bylbym wdzieczny.

0

jeżeli dobrze rozumiem to ma być 1-9 więc w czy problem -> chcesz dekrementować wszystkie indeksy większe od usuniętego o 1.

0

a po co Ci to - jak dasz ORDER BY jakies_pole, gdzie porządek sortowania po jakieś_pole będzie inny niż po polu id to i tak będziesz miał dziury.
BTW poczytaj co to są pola Id i po co są i jak się robi kolumny typu LP

0

Nie do końca zrozumiałęm, o co ci chodzi, ale wydaje mi się, że chciałbyć, by w twojej bazie wszystkie rekordy miały kolejne numery, niezależnie od tego, ile rekordów usuniesz. Jeżeli to właśnie o tym mowa, to najlepiej użyć licznika for by po każdym usunięciu rekordu, w całej tabeli poprawił wszystkie rekordy

procedure TForm1.Button1Click(Sender: TObject);
var
a:integer;
begin
Table1.First;
for a:=0 to Table1.RecordCount-1 do
begin
Table1.Edit;
Table1NUMER.AsInteger:= a+1;
Table1.Post;
Table1.Next;
end;
end;

0
wojmysz napisał(a)

Nie do końca zrozumiałęm, o co ci chodzi, ale wydaje mi się, że chciałbyć, by w twojej bazie wszystkie rekordy miały kolejne numery, niezależnie od tego, ile rekordów usuniesz. Jeżeli to właśnie o tym mowa, to najlepiej użyć licznika for by po każdym usunięciu rekordu, w całej tabeli poprawił wszystkie rekordy

procedure TForm1.Button1Click(Sender: TObject);
var
a:integer;
begin
Table1.First;
for a:=0 to Table1.RecordCount-1 do
begin
Table1.Edit;
Table1NUMER.AsInteger:= a+1;
Table1.Post;
Table1.Next;
end;
end;

Polakom gratulujemy wojmysza ...

1 użytkowników online, w tym zalogowanych: 0, gości: 1