Автоинкрементные поля в СУБД
Автоинкрементные поля в СУБД
Доброго времени суток.
Аксиома не определяет автоинкрементные поля и пытается в них писать как в обычные. Проблема в том, что в аксиоме такие поля не заполняются и в новых строках они равны 0. Если такое поле являются ключом, то когда пытаемся сохранить таблицу, этот 0 пытается записать в БД. В результате резонно получаем ошибку "Ошибка SQL: (SQLITE):UNIQUE constraint failed".
Как то это можно побороть?
Аксиома не определяет автоинкрементные поля и пытается в них писать как в обычные. Проблема в том, что в аксиоме такие поля не заполняются и в новых строках они равны 0. Если такое поле являются ключом, то когда пытаемся сохранить таблицу, этот 0 пытается записать в БД. В результате резонно получаем ошибку "Ошибка SQL: (SQLITE):UNIQUE constraint failed".
Как то это можно побороть?
Re: Автоинкрементные поля в СУБД
Да, есть такая проблема.
Тут: viewtopic.php?f=3&t=2880#p5099
нам уже о ней сообщали.
Исправление будет в ближайшем обновлении
Тут: viewtopic.php?f=3&t=2880#p5099
нам уже о ней сообщали.
Исправление будет в ближайшем обновлении
Re: Автоинкрементные поля в СУБД
Здравствуйте.
При внесении двух и более объектов при сохранении выдает ошибку:
Ошибка SQL: (SQLITE):UNIQUE constraint failed: Obj_Bindings.ID (path: 'D:\test\test.db')
При внесении двух и более объектов при сохранении выдает ошибку:
Ошибка SQL: (SQLITE):UNIQUE constraint failed: Obj_Bindings.ID (path: 'D:\test\test.db')
Re: Автоинкрементные поля в СУБД
Удалось повторить проблему.
Она возникает при вставке в таблицу открытую в режиме локальной копии.
Она возникает при вставке в таблицу открытую в режиме локальной копии.
Re: Автоинкрементные поля в СУБД
Вроде режим не имеет значения.
Ошибка возникает при вставке нескольких строк с последующем сохранением таблицы. При этом у автоинкрементного поля стоит значение 0. Я так понимаю этот 0 и пишется в автоинкремент. А так как это ключ, то выводит ошибку о повторении значений, т.к. нулей получается несколько.
Правильным бы было для таких полей, если значение 0, то ничего не писать, дать триггеру БД сделать это самому. Если же значение отличное от 0, тогда писать его и далее уже на усмотрение пользователя, раз он указал какое-то значение.
Мапинфо так вообще проще поступает, делает автоинкрементные поля только для чтения и сама туда ничего не пишет. За их заполнение отвечает сервер БД.
А еще в Мапинфо есть возможность открывать не все поля таблицы, а выборочные. В Аксиоме есть такая возможность? Возможно можно решить проюблему с инкрементными полями исключив их из списка полей в запросе?
Re: Автоинкрементные поля в СУБД
Мы исправили - сейчас тестируем.
Когда протестируем напишу сюда.
Нули всё равно останутся. Планируем сделать нормальную поддержку NULL, тогда будет без нулей.
Назначать поля readonly в схеме таблицы тоже в планах.
Когда протестируем напишу сюда.
Нули всё равно останутся. Планируем сделать нормальную поддержку NULL, тогда будет без нулей.
Назначать поля readonly в схеме таблицы тоже в планах.
Есть для SQL Server, Oracle, PostrgeSql - для SQLite добавим.А еще в Мапинфо есть возможность открывать не все поля таблицы, а выборочные. В Аксиоме есть такая возможность?
Re: Автоинкрементные поля в СУБД
Протестировали, работает - будет в ближайшем обновлении.
Пожалуйста, напишите нам на почту если Вам нужна исправленная версия.
Пожалуйста, напишите нам на почту если Вам нужна исправленная версия.