SetDatabaseBlob()
Syntax
Ergebnis = SetDatabaseBlob(#Datenbank, StatementIndex, *Puffer, PufferLaenge)Beschreibung
Richtet den Blob für die weitere Verwendung mit DatabaseUpdate() ein. 'StatementIndex' beginnt bei 0, und bezeichnet, bei welchem unbestimmten Abfrage-Parameter (englisch: "undefined query parameter") der Blob eingefügt werden soll. Der SQL-Syntax zu Angeben unbestimmter Parameter ist abhängig vom Datenbank-Manager. Siehe die folgenden Beispiele, um zu sehen wie dies gemacht wird.Beispiel: SQLite und ODBC
; SQLite und ODBC verwenden den gleichen Syntax, um Blobs einzufügen. Diese werden mit dem '?' Zeichen angegeben. ; ; Die Datenbank sollte geöffnet sein und eine Tabelle PHOTOS mit 3 Feldern (BLOB, VARCHAR(255), BLOB) haben. ; SetDatabaseBlob(0, 0, ?Picture, PictureLength) SetDatabaseBlob(0, 1, ?SmallPicture, SmallPictureLength) DatabaseUpdate(0, "INSERT INTO PHOTOS (picture, name, small_picture) values (?, 'my description', ?);")Beispiel: PostgreSQL
; PostgreSQL verwendet einen anderen Syntax: $1, $2.. im Statement, um die unbestimmten Parameter anzugeben. ; ; Die Datenbank sollte geöffnet sein und eine Tabelle PHOTOS mit 3 Feldern (BYTEA, VARCHAR(255), BYTEA) haben. ; SetDatabaseBlob(0, 0, ?Picture, PictureLength) SetDatabaseBlob(0, 1, ?SmallPicture, SmallPictureLength) DatabaseUpdate(0, "INSERT INTO PHOTOS (picture, name, small_picture) values ($1, 'my description', $2);")Hinweis: PostgreSQL verwendet BYTEA zum Speichern großer Objekte. Das "Escaping" (sperren), was zum Speichern binärer Daten in einem solchen Feld benötigt wird, macht es oft größer als nötig. Eine gute Möglichkeit zum Speichern binärer Daten ist es, diese mit Base64Encoder() zu verschlüsseln, bevor sie an den Datenbank-Manager übergeben werden.
Unterstützte OS
Alle