Страница 1 из 1

[Решено] PostgresQL поле типа text

СообщениеДобавлено: 09.11.2015 19:26:43
resident
Мне нужно поле в Postgre с 2000+ символов. Создал его как text.
Создаю в Lazarus объект - статическое поле для него. Lazarus его сделал как TMemoField. Этож BLOB?
В контролах показывает вместо нужного текста надпись "(MEMO)".
Подскажите как бы добраться до текста в базе, чтоб и читать и править?

Re: PostgresQL поле типа text

СообщениеДобавлено: 09.11.2015 21:06:40
WAYFARER
Для вывода и редактирования таких полей используется TDBMemo.
Для того что бы показать поле в DBGrid можно сделать так:
Код: Выделить всё
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if Assigned(Column) then
  begin
   (Sender as TDBGrid).Canvas.FillRect(Rect);
   (Sender as TDBGrid).Canvas.TextRect(Rect, Rect.Left, Rect.Top, ' '+Column.Field.AsString);
  end;
end;           


Добавлено спустя 19 секунд:
http://www.freepascal.ru/forum/viewtopic.php?f=5&t=5112

Re: PostgresQL поле типа text

СообщениеДобавлено: 09.11.2015 22:39:35
resident
Благодарю.

з.ы. Для эксперимента пока забросил text и переделал поля на varchar.
Вроде работает.

Re: PostgresQL поле типа text

СообщениеДобавлено: 10.11.2015 09:05:24
alexs
Можно просто явное преобразование типа дать
Код: Выделить всё
cast(aaa as varchar(2000))