-
Insert BLOB im Servicepgm
Hallo zusammen,
ein Programm soll ein Service aufrufen in dem ein Insert mit einem BLOB Feld
gemacht werden soll.
Service:
PHP-Code:
exec sql
insert into VISITRD05P
(DID, DOCUMENT, DOCUMENTDATE, DOCUMENTTEXT, DOCUMENTUSER, CHANGETIME, CHANGEUSER )
OVERRIDING USER VALUE
values(:DBInsertVISITRD05P.DID,
:DBInsertVISITRD05P.DOCUMENT ,
:DBInsertVISITRD05P.DOCUMENTDATE,
:DBInsertVISITRD05P.DOCUMENTTEXT,
:DBInsertVISITRD05P.DOCUMENTUSER,
current timestamp ,
:PgmUser
);
Die Fehlermeldung ist
PHP-Code:
SQL0312: Position 40 Variable DOCUMENT nicht definiert oder nicht verwendbar. Reason: No declaration for the variable exists, the declaration is not within the current scope, or the variable does not have an equivalent SQL data type.
Das Feld DOCUMENT ist als BLOB Feld in der Tabelle definiert.
Der Satz der Tabelle wird über eine DS an den Service geliefert
PHP-Code:
dcl-ds DBInsertVISITRD05P extname('VISITRD05P') qualified alias;
end-ds;
Hat jemand eine Idee wie ich ein BLOB in den Service übergeben kann ?
Gruß
Michael
-
Schau dir erst mal die Spoolauflösung des BLOB's an.
Möglicherweise wird der Typ BLOB ignoriert und muss manuell definiert werden.
-
Ein Blob kann nicht mittels einer extern definierten Datenstruktur zwischen Programmen übertragen werden. Der Blob ist ja kein Datentyp, mit dem RPG zurechtkommt. Als Feld wird man in der Datenstruktur nur einen Pointer sehen, aber nicht den eigentlichen Wert des Blobs.
Die Frage ist, wo dein Blob bisher gespeichert ist. Wahrscheinlich in einer Tabelle. Du könntest dem Service dann den Namen der Tabelle und den Namen des Blobfeldes und den Schlüssel der Tabelle usw. übergeben und der Service könnte sich dann ein dynamisches SQL-Statement zusammenbauen und den Blob selber lesen und bei sich speichern.
Ich fürchte, du kannst nur mit SQL Mitteln Blobs verarbeiten!
Dieter
-
Man muss eine manuelle DS definieren. Hier kann man dann den BLOB als SQLTYPE(BLOB) definieren.
Die Länge des BLOB ist dann allerdings auf 16MB minus dem Rest der Felder beschränkt, da die DS 16MB nicht übersteigen kann.
Will man größere Werte verarzten kann man nur noch mit LOB-Locatoren arbeiten.
Die klassische Externe DS entfällt dann natürlich.
Similar Threads
-
By mk in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 19-06-19, 07:26
-
By mk in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 23-10-18, 14:35
-
By dschroeder in forum IBM i Hauptforum
Antworten: 14
Letzter Beitrag: 31-08-16, 15:32
-
By dholtmann in forum NEWSboard Programmierung
Antworten: 13
Letzter Beitrag: 22-07-16, 08:57
-
By Robi in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 28-05-02, 16:45
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks