2014-09-05 43 views
0

我正在使用Delphi XE7,Firemonkey Mobile。試了W32以及我的Nexus4(Android 4.4.4)。使用datasnap從客戶端數據庫加載圖像時出錯[Delphi XE7,firemonkey mobile]

問題:從clientdataset加載圖像時出現以下錯誤 1.遠程錯誤:[FireDAC] {Phys] [fB] -306。命令文本不能爲空。 (連接) 2. Socket錯誤,即使CDS已經包含數據(無連接)

Firebird DB - > Firedac - > Datasnap [server] - > DBX連接 - > 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; 
相關問題