Не работает с Postgres из-за идентификаторов в верхнем регис

Утилита управления базами данных для FireBird/Interbase

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

Ответить
v-t-l
энтузиаст
Сообщения: 744
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Не работает с Postgres из-за идентификаторов в верхнем регис

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

FBManager не работает с Postgres из-за приведения всех идентификаторов (по крайней мере, полей) в верхний регистр при формировании запросов. Хотя, "ИдентиФикатор" не должен приводиться к верхнему регистру, а указываться, как есть, в двойных кавычках.

Добавлено спустя 20 минут 25 секунд:
Идентификатор, заключённый в кавычки, становится зависимым от регистра, тогда как идентификаторы без кавычек всегда переводятся в нижний регистр. Например, идентификаторы FOO, foo и "foo" считаются одинаковыми в PostgreSQL, но "Foo" и "FOO" отличны друг от друга и от предыдущих трёх. (Приведение имён без кавычек к нижнему регистру, как это делает PostgreSQL, несовместимо со стандартом SQL, который говорит о том, что имена должны приводиться к верхнему регистру. То есть, согласно стандарту foo должно быть эквивалентно "FOO", а не "foo". Поэтому при создании переносимых приложений рекомендуется либо всегда заключать определённое имя в кавычки, либо не заключать никогда.)


Добавлено спустя 6 минут 31 секунду:
fbmanager-gtk2-2015-09-17--12-09-12.tar.bz2
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Спасибо!
Проверю
PS
Сам никогда такими изысками не занимался...
Последний раз редактировалось alexs 18.09.2015 10:50:23, всего редактировалось 1 раз.
sts
энтузиаст
Сообщения: 520
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Сообщение sts »

я не понял - если написать FOO (без кавычек) PostgreSQL ругается, ожидая foo?

зы: за кавычки руки отрывать надо.
v-t-l
энтузиаст
Сообщения: 744
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

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

sts писал(а):я не понял - если написать FOO (без кавычек) PostgreSQL ругается, ожидая foo?

Если при объявлении было написано без кавычек, то можно писать как угодно (кроме как в кавычках, тогда только в нижнем регистре), иначе - только в кавычках и точно как было объявлено.
Последний раз редактировалось v-t-l 18.09.2015 10:50:23, всего редактировалось 1 раз.
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Доработал в части таблиц.
Данные отображаются/редактируются
Индексы создаются
PK/FQ/UNQ также создаются
Скрипт на создание генерится верно
в SQL редакторе автодополненние отображет верно
в SQL редакторе по Ctrl+Alt+Enter правильно генерятся тексты

Не работает пока создание нового поля в разных регистрах - приводится к нижнему. Сделаю.

Добавлено спустя 1 минуту 22 секунды:
Re: Не работает с Postgres из-за идентификаторов в верхнем регис
В свете поднявшейся темы - в параметрах регистрации БД сделаю в дальнейшем настройку на эти ситуации.
v-t-l
энтузиаст
Сообщения: 744
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

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

sts писал(а):зы: за кавычки руки отрывать надо.

Зато можно писать:

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

CREATE TABLE "Таблица1"
(
  "УИН" serial NOT NULL,
  "ФИО" character varying(10),
  CONSTRAINT "УИН_ключ" PRIMARY KEY ("УИН"))
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

А за это надо обе руки оторвать.
Русские имена полей - это ОЧЕНЬ ПЛОХО!!!!!
Тут столько может подводных камней появиться - что лучше сразу отказаться.

PS
Что люди только не придумают - лишь бы комментарии не писать.
Аватара пользователя
Снег Север
долгожитель
Сообщения: 3067
Зарегистрирован: 27.11.2007 15:14:47
Контактная информация:

Сообщение Снег Север »

alexs писал(а):Русские имена полей - это ОЧЕНЬ ПЛОХО!!!!!
Если движок базы позволяет юникодные имена полей - то почему нет? Конкретная база данных - не программный код, она имеет узкую и специфическую направленность. Если база рассчитана только на использование в русскоязычной среде, пусть будут русские названия полей. А если в китайской - китайские. Это совершенно нормально.
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Снег Север писал(а):Если база рассчитана только на использование в русскоязычной среде, пусть будут русские названия полей. А если в китайской - китайские. Это совершенно нормально.

Идеальная теория всегда разбивается о суровую правду жизни.
Мой совет - очень не советую.
Аватара пользователя
Снег Север
долгожитель
Сообщения: 3067
Зарегистрирован: 27.11.2007 15:14:47
Контактная информация:

Сообщение Снег Север »

alexs писал(а):Идеальная теория всегда разбивается о суровую правду жизни.Мой совет - очень не советую.
Дык, я, в основном, имею дело с базами, где такое просто не проходит...
Ответить