BUG in Connection.Delete ?

Spezielle Fragen zu PostgreSQL, MySQL, SQLite, SQL ...
Antworten
Benutzeravatar
Ray65
Foriker
Beiträge: 113
Registriert: Fr 3. Okt 2008, 15:00
Wohnort: Königseggwald, Ba-Wü
Kontaktdaten:

BUG in Connection.Delete ?

Beitrag von Ray65 » So 6. Mär 2011, 12:27

Hallo,

bisher spreche ich mein Datenbankverbindung immer direkt mit Connection.Exec an. Klappt auch wunderbar. Nun wollte ich aber mal die Gambaseigene Funktionen wie C.Edit, C. Create und C.Delete ausprobieren. Mit die erste Beide habe ich keine Problemen. In C.Delete scheint aber ein Fehler versteckt zu sein. Laut Dokumentation heißt es:
Connection.Delete (gb.db)

SUB Delete ( Table AS String [ , Request AS String, Arguments AS , ... ] )

Removes records from a database table.

* Table is the table name.
* Request is a SQL WHERE clause used for filtering the table.
* Arguments are quoted as needed by the SQL syntax, and substituted inside the Request string

The last feature allows you to write requests that are independant of the underlying database type.


Wenn ich nun aber folgender Code eingebe:

Code: Alles auswählen

Connection.Delete("test", "id", $RecordSet1.Index + 1)

(wobei 'test' mein Datenbanktabelle und 'id' die Primarykey-Spalte ist) wird nicht die aktuelle Zeile ($RecordSet1.Index + 1) sonder meine ganze Tabelle geleert.
O.g. Zeile ist aber doch das Äquivalent zu:

Code: Alles auswählen

Connection.Exec("DELETE FROM test WHERE id = '" & Str$($RecordSet1.Index + 1) & "';")

oder sehe ich das falsch?

Gruß Raymond
Ubuntu 12.04 - Gnome 3.4.1 - Gambas 3.3.3

"Man kann kein Programm idiotensicher machen, weil die Idioten so erfinderisch sind!"

Benutzeravatar
Ray65
Foriker
Beiträge: 113
Registriert: Fr 3. Okt 2008, 15:00
Wohnort: Königseggwald, Ba-Wü
Kontaktdaten:

Re: BUG in Connection.Delete ?

Beitrag von Ray65 » So 6. Mär 2011, 19:46

Hallo,

Ok, doch kein Bug. So geht es:

Code: Alles auswählen

Connection.Delete("test", "id = &1", Label4.Text)


Gruß Raymond
Ubuntu 12.04 - Gnome 3.4.1 - Gambas 3.3.3

"Man kann kein Programm idiotensicher machen, weil die Idioten so erfinderisch sind!"

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast