Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Разработка баз данных _ PyQT, PostgreSQL и верхний регистр в именах

Автор: g00d 29.11.2008, 5:21

model = QtSql.QSqlTableModel();
model.setTable("\"UMUAcessManagement\".documents");
model.select()

Помогите, нигде не могу найти ответ, уже практически отчаялся его найти. Может хоть подскажите где искать.
Проблема следующая. В базе на Посттгресе используются именования схемы разнорегистровыми символами. Для сохранения регистра там в Постргресе используется экранирование строки кавычками. Функция settable по-ходу по умолчанию преобразует полученную строку к нижнему регистру перед тем как отдать базе. Насколько я понимаю логику работы, то settable приводит строку из примера к виду \"umuacessmanagement\".documents

Есть вариант с setQuery, но хотелось бы с этим разобраться

Автор: Litkevich Yuriy 29.11.2008, 7:59

Цитата(g00d @ 29.11.2008, 8:21) *
Функция settable по-ходу по умолчанию преобразует полученную строку к нижнему регистру перед тем как отдать базе.
не знаю как работает в Питоне, но в Qt (С++) такого нет, как выяснилось (методом хождения по граблям) эта функция обрамляет в кавычки имя таблицы, возможно у тебя после записи:
setTable("\"UMUAcessManagement\".documents");
получается такое имя:
""UMUAcessManagement".documents"

вобще имя сточкой - странное, на мой взгляд

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)