2014-09-05 6 views
0

Я использую Delphi XE7, Firemonkey Mobile. Пробовал как на W32, так и на моем Nexus4 (Android 4.4.4).Ошибка загрузки изображения из clientdataset с использованием datasnap [Delphi XE7, firemonkey mobile]

Проблема: при загрузке изображения из clientdataset я получаю следующие ошибки: 1. Удаленная ошибка: [FireDAC] {Phys] [fB] -306. Текст команды не должен быть пустым. (Соединение) 2. Ошибка сокета, хотя CDS уже содержит данные (Нет соединения)

Firebird DB -> Firedac -> Datasnap [server] -> DBX connection -> DSProviderconnection - > ClientDataSets

DataSetProvider на сервере имеет следующие опции установить: - poFetchBlobsOnDemand - poAllowCommandText

загруженный поле действительно поле BLOB и действительно содержит данные.

if DM_OD.CDS_QEmballage.FieldByName('AFBEELDING').IsBlob then 
begin 
    if DM_OD.CDS_QEmballage.FieldByName('AFBEELDING').IsNull then 
    begin 
    showmessage('Empty!'); //for testing puropses 
    end 
    else 
    begin 
    try 
     BF := DM_OD.CDS_QEmballage.FieldByName('AFBEELDING') as TBlobfield; 
     BS := DM_OD.CDS_QEmballage.CreateBlobStream(BF, bmRead); //error message 
     self.Items[i].EmbalPic.LoadFromStream(BS); 
    finally 
     BS.Free; 
    end; 
    end; 
end; 

ответ

0

Попробуйте это:

var 
    ms: TMemoryStream; 
begin 
    ms := TMemoryStream.Create; 
    try 
    TBlobField(DM_OD.CDS_QEmballage.FieldByName('AFBEELDING')).SaveToStream(ms); 
    self.Items[i].EmbalPic.LoadFromStream(ms); 
    finally 
    ms.Free; 
    end; 
end; 

 Смежные вопросы

  • Нет связанных вопросов^_^