|
|
|
Максимальный номер при большом количестве транзакций
|
|||
|---|---|---|---|
|
#18+
Не знаю, в тот ли раздел пишу, может в проектирование БД надо В общем есть у меня таблица заявок: (z_id,....,....,....,номер компании, время записи) Юзер из web-формы заполняет данные и после нажатия кнопки Готово вставляется новая запись в таблицу заявок. Как находить номер конкретно этой вставленной заявки, если в одну секунду может быть добавлена не одна заявка? MAX .... WHERE компания номер=...., не пойдет, так как У одной компании может быть несколько операторов для ввода заявок. Может к номеру сессии еще подвязаться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2009, 10:44:33 |
|
||
|
Максимальный номер при большом количестве транзакций
|
|||
|---|---|---|---|
|
#18+
Сказочный леший, > Как находить номер конкретно этой вставленной заявки Нужно знать z_id (ключевое поле, как я понял) записи. Т.е. алгоритм такой: Формируем ключ. Добавляем запись. Возвращаем значение ключа. Как это сделать, зависит от сервера БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2009, 11:13:32 |
|
||
|
Максимальный номер при большом количестве транзакций
|
|||
|---|---|---|---|
|
#18+
да, z_id-это ключ. как можно сформировать ключ до добавления записи? max+1 чтоле? субд= sql server 2005 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2009, 11:38:55 |
|
||
|
Максимальный номер при большом количестве транзакций
|
|||
|---|---|---|---|
|
#18+
IDENTITY identity_scope и еще какая то была. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2009, 11:48:56 |
|
||
|
Максимальный номер при большом количестве транзакций
|
|||
|---|---|---|---|
|
#18+
Сказочный лешийда, 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. И в программе на добавление записей вызывается не INSERT, а эта процедура, которая и возвращает id вставленной записи. Можете почитать справку по @@IDENTITY. Ну это один из способов, может есть и другие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2009, 11:52:42 |
|
||
|
Максимальный номер при большом количестве транзакций
|
|||
|---|---|---|---|
|
#18+
понято, спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2009, 12:00:25 |
|
||
|
Максимальный номер при большом количестве транзакций
|
|||
|---|---|---|---|
|
#18+
Пример, что я писал, рабочий. Но есть несколько "но". 1) Может быть на MS-SQL 2005 есть какие-нибудь средства для этого более простые, чтоб не писать хранимку. 2) Нужно иметь в виду особенность назначения доступа: если пользователь имеет доступ к операции INSERT на таблицу tab, то нужно сделать следующие: a) запретить доступ на INSERT на tab b) разрешить доступ на PROC_INSERT. В результате, пользователь добавляет записи только через хранимку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2009, 12:44:26 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=113&tid=1344067]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 229ms |
| total: | 399ms |

| 0 / 0 |
