Ich habe ein Problem mit dem Aktualisieren von Bildfeldern. Ich habe 8
verschiedene JPEG-Felder (long varbinary) in einer
Old-RealBasic-Datenbank. Ich möchte einen Datensatz dazu benutzen, bis
zu 8 Bilder zu speichern.
Das Problem: Wenn ich das erste Bild hinzufüge, wird der Datensatz
korrekt angelegt. Auch eine Aktualisierung klappt mit einem neuen Bild
auf das bereits gefüllte problemlos. Das alte Bild wird mit dem neuen
korrekt überschrieben.
Nur wenn ich eine zweites Bild in das Bild-DB-Feld 2 eintragen möchte,
reagiert er überhaupt nicht. An was kann das liegen ?
Es wird einfach nicht gespeichert, ob wohl er den Aktualisierungs-Code
korrekt durchläuft.
MacOS X 10.3.7/G5/RB 5.5.3 dt
Wer weiß Abhilfe ?
Hier mein Code:
dim db as Database
dim f1, f2 as folderitem
dim meinBild, meinAusschnitt as picture
dim rs, rs2, rs3 as databasecursor
dim rec as databaserecord
dim meinZaehler as integer
//Do
If Obj.TextAvailable then
//beep
//msgbox Obj.text
f1= getFolderItem(obj.text)
if (f1.exists) then
meinBild = f1.openAsPicture
meinAusschnitt = NIL
meinAusschnitt = NewPicture(me.width,me.height,32)
meinAusschnitt.graphics.DrawPicture meinBild, 0, 0
f2 = GetFolderItem("Album")
if not f2.exists then
beep
msgBox "Die Datenbank konnte nicht gefunden werden."
else
//db = New RealDatabase
//db.databaseFile=f2
//if (db.Connect()) then
db = openREALDatabaseOldFormat(f2)
//db = new REALDatabase
//db.DatabaseFile=f
//db.databaseName = "album"
//db.host = "RealDB"
if (db = NIL) then
//beep
//msgbox "Die Datenbank für MenuSeitenzahl konnte nicht
geöffnet werden"
else
//rs = db.FieldSchema("album")
meinZaehler = 0
rs = db.SQLSelect("select * from album where albumname='" +
albumname.text + "' AND seite='" + tempfeld_seite.text + "' AND
muster='" + tempfeld_muster.text + "'")
if (rs <> NIL) then
while not rs.eof
//if (rs.field("bild1image").value <> NIL ) then
meinZaehler = meinZaehler + 1
//end if
rs.MoveNext
wend
rs.close
end if
// falls meinZaehler = 0 ist, dann ist noch kein Datensatz
angelegt
// --> neuen Datensatz anlegen
if (meinZaehler = 0) then
// neuen Datensatz anlegen
rec = New DatabaseRecord
rec.JPEGColumn("bild1original") = meinBild
rec.JPEGColumn("bild1image") = meinAusschnitt
rec.Column("seite") = tempfeld_seite.text
rec.Column("muster") = PopupMenuMuster.text
rec.Column("albumname") = albumname.text
rec.Column("abmasse") = Formatabmass.text
rec.Column("bilder_pro_seite") = PopupMenuSeitenzahl.text
db.InsertRecord ("album", rec)
//db.commit
else
// bestehenden Datensatz aktualisieren
rs2 = db.SQLSelect("select * from album where albumname='"
+ albumname.text + "' AND seite='" + tempfeld_seite.text + "' AND
muster='" + tempfeld_muster.text + "'")
rs2.Edit
rs2.field("bild1image").JPEGValue = meinAusschnitt
rs2.field("bild1original").JPEGValue = meinBild
rs2.update
db.Commit
//beep
end if
db.close
end if
end if
DropText1.visible = false
me.image = meinAusschnitt
end if
End if
//Loop until Not obj.NextItem
Mit freundlichen Grüßen,
Christian Abele
Entwicklung
Datenbanken & Elektronische Medien
-------------------------------------------------------
Reichert GmbH, Druck + Kommunikation
Rechbergstrasse 10
70806 Kornwestheim
Tel. 07154 - 13 12 16
Fax. 07154 - 13 12 77
e-mail c_abele at reichert-druck dot de
|