![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в Midas вернуть результатом работы функции динамический массив ? [D5, MSSQL]
Barmutik © (2002-03-20 16:28:00)Возикла проблема:
Вызывается функция у сервера и он должен вернуть окромя данных ещё и массив интов как парамтер out.
Как это делается ?
Киньте примерчик или расскажите где почитать...
Dok_3D (2002-03-21 13:52:00) [1]2 Barmutik ©
Гм...
Ты про это говоришь ?
var P ,P1 - pointer
buff OleVariant
begin
fs:=TFileStream.Create("d:\BigImage.bmp", fmOpenRead);
GetMem(P,fs.size);
fs.ReadBuffer(P^,fs.size); - читаем из потока в P^
buff:=VarArrayCreate([0,fs.size],varByte);
P1:=VarArrayLock(buff);
move(P^,P1^,fs.size); - перемещаем из P^ в массив buff
VarArrayUnLock(buff);
FreeMem(P,fs.size);
fs.Free;
Connection1.AppServer.Method1(buff);
end;
или нет ?
OlegE (2002-03-21 11:36:00) [2]TOleGraphic.Picture
Specifies the interface reference for which the OLE graphic is a container.
property Picture: IPicture;
Description
Picture is for internal use only.
Проверил. Нормально передает BMP, JPEG - размер 300-1600 к.
"Чуть побольше" - это сколько?
Barmutik (2002-03-21 10:49:00) [3]Ок ! Спасибо ! Прочитал.. осталось попробовать.
Если конечно не трудно может вы сможете предложить способ
передачи графического изображания как параметр.
Задача состоит в том что необходимо произвести выбор данных на сервере и критерием являет графическое изображение.
Для небольших изображений я это делал очень "неправильным"
способом. Для изображений чуть больше этот способ не подходит.
Подскажите плиз. Заранее спасибо.
OlegE (2002-03-20 17:21:00) [4]VarArrayCreate или VarArrayOf. В help очень хорошо написано.
Dok_3D (2002-03-20 17:19:00) [5]
var v : OleVariant;
begin
v:=VarArrayCreate([0,10],varInteger);
v[0]:=2;
v[1]:=3;
Connection.AppServer.MyProcedure(v);
end;
Суть в том, что твои инты нужно передавать вариантными массивами.
Если параметр выходной, то делаешь VarArrayCreate в методе на сервере приложений.