我已经使用类似这样的参数类型存储了过程(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] ...
我不知道TResultString
是什么,但是您可以使用字符串进行此操作:
这是一个旧帖子,但是如果将来有人需要。