powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Автоинкремент, делфи, зеос -> проблема
3 сообщений из 3, страница 1 из 1
Автоинкремент, делфи, зеос -> проблема
    #32714909
Savka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В этом форуме много тем по поводу автоинкрементного поля в таблице. Читал, но не нашел все же, как мне побороть свою проблему.
Создаю таблицу двумя способами:

1. CREATE TABLE tree (id serial, name varchar(20), parent int2);

2. CREATE SEQUENCE tree_seq;
CREATE TABLE tree(id integer NOT NULL DEFAULT nextval('tree_seq'),
name varchar(20),
parent int2,
PRIMARY KEY (id)
);

В обоих случаях создается то, что мне нужно.
И если я из шелла пытаюсь вставить данные в таблицу типа

INSERT INTO tree (name, parent) VALUES ('sdsdf', 1);

вставляет и само добавляет в поле id нужное, последовательное значение.

Если я пытаюсь из делфи вставить новую запись, то получаю, что поле id не может быть пустым. Если пишу туда какую-нибудь цифру - все ок, вставляется запись. Но это же неправильно.
Если пытаюсь ввести две одинаковые цифры - получаю ошибку.

В форуме нашел, что в поле id надо писать значение default. Но как это сделать? База ждет, что в поле будет вводиться цифра, а не символы.

В чем проблема то, а?
...
Рейтинг: 0 / 0
Автоинкремент, делфи, зеос -> проблема
    #32715698
PJD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PJD
Гость
Никакой проблемы.

Если через ZQuery с RequestLive=True и CachedUpdates=False - то все нормально работает без указания значения, Zeos сам обновит serial-поле после Post (но не все запросы являются редактируемыми вживую).

Если CachedUpdates=True - исправь руками ZUpdateSQL.InsertSQL - напиши default или убери поле совсем. Но значение поля придется узнавать и устанавливать после ApplyUpdates (или переоткрывать запрос).

И наконец можно до отсылки изменений в базу в любом режиме в AfterInsert получить и присвоить nextval('serial_name_seq') отдельным запросом.
...
Рейтинг: 0 / 0
Автоинкремент, делфи, зеос -> проблема
    #32716458
Savka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PJDЕсли через ZQuery с RequestLive=True и CachedUpdates=False - то все нормально работает без указания значения, Zeos сам обновит serial-поле после Post (но не все запросы являются редактируемыми вживую).



Никакой проблемы в таком случае у меня не возникает, когда работаю с MySQL. В Postgree Zeos сам почему-то не хочет этого делать.

Вставляет запись только в случае, если в запросе опускается выборка поля serial. Сейчас раздумываю, подходит ли это мне.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Автоинкремент, делфи, зеос -> проблема
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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