Delphi XE7、Firemonkey Mobile を使用しています。W32 と Nexus4 (Android 4.4.4) の両方で試しました。
問題: clientdataset からイメージをロードすると、次のエラーが発生します。 1. リモート エラー: [FireDAC]{Phys][fB]-306。コマンド テキストを空にすることはできません。(接続) 2. CDS に既にデータが含まれているにもかかわらず、ソケット エラーが発生する (接続なし)
Firebird DB --> Firedac --> Datasnap [サーバー] --> DBX 接続 --> DSProviderconnection --> Clientdatasets
サーバー上のデータセットプロバイダーには、次のオプションが設定されています。 - 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;