Работа со слоями в POSTGIS (Решено)

Ответить
Аватара пользователя
dab
Гуру
Сообщения: 671
Зарегистрирован: 16 дек 2011, 20:02
Репутация: 170
Ваше звание: Гуру
Откуда: Москва
Контактная информация:

Re: Работа со слоями в POSTGIS

Сообщение dab » 16 окт 2013, 06:05

Таблица PostgreSQL, из которой формируется слой Layer, должна иметь первичный ключ (primary key).
Есть такой?

На стороне клиента посмотрите атрибут key в файле проекта с расширением QGS

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

<datasource>dbname='testname' host=localhost port=5632 user='user' password='password' sslmode=disable key='guid' table="table" sql=false</datasource>

Аватара пользователя
dab
Гуру
Сообщения: 671
Зарегистрирован: 16 дек 2011, 20:02
Репутация: 170
Ваше звание: Гуру
Откуда: Москва
Контактная информация:

Re: Работа со слоями в POSTGIS

Сообщение dab » 16 окт 2013, 07:31

Nariman писал(а):Насколько я понял QGIS загружает слой полностью, а при сохранении в POSTGIS переписывает полностью существующий в базе слой??
Нет. QGIS изменяет таблицу по первичному ключу на уровне строк.
Какой тип у поля gid и как формируется значение этого поля?
Как пользователь добавляет объекты? Если интерактивно, через стандартный интерфейс QGIS, указывает ли пользователь значение поля gid?

gamm
Гуру
Сообщения: 4064
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1061
Ваше звание: программист
Откуда: Казань

Re: Работа со слоями в POSTGIS

Сообщение gamm » 16 окт 2013, 09:43

dab писал(а):
Nariman писал(а):Насколько я понял QGIS загружает слой полностью, а при сохранении в POSTGIS переписывает полностью существующий в базе слой??
Нет. QGIS изменяет таблицу по первичному ключу на уровне строк.
это вроде не соответствует тому, что происходит у топикастера - добавления не могли пропасть. А там вообще транзакции есть при обновлении слоя? или QGIS в стиле odbc работает (с созданием копии)?

Аватара пользователя
dab
Гуру
Сообщения: 671
Зарегистрирован: 16 дек 2011, 20:02
Репутация: 170
Ваше звание: Гуру
Откуда: Москва
Контактная информация:

Re: Работа со слоями в POSTGIS

Сообщение dab » 16 окт 2013, 09:46

Nariman писал(а):User1 добавил 60 объектов. Сохранил слой. В тоже время user2 добавил пару объектов и тоже сохранил. причем несколько позже нежели user1. В итоге изменения внесенный User1 не сохраняются.
0. Какие версии QGIS - PostgreSQL - PostGIS ?
1. После того как user1 добавил 60 объектов и сохранил данные, смотрите таблицу, например, через pgAdmin. Что в значениях поля "gid"? Всё как и должно быть?
2. После того как user2 добавил пару объектов и сохранил данные, смотрите опять таблицу через pgAdmin. 60 записей исчезли? Пара записей добавилась? Что у них в значении поля "gid"?
3. Текущее значение "street_gid_seq" соответствует максимальному значению "gid" в таблице?

PS
В качестве эксперимента, запретите для user2 удаление из таблицы. Посмотрите логи сервера на момент сохранения его "пары объектов".

Ответить

Вернуться в «PostGIS/PostgreSQL»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя