Hallo, Roland,
Datenbank-Programmierung ist recht weitläufig, bis man sich einigermaßen
sicher bewegen kann. Für die Anwendung in RB habe ich viel gelernt aus
OrdersDatabaseExample.pdf im Ordner Examples/Databas Example. Und ein
ordentliches Buch zu SQL ist sehr hilfreich. Ich habe gelernt aus SQL for
dummies. Und die anderen hier haben bestimmt noch bessere Tipps.
beste Grüße, Christian Hahn.
----- Original Message -----
From: "Roland Quadstege" <[email protected]>
To: "REALbasic NUG German" <[email protected]>
Sent: Thursday, August 06, 2009 3:43 PM
Subject: Re: wie SQL-Tabelle leeren (nicht löschen!)??
Am 05.08.2009 um 16:58 schrieb Christian Hahn:
Hallo, Roland,
db.SQLExecute ("truncate table adressdaten")
Ich würde da sagen:
db.SQLExecute("DELETE FROM adressdaten")
Man kann natürlich auch eine Bedingung einbauen:
db.SQLExecute("DELETE FROM adressdatenWHERE rowID = " + str(ID)
oder irgendeine andere WHERE-Bedingung.
db.Commit
db.Close
end if
else
MsgBox "NIL=Die Datenbank konnte nicht geöffnet werden!"
end if
db.Commit
db.Close
Dieses Commit und Close sind zuviel. In die DB kann nichts übertragen
werden und sie kann nicht geschlossen werden, wenn sie gar nicht geöffnet
ist
Für das Speichern neuer Datensätze in der Tabelle sieht mein Code so aus:
rec = New DatabaseRecord
rec.Column("Datum") = NamensGrid.WritableCell(2, i).Text
rec.Column("Wt") = NamensGrid.WritableCell(3, i).Text
rec.Column("og") = DatenGrid.WritableCell(1, i).Text
rec.Column("VonStd") = DatenGrid.WritableCell(2, i).Text
rec.Column("BisStd") = DatenGrid.WritableCell(3, i).Text
rec.Column("Kommentar") = DatenGrid.WritableCell(4, i).Text
DB_Inst.InsertRecord("KalenderDaten",rec)
DB_Inst.Commit
beste Grüße, Christian Hahn.
Hallo Christian,
vielen Dank für Deine Tips,
ich habe mal meine commits auf die logischen Fälle reduziert und siehe
da: jetzt sieht's schon ganz anders aus.
Ich muss ja zugeben, dass ich noch nicht viel mit Datenbanken gemacht
habe.
Wenn ich mir den Quellcode verschiedener Beispiele ansehe, trifft mich
schier der Schlag.
Daher fange ich ganz, ganz langsam an.
Vielen Dank noch mal für die schnelle Antwort.
Gruß
Roland