Страница 1 из 1

Автоинкрементные поля в СУБД

Добавлено: 04 фев 2023, 10:56
Alex_Y
Доброго времени суток.

Аксиома не определяет автоинкрементные поля и пытается в них писать как в обычные. Проблема в том, что в аксиоме такие поля не заполняются и в новых строках они равны 0. Если такое поле являются ключом, то когда пытаемся сохранить таблицу, этот 0 пытается записать в БД. В результате резонно получаем ошибку "Ошибка SQL: (SQLITE):UNIQUE constraint failed".

Как то это можно побороть?

Re: Автоинкрементные поля в СУБД

Добавлено: 05 фев 2023, 09:37
Александр
Да, есть такая проблема.
Тут: viewtopic.php?f=3&t=2880#p5099
нам уже о ней сообщали.
Исправление будет в ближайшем обновлении

Re: Автоинкрементные поля в СУБД

Добавлено: 20 фев 2023, 01:52
Alex_Y
Здравствуйте.

При внесении двух и более объектов при сохранении выдает ошибку:

Ошибка SQL: (SQLITE):UNIQUE constraint failed: Obj_Bindings.ID (path: 'D:\test\test.db')

Re: Автоинкрементные поля в СУБД

Добавлено: 02 мар 2023, 13:45
Александр
Удалось повторить проблему.
Она возникает при вставке в таблицу открытую в режиме локальной копии.

Re: Автоинкрементные поля в СУБД

Добавлено: 06 мар 2023, 16:40
Alex_Y
Александр писал(а): 02 мар 2023, 13:45 Удалось повторить проблему.
Она возникает при вставке в таблицу открытую в режиме локальной копии.
Вроде режим не имеет значения.

Ошибка возникает при вставке нескольких строк с последующем сохранением таблицы. При этом у автоинкрементного поля стоит значение 0. Я так понимаю этот 0 и пишется в автоинкремент. А так как это ключ, то выводит ошибку о повторении значений, т.к. нулей получается несколько.

Правильным бы было для таких полей, если значение 0, то ничего не писать, дать триггеру БД сделать это самому. Если же значение отличное от 0, тогда писать его и далее уже на усмотрение пользователя, раз он указал какое-то значение.

Мапинфо так вообще проще поступает, делает автоинкрементные поля только для чтения и сама туда ничего не пишет. За их заполнение отвечает сервер БД.

А еще в Мапинфо есть возможность открывать не все поля таблицы, а выборочные. В Аксиоме есть такая возможность? Возможно можно решить проюблему с инкрементными полями исключив их из списка полей в запросе?

Re: Автоинкрементные поля в СУБД

Добавлено: 07 мар 2023, 17:58
Александр
Мы исправили - сейчас тестируем.
Когда протестируем напишу сюда.

Нули всё равно останутся. Планируем сделать нормальную поддержку NULL, тогда будет без нулей.
Назначать поля readonly в схеме таблицы тоже в планах.
А еще в Мапинфо есть возможность открывать не все поля таблицы, а выборочные. В Аксиоме есть такая возможность?
Есть для SQL Server, Oracle, PostrgeSql - для SQLite добавим.

Re: Автоинкрементные поля в СУБД

Добавлено: 09 мар 2023, 13:31
Александр
Протестировали, работает - будет в ближайшем обновлении.
Пожалуйста, напишите нам на почту если Вам нужна исправленная версия.

Re: Автоинкрементные поля в СУБД

Добавлено: 15 мар 2023, 02:32
Alex_Y
Александр писал(а): 09 мар 2023, 13:31 Протестировали, работает - будет в ближайшем обновлении.
Пожалуйста, напишите нам на почту если Вам нужна исправленная версия.
Работает. Спасибо.