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.