2009-08-21 14 views

Antwort

0

Verwenden Sie den raw-Datentyp, Sie müssen die Datei möglicherweise in Blöcken senden. Eine andere Alternative ist die Verwendung von Zeichen + BASE64. Diese

2
define temp-table ttFileList no-undo 
    field file-id as integer 
    field file-content as blob. 

create ttFileList. 
assign ttFileList.file-id = 1. 

copy-lob from file("pdffilename") to ttFileList.file-content. 

run DoSomethingWithAPDF on hAppServer 
    (input table ttFileList). 
2

hängt von der Version des Fortschritts Sie verwenden, wenn Sie mit v9 dann müssen Sie kleine Stücke von Rohdaten in Segmente gestreamt verwenden. Mit OpenEdge (möglicherweise 10.1B) haben wir CLOB und BLOB unterstützt, Sie können eine Prozedur erstellen, die eine temporäre Tabelle als Argument verwendet.

Es hängt auch von Ihrer anrufenden Sprache ab. Für .NET und Java wird dies in ein Byte-Array übersetzt.

Für Ihren App-Server erstellen ein Verfahren ähnlich den folgenden:

def temp-table ObjectTransfer no-undo 
    field Code   as char 
    field Number  as int 
    field DataContent as blob 
    field MimeType  as char. 

procedure AddObjectData: 
    def input param table for ObjectTransfer. 

    def var k as int no-undo. 

    for each ObjectTransfer: 
     find last ObjectTable no-lock 
      where ObjectTable.Code = ObjectTransfer.Code 
      no-error. 
     if avail ObjectTable then 
      k = ObjectTable.Number + 1. 
     else 
      k = 1. 

     create ObjectTable. 
     assign 
      ObjectTable.Code = ObjectTransfer.Code 
      ObjectTable.Number = k 
      ObjectTable.MimeType = ObjectTransfer.MimeType 
      ObjectTable.DataContent = ObjectTransfer.DataContent 
      . 
    end. 
end procedure. 

Proxies generieren, werden Sie dies jetzt rufen von .NET und Java eines einfachen Byte-Array als Eingabe temp-Tabelle Daten- verwenden Art.

Verwandte Themen