Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Траблы с запросом из под Windows / 5 сообщений из 5, страница 1 из 1
20.12.2004, 16:16
    #32835305
Траблы с запросом из под Windows
Я совсем недавно решил изучать данную СУБД.

Для изучения использую Win32 версию PostgreSQL.

Столкнулся с некоторой проблемой при написании запросов к БД. Все переменные и мена таблиц приходится заключать в кавычки. Иначе получаю сообщение, что такой объект не найден, т.е. запрос SELECT Field1, Field1 FROM SomeTable1 не проходит, а запрос SELECT "Field1", "Field1" FROM "SomeTable1" не вызывает никаких ругательств со стороны сервера.

Ничего подобного в документации я не нашел. Там все запросы пишутся без всяких кавычек.

Такая проблема наблюдается как при использовании средств доступа к БД самой СУБД, в частности PgAdmin, так и при обращении из сред программирования через источники данных ODBC.

Я пробовал использовать версии 7.х и 8.х. Везде наблюдается одинаковая картина.

Подскажите, в чем может быть проблема? Заранее благодаен.
...
Рейтинг: 0 / 0
20.12.2004, 16:58
    #32835451
Ivan Evtuhovich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Траблы с запросом из под Windows
из-за того, что буквы в разном регистре. Пиши все маленькими - не будет никаких проблем. Сам с такой проблемой сталкивался. Думаю, что гуру знают, как это решить, но я разбираться не стал.

--
С наилучшими пожеланиями,
Иван Евтухович
...
Рейтинг: 0 / 0
20.12.2004, 18:46
    #32835753
nostromo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Траблы с запросом из под Windows
Кажется дело обстоит так:
При использовании имени таблицы без кавычек происходит приведение к нижнему регистру и поиск таблицы с таким именем.
Если при создании таблицы её имя было заключено в кавычки и содержало буквы в верхнем регистре, то и при использовании без кавычек не обойтись.

Из документации:
Код: plaintext
Quoting an identifier also makes it case-sensitive, whereas unquoted names are always folded to lower case. For example, the identifiers FOO, foo, and "foo" are considered the same by PostgreSQL, but "Foo" and "FOO" are different from these three and each other. (The folding of unquoted names to lower case in PostgreSQL is incompatible with the SQL standard, which says that unquoted names should be folded to upper case. Thus, foo  should be equivalent to "FOO" not "foo" according to the standard. If you want to write portable applications you are advised to always quote a particular name or never quote it.)
...
Рейтинг: 0 / 0
21.12.2004, 11:39
    #32836472
Qvadro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Траблы с запросом из под Windows
Это называется Защищенные идентификаторы.

Я как раз про это только что читал в книжке с мамонтом на обложке:
PostgreSQL для профессионалов
Дж.Уорсли, Дж.Дрейк
Издательство ПИТЕР

Глава №3, стр.46
...
Рейтинг: 0 / 0
22.12.2004, 16:30
    #32839766
Траблы с запросом из под Windows
Хе, вот как оно... Значит "ларчик просто открывался"!

Спасибо всем огромное!
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Траблы с запросом из под Windows / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]