Lazarus, PostgreSQL и CITEXT

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

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

Ответить
GreyCrazyWolf
новенький
Сообщения: 16
Зарегистрирован: 02.03.2023 14:23:57

Lazarus, PostgreSQL и CITEXT

Сообщение GreyCrazyWolf »

Добрейшего времнеи суток.
Как на стороне Lazarusa стандартными компонентами правильно готовить CITEXT?
Обратил внимание что подобные поля даже не попадают в выборку, т.е. если в таблице есть поля с типом citext и мы пишем

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

SELECT * FROM table
Или даже так

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

SELECT id, name FROM table
если поле name - citext то его просто не будет в выборке.
Понятно что можно

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

SELECT id, name::text FROM table
или даже что-то типа

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

SELECT row_to_json(t) FROM (SELECT id, name FROM table) t
но таки хотелось бы узнать, можно стандартными методами достучачться до этого типа данных
Аватара пользователя
Sharfik
энтузиаст
Сообщения: 850
Зарегистрирован: 20.07.2013 01:04:30

Сообщение Sharfik »

Интернет говорит следующее
Citext — тип данных в PostgreSQL, который позволяет работать со строками, нечувствительными к регистру. Это расширение, разработанное на основе типа text.
Может и есть какой то прием, но как по мне странно даже пытаться засунуть в передачу формат данных, который кроме бд никто не знает.
sts
энтузиаст
Сообщения: 560
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Сообщение sts »

смутно припоминаю что подобный тип был в делфе в 90х, интербейз вроде, т.е. Citext не стандартный тип и чисто технически такое возможно реализовать, но это надо добавлять самому в лазарус.
sts
энтузиаст
Сообщения: 560
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Сообщение sts »

надо отдебажить место где происходит сопоставление типа бд с типом TField и там добавить обработку, сделать свой TCIStringField, наследник TStringField
Ответить