Seite 1 von 1

Datenbank: Datensatz Editieren, Löschen

Verfasst: 11.03.2005 23:31
von Pelagio
:lamer:
Hallo Leidensgenossen

Ich habe mich nach langerm zögern entschieden auch Datenbank Anendungen, die ich vorher mit VB programmiert hatte, mit PureBasic zu Programmieren und tatsächlich ich kann eine Axccess Datenbank auslesen und sogar neue Daten einfügen.
Allerdings habe ich noch nicht hereaus, wie ich einen Datensatz Löschen oder Ändern Kannl.
Wie ich dies ohne eine 'WHERE' Anweisung zustande bringe.
Ich habe eine Datenbank ohne Indizierungsfeld und so kann ich keine direkte Abfrage nach diesem Feld durchführen.
Meine Frage an euch:
Gibt es die Möglichkeit bei der UPDATE Abfrage die augendblickliche Zeile zu benutzen?
So Nicht:

Code: Alles auswählen

SQL.s = UPDATE Tabellenname SET Tabellenfeld = " + Tabellendaten "WHERE TabellenID= " + TabellenID der Zeile
DatabaseUpdate(SQL)
Sonder So:

Code: Alles auswählen

SQL.s = UPDATE Tabellenname SET Tabellenfeld = " + Tabellendaten + "???= Tabellenzeile"
DatabaseUpdate(SQL)

Verfasst: 11.03.2005 23:50
von freedimension
Entweder eine Datenbank ist gut designt und hat einen Unique Key oder eben nicht. In letzterem Fall wüsste ich keine Möglichkeit gezielt eine Zeile anzusprechen.

Ein Unique Key kann übrigens auch aus mehreren Feldern bestehen. Einfaches Beispiel: Die Kombination aus Vorname, Nachname, Geburtsdatum.

Achja, indiziert ist wieder was anderes, was du meinst ist sicherlich identifizieren, also ein ID-Feld ;)

Verfasst: 12.03.2005 08:06
von Clipper
Nein, in VB arbeitest Du mit Recordset Objekten die eine Verbindung zur Datenbank haben und durch deren Methoden ein Update
etc. erfolgt. In PB bist Du nach absetzen des SELECT-Statements von der Datenbank quasi losgelöst. Wenn Du mit SQL ein Update machen willst, mußt Du immer sagen was Du updaten willst. Ohne WHERE wird sonst die ganze Tabelle upgedatet (schreckliches Wort). Wenn Du keine eindeutige Datensatz-ID hast, kannst Du zwar mit z.B. ...WHERE name='Meier' AND vorname='Hans' updaten es gibt aber u.U. mehrere Hans Meiers. Deshalb ist es eigentlich zwingend erforderlich einen eindeutigen Datensatzkennzeichner einzuführen also idealerweise ein Autoincrementfeld.