将Blob转换为字符串:如何从PostgreSQL中的StoredProcedure参数将Blob转换为字符串?

问题描述 投票:1回答:2

我已经使用类似这样的参数类型存储了过程(Postgres中的函数):>

Params[0] : result = ftBlob // postgresql function = text
Params[1] : 1 = ftString
Params[2] : 2 = ftInteger
Params[3] : 3 = ftInteger

我的代码是这样的:

procedure TForm1.Button1Click(Sender: TObject);
var
  ResultStr: TResultStr;
  BlobField: TBlobField;
  bStream: TStream;
  DataSet: TDataSet;
  StoredProc: TSQLStoredProc;
begin
  sp01.Close;
  sp01.Params[1].AsString := '2010/2011';
  sp01.Params[2].AsInteger := 2;
  sp01.Params[3].AsInteger := 1;
  sp01.ExecProc;

  if sp01.ParamByName('result').Value.IsBlob then
  begin
    BlobField := StoredProc.ParamByName('result') as TBlobField;
    bStream := sp01.CreateBlobStream(BlobField, bmRead);
    try
      bStream.Read(ResultStr,sizeof(TResultStr));
    finally
      bStream.Free;
    end;
  end;

  ShowMessage(ResultStr.Hasil);
end;

问题是,我想如何使结果(Blob)成为字符串?

我已存储过程(Postgres中的函数),其参数类型如下:Params [0]:result = ftBlob // postgresql函数= text Params [1]:1 = ftString Params [2]:2 = ftInteger Params [ 3] ...

postgresql delphi-xe2
2个回答
1
投票

我不知道TResultString是什么,但是您可以使用字符串进行此操作:


0
投票

这是一个旧帖子,但是如果将来有人需要。

© www.soinside.com 2019 - 2024. All rights reserved.