Use: Table - TSimpleDataSet;
CommandText - 'select * from test';
Code: Select all
procedure TForm30.FormCreate(Sender: TObject);
begin
 with Connection do
  begin
   Params.Clear;
   Params.Add('HostName=localhost');
   Params.Add('DataBase=postgres');
   Params.Add('user_name=postgres');
   Params.Add('password=1234');
   Params.Add('EnableBCD=True');
   Params.Add('UnpreparedExecute=True');  <---------------- COMMENT 8.4 OK  / 9.1 ERROR
   Params.Add('UseQuoteChar=True');
   Params.Add('UseUnicode=True');
   Params.Add('DetectParamTypes=True');
   Params.Add('OIDAsLargeObject=True');
   Params.Add('TrimFixedChar=True');
   Connected := True;
  end;
 Connection.ExecuteDirect('create table IF NOT EXISTS test (id serial not null primary key, field_text text,classe text,carregar boolean)');
 Table.Open;
 Memo1.Lines.Text := StringOfChar('x', 50000);
 Write;
 Table.Close;
 Table.Open;
 Read;
end;
procedure TForm30.Write;
var
 BinStream: TMemoryStream;
 StrStream: TStringStream;
begin
 BinStream := TMemoryStream.Create;
 try
  StrStream := TStringStream.Create;
  try
   BinStream.WriteComponent(Self);
   BinStream.Seek(0, soFromBeginning);
   ObjectBinaryToText(BinStream, StrStream);
   Table.Edit;
   Table.FieldByName('field_text').AsString := StrStream.DataString;
   Table.Post;
   Table.ApplyUpdates(-1);
  finally
   BinStream.Free;
  end;
 finally
  StrStream.Free;
 end;
end;
procedure TForm30.Read;
var
 StrStream: TStringStream;
 BinStream: TMemoryStream;
begin
 StrStream := TStringStream.Create(Table.FieldByName('field_text').AsString);
 try
  BinStream := TMemoryStream.Create;
  try
   ObjectTextToBinary(StrStream, BinStream);  <---- ERROR
   BinStream.Seek(0, soFromBeginning);
  finally
   BinStream.Free;
  end;
 finally
  StrStream.Free;
 end;
end;