Это зависит от версии прогресса, который вы используете, если вы используете v9, вам нужно будет использовать небольшие куски необработанных данных, передаваемых в сегментах. С OpenEdge (возможно, 10.1B) мы получили поддержку CLOB и BLOB, вы можете создать процедуру, которая принимает временную таблицу в качестве аргумента.
Это также зависит от вашего языка звонков. Для .NET и Java это будет преобразовано в байтовый массив.
Для вашего сервера приложений создайте процедуру, подобную следующей:
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.
Создание прокси, теперь вы будете вызывать его из .NET и Java, используя простой байтовый массив в качестве типа данных входной временной таблицы.