Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
запрос на добавление, как вернуть значение поля
|
|||
|---|---|---|---|
|
#18+
Добавляю запись в таблицу с помощью запроса Код: plaintext 1. 2. 3. следующим шагом мне надо использовать значение поля (userid), только что добавленной записи. Это поле автоинкрементное.Чтобы узнать значение (userid) я делаю запрос: Код: plaintext 1. 2. 3. И использую поле запроса UserQuery.FieldByName('userid').Value; А КАК СДЕЛАТЬ ЧТОБЫ НЕ ВЫПОЛНЯТЬ ВТОРОЙ ЗАПРОС И ЧТОБЫ ЗНАЧЕНИЕ (USERID) ВЕРНУЛ ПЕРВЫЙ ЗАПРОС НА ДОБАВЛЕНИЕ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 10:16 |
|
||
|
запрос на добавление, как вернуть значение поля
|
|||
|---|---|---|---|
|
#18+
Уважаемые знатоки, неужели моё решение единственное??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 11:39 |
|
||
|
запрос на добавление, как вернуть значение поля
|
|||
|---|---|---|---|
|
#18+
Написать хранимую процудуру. В ней делать вставку и через дополнительный выходной параметр и SCOPE_IDENTITY() возвращать значение счетчика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 11:51 |
|
||
|
запрос на добавление, как вернуть значение поля
|
|||
|---|---|---|---|
|
#18+
А по-моему оба этих запроса можно выполнить сразу, т.е. SQL.Text:='set nocount on insert into UsersPass (userid, password) values(:userid, :pass) select userid from users where login=:par'; parameters.ParamByName('userid').Value:=UserQuery.FieldByName('userid').Value; parameters.ParamByName('pass').Value:=edtPassword.Text; Parameters.ParamByName('par').Value:=EditLogin.Text; Open; Поскольку последним оператором является select, то надо использовать Open и он вернет то что тебе надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 12:01 |
|
||
|
запрос на добавление, как вернуть значение поля
|
|||
|---|---|---|---|
|
#18+
pkarklin если не трудно, научи пожалусто, как это сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 12:30 |
|
||
|
запрос на добавление, как вернуть значение поля
|
|||
|---|---|---|---|
|
#18+
Если речь идет про сиквел, то на сервере примерно так Код: plaintext 1. 2. 3. 4. 5. 6. На клиенте, ложим TADOStoredProc, устанавливаем свойства и потом в коде: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 12:47 |
|
||
|
запрос на добавление, как вернуть значение поля
|
|||
|---|---|---|---|
|
#18+
Убейте автоинкрементность Вашего поля, и работайте так: ПЕРЕД добавлением записи каким-либо способом сгененрируйте очередное значение вашего "автоинкрементного" поля, а затем, зная это поле, работаете как обычно. Единственное, Вам придется реализовать эту псевдоинкрементность вне контекста транзакций, ну, чтобы разные юзеры генерили разные номера полей. В InterBase для этой цели существуют ГЕНЕРАТОРЫ, и есть масса компонентов, которые используют описанную схему: - в событии OnNewRecord генерится очередное значение - запись восится в базу с уже известным значением - выполняется Refresh по уже известному ключу Если Ваша СУБД не поддерживает ГЕНЕРАТОРЫ, то см. демку из комплекта Delphi, там они завели специальную таблицу с одной записью (и с одним полем), которая играет роль генератора. Чтобы получить очередное значение, клиент кратковременно блокирует эту запись в своей транзакции, считывает значение поля, увеличивет его на 1, делает POST и разблокирует его для других клиентов. Дальше то же самое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 13:15 |
|
||
|
запрос на добавление, как вернуть значение поля
|
|||
|---|---|---|---|
|
#18+
2 Малиновский Владимир Убейте автоинкрементность Вашего поля, и работайте так Интересно, для чего ломать то, что уже работает? Единственное, Вам придется реализовать эту псевдоинкрементность вне контекста транзакций, ну, чтобы разные юзеры генерили разные номера полей. Ага, и поимеем себе геморой на ровном месте. Пусть это делает сервер. Чтобы получить очередное значение, клиент кратковременно блокирует эту запись в своей транзакции, считывает значение поля, увеличивет его на 1, делает POST и разблокирует его для других клиентов. Узкое местечко получается, однако. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 13:22 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32307286&tid=2116201]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 425ms |

| 0 / 0 |
