こんにちは。
開発環境は、XE5(update2), Win8.1, SQLServer2008です。
FireDACを使用したDatasnapで下記の処理をしています。
1.テーブル名を引数で渡すと全データをTDataSetで返すServerメソッド:GetTableDataSetを作成
2.クライアントアプリで、TFDConnection, TFDStoredProcを使用して全データをサーバーアプリから受け取る
テーブル名の引数に、Blobフィールドがないテーブルを指定すると問題ないのですが
BlobフィールドがあるテーブルだとFDStoredProc1.Openで「範囲チェックエラー.」が表示されます。
BlobフィールドがあるTDataSetを、TFDStoredProcで受け取る方法を教えてください。
CREATE TABLE [dbo].[CFG](
[INIKEY] [varchar](60) NOT NULL,
[PRM] [text] NULL,
);
[サーバーアプリ]
function TServerMethods1.GetTableDataSet(ATableName: string): TDataSet;
var
mDS: TFDQuery;
begin
mDS := TFDQuery.Create(nil, FDConnection1);
mDS.Open('SELECT * FROM ' + ATableName);
mDS.FetchAll;
Result := mDS;
end;
[クライアントアプリ]
procedure TForm1.Button1Click(Sender: TObject);
begin
if FDStoredProc1.Active then
FDStoredProc1.Close;
FDStoredProc1.Unprepare;
FDStoredProc1.StoredProcName := 'TServerMethods1.GetTableDataSet';
FDStoredProc1.ParamByName('ATableName').Size := 0;
FDStoredProc1.ParamByName('ATableName').Value := Edit1.Text;
FDStoredProc1.Open;
end;
よろしくお願いします。
ツイート | ![]() |