am 05.08.2009 15:21 Uhr schrieb Roland Quadstege unter
[email protected]:
> Hallo Experten,
Nicht doch...
> ich versuche mich seit einigen Tagen darin, eine SQL-Datenbank
> anzulegen und anschließen mit "Leben" zu füllen.
> Was mir noch nicht gelingt ist u. a. das Löschen des Tabelleninhaltes.
> Ich habe versucht Beispielprogramme an meine Bedürfnisse anzupassen -
> aber es geht auch dann nicht. Hier mal mein Quellcode:
>
> Dim dbFile as FolderItem
> Dim db as REALSQLdatabase
> Dim rec As DatabaseRecord
> dim rs as RecordSet
> dim z as Integer
> db= New REALSQLdatabase
> dbFile = GetFolderItem("Personendaten.rsd")
> if dbFile <> nil then
> if db.Error =False then
> listbox1.DeleteAllRows ' hat noch keine Bedeutung für das Löschen
> db.DatabaseFile = dbFile
> db.SQLExecute ("truncate table adressdaten")
An der Stelle würde ich mal auf db.error checken. Also:
If db.error then
Msgbox (db.errormessage)
end if
> MsgBox str(db.DatabaseFile.Length)
> MsgBox "Tabelle Adressdaten gelöscht"
> db.Commit
> db.Close
> end if
> else
> MsgBox "NIL=Die Datenbank konnte nicht geöffnet werden!"
> end if
> db.Commit
> db.Close
>
> Wo ist da der Klopper?
>
> Ein weiteres Problem: Ich lege eine Tabelle einmalig an und schreibe
> dann mal eine paar Zeilen Text rein (über eine Listbox, die ich zur
> Eingabe und auch zur Ausgabe der Daten nutze). Ich fand's gut, dass
> das gleich geklappt hat. Wenn ich dann aber in diese gleiche Tabelle
> weiteren Text mit "insert" anhängen will, dann kommt die Meldung
> "Cannot commit - no transaction is active 1". Kennt das jemand? Kennt
> jemand eine Lösung?
>
> Vielleicht kann mir jemand weiterhelfen.
Nicht, wenn wir nicht sehen können, wie der code da genau aussieht. Ist da
evtl. schonmal commit aufgerufen worden? In dem geposteten code wird
db.commit auch einmal zuviel aufgerufen. db könnte in den letzten Zeilen
auch nil sein.
Grüße aus Berlin,
Maximilian Tyrtania