Seite 2 von 2
Re: leeren BLOB speichern
Verfasst: 28.02.2018 20:34
von ccode_new
ProgOldie hat geschrieben:Noch einmal: Ich will keine Zeile löschen, sondern in einem Feld einer Zeile einen leeren BLOB speichern
Aha, Ok dann probiere es doch mal mit deinem Vorschlag.
SetDatabaseBlob(DBNum, BlobNr, #NULL, 0)
Geht das ? (Ich habe es noch nicht getestet.)
Oder du gibst eine Speicheradresse an. Speicherst aber keine Daten an diese Adresse und die Länge ist quasi 0 (Prüfe mit: MemorySize() )
Teste einfach mal.
Re: leeren BLOB speichern
Verfasst: 28.02.2018 21:29
von NicTheQuick
Mangels Datenbank kann ich das auch nicht testen, aber wenn es ein gültiger Pointer sein muss, aber die Länge 0 sein darf, dann versuch doch mal das:
Code: Alles auswählen
Define tmp.i
SetDatabaseBlob(#Database, StatementIndex, @tmp, 0)
Als Speicheradresse nehme ich einfach den Pointer zu einer temporären Variablen. Der ist dann gültig, aber da die Länge 0 ist, sollte ein leerer Blob gespeichert werden und der Pointer sonst nicht weiter berücksichtigt werden.
Re: leeren BLOB speichern
Verfasst: 28.02.2018 21:36
von ProgOldie
Hallo Nic,
raffiniert, das teste ich morgen mal.
Re: leeren BLOB speichern
Verfasst: 28.02.2018 23:58
von Sicro
SetDatabaseNull()
DatabaseUpdate()
So müsste es funktionieren:
Code: Alles auswählen
SetDatabaseNull(Database, 0)
DatabaseUpdate(0, "UPDATE MyTableName SET MyBlobField=? WHERE PictureNumber=10")
Verwendest du eine PostgreSQL-Datenbank musst du das Fragezeichen durch ein Dollarzeichen und einer Eins ($1) ersetzen, wie in dem Link "DatabaseUpdate()" oben nachzulesen ist.
Oder so:
Code: Alles auswählen
DatabaseUpdate(0, "UPDATE MyTableName SET MyBlobField=null WHERE PictureNumber=10")
Re: leeren BLOB speichern
Verfasst: 01.03.2018 08:22
von ProgOldie
Danke Sicro,
SetDatabaseNull : Genau so etwas habe ich gesucht.
Das ist wohl die standardmäßig vorgesehene Lösung.