powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Максимальный номер при большом количестве транзакций
7 сообщений из 7, страница 1 из 1
Максимальный номер при большом количестве транзакций
    #36338349
Сказочный леший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю, в тот ли раздел пишу, может в проектирование БД надо

В общем есть у меня таблица заявок: (z_id,....,....,....,номер компании, время записи)

Юзер из web-формы заполняет данные и после нажатия кнопки Готово вставляется новая запись в таблицу заявок. Как находить номер конкретно этой вставленной заявки, если в одну секунду может быть добавлена не одна заявка?

MAX .... WHERE компания номер=...., не пойдет, так как У одной компании может быть несколько операторов для ввода заявок.

Может к номеру сессии еще подвязаться?
...
Рейтинг: 0 / 0
Максимальный номер при большом количестве транзакций
    #36338427
MAYAKOV_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сказочный леший,
> Как находить номер конкретно этой вставленной заявки
Нужно знать z_id (ключевое поле, как я понял) записи.
Т.е. алгоритм такой:
Формируем ключ.
Добавляем запись.
Возвращаем значение ключа.
Как это сделать, зависит от сервера БД.
...
Рейтинг: 0 / 0
Максимальный номер при большом количестве транзакций
    #36338475
Сказочный леший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, z_id-это ключ.
как можно сформировать ключ до добавления записи? max+1 чтоле?

субд= sql server 2005
...
Рейтинг: 0 / 0
Максимальный номер при большом количестве транзакций
    #36338504
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDENTITY
identity_scope
и еще какая то была.
...
Рейтинг: 0 / 0
Максимальный номер при большом количестве транзакций
    #36338515
MAYAKOV_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сказочный лешийда, z_id-это ключ.
как можно сформировать ключ до добавления записи? max+1 чтоле?

субд= sql server 2005
Это надо спрашивать у спецов на форуме по MS-SQL
У меня старый сервак - MS-SQL 6.5.
Я делал так:
Для insert писал хранимую процедуру,
в которую передавал все параметры.
Процедура возвращет id вставленной записи.
Например, вставка записей в таблицу tab(z_id, p):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
  CREATE PROC_INSERT
   @p int
  AS
    DECLARE @ret int
   
    INSERT INTO TAB(p) values(@p)
    SELECT @ret = @@IDENTITY   /* получаем id последней вставленной записи */
  RETURN @ret

И в программе на добавление записей вызывается не INSERT,
а эта процедура, которая и возвращает id вставленной записи.
Можете почитать справку по @@IDENTITY.

Ну это один из способов, может есть и другие.
...
Рейтинг: 0 / 0
Максимальный номер при большом количестве транзакций
    #36338533
Сказочный леший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
понято, спасибо!
...
Рейтинг: 0 / 0
Максимальный номер при большом количестве транзакций
    #36338666
MAYAKOV_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример, что я писал, рабочий.
Но есть несколько "но".
1) Может быть на MS-SQL 2005 есть какие-нибудь средства
для этого более простые, чтоб не писать хранимку.
2) Нужно иметь в виду особенность назначения доступа:
если пользователь имеет доступ к операции INSERT на таблицу tab,
то нужно сделать следующие:
a) запретить доступ на INSERT на tab
b) разрешить доступ на PROC_INSERT.
В результате, пользователь добавляет записи только через хранимку.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Максимальный номер при большом количестве транзакций
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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