![]() |
[SQL] Frage bezüglich Primärer Index
Also ich habe ID als Primary Index gesetzt
Datenbank ID Data Data 1 asdfgfgfg asasdd 2 asdfgfgfg asasdd 3 asdfgfgfg asasdd 4 asdfgfgfg asasdd soah...wenn ich jetzt die Nummer 3 Lösche (DELETE) dann sieht das ja so aus Datenbank ID Data Data 1 asdfgfgfg asasdd 2 asdfgfgfg asasdd 4 asdfgfgfg asasdd und wenn ich nun einen neuen Eintrag hinzufüge (INSERT) dann so... Datenbank ID Data Data 1 asdfgfgfg asasdd 2 asdfgfgfg asasdd 4 asdfgfgfg asasdd 5 asdfgfgfg asasdd Nun ist mein Problem, dass meine Abfrage dann so ausschaut FOR i=1 to ANZAHL AN ROWS die Zeile mit ID = i wird verändert inc(i) im Klartext Anzahl an Zeilen ist ja 4 1. Durchlauf i=1 ID = 1 ==> gefunden 2. Durchlauf i=2 ID = 2 ==> gefunden 3. Durchlauf i=3 ID = 3 ==> nicht gefunden 4. Durchlauf i=4 ID = 4 ==> gefunden Das Problem ist also, dass die Zeile mit der ID 5 gar nicht angesprochen wird, gibt es da eine einfachere Methode alle Zeilen durchzugehen... Vielleicht ein Array mit allen ID's drinn'...also [1,2,4,5] und dann die Laufvariable für die ganze Länge des Arrays einsetzt etc. etc. mfg NeoXan |
Re: [SQL] Frage bezüglich Primärer Index
Hallo NeoXan,
ich kann erstmal nicht so richtig sehen, was dein Problem mit SQL zu tun hat: Du fragst doch offensichtlich nicht über SQL ab, sondern über Kompos, oder? Das Problem an deinem Code ist der Zugriff über die Gleichheitsbedingung mit der Zählvariable. Wenn sich die Datenmenge verändert (gerade bei Löschungen) darf man nicht so zugreifen. Die natürliche Lösung wäre es, die Tabelle über einen TTable zu öffnen (da du ja wohl alle Sätze haben möchtest) und dann per Next auf das jeweils nächste Element zuzugreifen, bis es keine weiteren Sätze gibt. Dies entspricht einem SELECT * FROM <table> und ist nicht vom Primärindex abhängig. Der wird für einen solchen Zugriff nicht benötigt. Wenn du doch etwas anderes willst, solltest du schreiben, wie deine Umgebung aussieht: Welche DB? Welche Zugriffsmethode (ADO, BDE)? Bis dann Peter |
Re: [SQL] Frage bezüglich Primärer Index
In was für einer Struktur (Liste, Feld ...) speicherst Du deine Tabellenzeilen denn ??
Und warum löschst Du und suchst gleichzeitig innerhalb einer einzigen Schleife ?? |
Re: [SQL] Frage bezüglich Primärer Index
SQL-Code:
"DELETE FROM termine WHERE id = '$id'";
SQL-Code:
"INSERT INTO termine ( titel , Date_Von , Date_Bis , `desc`) VALUES ('$titel', '$datevon', '$datebis', '$txt')";
|
Re: [SQL] Frage bezüglich Primärer Index
Zitat:
Delphi-Quellcode:
Gruß,
var
ID : integer ; begin qry.open ; with qry do begin while not eof do begin ID := FieldByName ('ID').AsInteger ; // -> Mit dieser ID kannst du dann was machen next ; end ; end ; close ; end ; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz