DBGrid не отображает поле с типом Text

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
AkANz
новенький
Сообщения: 26
Зарегистрирован: 16.03.2010 12:59:02
Откуда: Алтайский край

DBGrid не отображает поле с типом Text

Сообщение AkANz »

Установлен Lazarus 0.9.29 Версия FPC 2.4.1 Ревизия SVN 2398 на WinXP. База на PostgresQL 8.4.3-1 так же под WinXP
В базе есть 3 поля с соответственно: Фамилией, именем и отчеством
Необходимо в DBgride отображать эти поля в одной колонке (соединить Фамилию, Имя и Отчество)
Запрос к базе:

Код: Выделить всё

      SELECT medical_history.medical_data AS data,
      (spr_pacient.family || '' '' || spr_pacient.name || '' '' || spr_pacient.patronymic) AS FamIO
      FROM medical_history
      LEFT JOIN spr_pacient ON medical_history.id_spr_pacient = spr_pacient.id_spr_pacient


Запрос выполняется и в DBGrid в колонке FamIO отображается (МЕМО)
При выполнении того же запроса в pdAdmin III данные отображаются верно.
Где-то здесь на форуме встречал, что необходимо преобразовать получаемое поле FamIO из Text в Varchar, но вот как это сделать не соображу (да и найти тоже на получается).

Пробовал создать Представление, но результат тот же.

Код: Выделить всё

CREATE VIEW medical_history_view AS 
 SELECT medical_history.medical_data AS data, (((spr_pacient.family::text || ' '::text) || spr_pacient.name::text) || ' '::text) || spr_pacient.patronymic::text AS famio
   FROM medical_history
   LEFT JOIN spr_pacient ON medical_history.id_spr_pacient = spr_pacient.id_spr_pacient;


при попытке заменить в Представлении строки "::text " на "::varchar(150)" вываливается ошибка.

Подскажите, пожалуйста.

p.s. Для соединения с базой используется Zeos 6.6.6
v-t-l
энтузиаст
Сообщения: 744
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение v-t-l »

Код: Выделить всё

SELECT medical_history.medical_data AS data,
      CAST((spr_pacient.family || '' '' || spr_pacient.name || '' '' || spr_pacient.patronymic) AS varchar(150)) AS FamIO
      FROM medical_history
      LEFT JOIN spr_pacient ON medical_history.id_spr_pacient = spr_pacient.id_spr_pacient
AkANz
новенький
Сообщения: 26
Зарегистрирован: 16.03.2010 12:59:02
Откуда: Алтайский край

Сообщение AkANz »

Спасибо, большое заработало.
Ответить