powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / генерация primary key до вставки
6 сообщений из 56, страница 3 из 3
генерация primary key до вставки
    #33039448
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятия не имею, что Вы там сделали, но если создать DataWindow на основе этой таблицы по запросу
Код: plaintext
SELECT bu_test.id,bu_test.data FROM bu_test 

Указать Allow Updates, выбрать таблиуц bu_test, в updateable columns выбрать data, в unique и identity - id, то зайдя на вкладку preview, внеся пару строчек и сохраня в поле ID мы получим значения автоинкремента. И в программе точно также. Какая версия PB?
savosin_sergey В обоих случая нету значения identity-поля, как это утверждалось здесь.
К вашему случаю это не имеет ровно никакого отношения.
savosin_sergey Хотя бы из-за этого генерация id-поля вручную имеет право на жизнь, как работающий вариант.Но уж точно не Ваш вариант.
savosin_sergey Альтернатива считыванию @@identity до сохранения..СКОЛЬКО РАЗ МОЖНО ГОВОРИТЬ, ЧТО @@identity НУЖНО СЧИТЫВАТЬ ПОСЛЕ СОХРАНЕНИЯ!!!
...
Рейтинг: 0 / 0
генерация primary key до вставки
    #33040275
Фотография savosin_sergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но уж точно не Ваш вариант.

Локшин Марк savosin_sergeyАльтернатива считыванию @@identity до сохранения..
СКОЛЬКО РАЗ МОЖНО ГОВОРИТЬ, ЧТО @@identity НУЖНО СЧИТЫВАТЬ ПОСЛЕ СОХРАНЕНИЯ!!!
Да, я ошибся. Хотя имел ввиду "после созранения", полностью в вами, Марк согласен. Всязи с этим хотел бы обсудить такой вариант:
- работают два пользователя с одним документом (допустим, состоящим из одной таблицы tbl1 (id int identity, data varchar(50))
- первый пользователь добавляет строку, заполянет жмёт сохранить
- при этом второй пользователь в этом же документе добавляет строку, жмёт сохранить
- первый пользователь после своего удачного сохранения считывает @@identity (например, на updateend()) -- и получает id для другой записи (записи, вставленной вторым пользователем)
=>возможен конфликт (смотрим сюда)
...
Рейтинг: 0 / 0
генерация primary key до вставки
    #33040291
Фотография savosin_sergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локшин МаркУказать Allow Updates, выбрать таблиуц bu_test, в updateable columns выбрать data, в unique и identity - id, то зайдя на вкладку preview, внеся пару строчек и сохраня в поле ID мы получим значения автоинкремента. И в программе точно также. Какая версия PB?
pb9.01 build 7275
действительно, в dw-painter'е работает.. надо будет простое окно потестить, а то все мои тесты проходят не на обычных DW-control'ах, а на специальных наследниках (технология фирмы. аналог PFC)
...
Рейтинг: 0 / 0
генерация primary key до вставки
    #33040316
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
savosin_sergeyНо уж точно не Ваш вариант.

Локшин Марк savosin_sergeyАльтернатива считыванию @@identity до сохранения..
СКОЛЬКО РАЗ МОЖНО ГОВОРИТЬ, ЧТО @@identity НУЖНО СЧИТЫВАТЬ ПОСЛЕ СОХРАНЕНИЯ!!!
Да, я ошибся. Хотя имел ввиду "после созранения", полностью в вами, Марк согласен. Всязи с этим хотел бы обсудить такой вариант:
- работают два пользователя с одним документом (допустим, состоящим из одной таблицы tbl1 (id int identity, data varchar(50))
- первый пользователь добавляет строку, заполянет жмёт сохранить
- при этом второй пользователь в этом же документе добавляет строку, жмёт сохранить
- первый пользователь после своего удачного сохранения считывает @@identity (например, на updateend()) -- и получает id для другой записи (записи, вставленной вторым пользователем)
=>возможен конфликт (смотрим сюда)
@@IDENTITY вообще то сессионная переменная, то есть для каждой сессии в ней будет значение id последней вставленной записи в сессии. Поэтому о каких конфликтах может идти речь, лично я не понимаю. У Вас что - 2 программы через одну сессию что ли работают ???
...
Рейтинг: 0 / 0
генерация primary key до вставки
    #33040394
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
savosin_sergey- работают два пользователя с одним документом (допустим, состоящим из одной таблицы tbl1 (id int identity, data varchar(50))
- первый пользователь добавляет строку, заполянет жмёт сохранить
- при этом второй пользователь в этом же документе добавляет строку, жмёт сохранить
- первый пользователь после своего удачного сохранения считывает @@identity (например, на updateend()) -- и получает id для другой записи (записи, вставленной вторым пользователем)
=>возможен конфликт (смотрим сюда)
Гм. Там я говорил про кривость реализации получения значения автоинкрементного поля в PowerBuilder'е. Но они это осознали
Локшин МаркСм. help по AtAtIdentity DBParm parameter
правда только к 7 версии PB.
В случае его задания ситуация, подобная приведенной в ссылке принципиально невозможна.
savosin_sergeyдействительно, в dw-painter'е работает.. надо будет простое окно потестить, а то все мои тесты проходят не на обычных DW-control'ах, а на специальных наследниках (технология фирмы. аналог PFC)
О чем я и говорил...
...
Рейтинг: 0 / 0
генерация primary key до вставки
    #33040470
Фотография savosin_sergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS@@IDENTITY вообще то сессионная переменная, то есть для каждой сессии в ней будет значение id последней вставленной записи в сессии.

Действительно! спасибо. просто я невнимательно прочитал документацию. SCOPE_IDENTITY тоже ничего

msSqlServer2k online books@@IDENTITY and SCOPE_IDENTITY will return the last identity value generated in any table in the current session. However, SCOPE_IDENTITY returns the value only within the current scope; @@IDENTITY is not limited to a specific scope.

IDENT_CURRENT is not limited by scope and session; it is limited to a specified table. IDENT_CURRENT returns the identity value generated for a specific table in any session and any scope.
...
Рейтинг: 0 / 0
6 сообщений из 56, страница 3 из 3
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / генерация primary key до вставки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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