Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как после INSERT получить значение IDENTITY на клиенте?
|
|||
|---|---|---|---|
|
#18+
Добрый день всем! Подскажите пожалуйста, как мне получить после INSERTа записи значение присвоенного поля типа INDENTITY, также хотелось чтобы после INSERT и UPDATE эта запись на клиенте обновлялась, т.к. те данные что вставляются или изменяются, могут быть подправлены триггерами на стороне сервера, а клиенту об этом ничего не известно. Хотелось бы реализовать такую последовательность на клиенте: 1. Вставить/изменить запись 2. Обновить данную запись из сервера. 3. Работата с полученными полями записи... Заранее всем благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2003, 12:12 |
|
||
|
Как после INSERT получить значение IDENTITY на клиенте?
|
|||
|---|---|---|---|
|
#18+
Маленькая оговорочка, немного неправильно поставил вопрос, как получить последнее значение IDENTITY поля для заданной таблицы я знаю (есть функции, позволяющие это сделать). Хотелось бы узнать, как можно сделать так, чтобы после INSERT или UPDATE автоматически на клиенте обновлялась запись с сервера, т.к. триггеры могут форматировать данные, которые ввел пользователь (использую компоненты ADO в Дельфи) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2003, 12:31 |
|
||
|
Как после INSERT получить значение IDENTITY на клиенте?
|
|||
|---|---|---|---|
|
#18+
Ну знаещь есть различные способы ... в триггере на INSERT ставищь какуюнибудь XP Procedure которая передает как нить ну допустим применяя СОМ тех. уник номер записи итд. можно даже Raiserror (опять же в триггере) и в try...exception перехватить причем делать еще проверку на то , точно тебе число пришло, а то вдруг это ошибка а не товй ун код ... :) ну и еще другие ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2003, 12:34 |
|
||
|
Как после INSERT получить значение IDENTITY на клиенте?
|
|||
|---|---|---|---|
|
#18+
А дак ты имеещь ввиду то чтобы обновлялись данный у остальных клиентов ? Обовсем ентом можно прочитать сдесь http://www.sql.ru/articles/mssql/02040201AlertServiceForSQLserv.shtml ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2003, 12:40 |
|
||
|
Как после INSERT получить значение IDENTITY на клиенте?
|
|||
|---|---|---|---|
|
#18+
Хотелось бы реализовать такую последовательность на клиенте: 1. Вставить/изменить запись 2. Обновить данную запись из сервера. 3. Работата с полученными полями записи... :) Т.е. ты хочешь, чтобы тебе код написали, как вставить, как обновить (Close Open) и как работать? Всегда после действий над данными перечитывай их - вот и все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2003, 13:03 |
|
||
|
Как после INSERT получить значение IDENTITY на клиенте?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2003, 13:11 |
|
||
|
Как после INSERT получить значение IDENTITY на клиенте?
|
|||
|---|---|---|---|
|
#18+
>>Всегда после действий над данными перечитывай их - вот и все. интересное решение, перечитывать весь клиентский набор данных, а нет ли способа перечитать только одну запись, без Close Open ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2003, 13:46 |
|
||
|
Как после INSERT получить значение IDENTITY на клиенте?
|
|||
|---|---|---|---|
|
#18+
CREATE PROCEDURE заказчики_вставить @Имя varchar (255) = null as declare @ID numeric (28, 0) insert into заказчики (Имя) values (@Имя) select @ID = @@identity select @ID as Row_ID Мне нужно, чтобы на клиенте обновлялась запись: ... ADODataSet.Post(); i := ADODataSet.FieldByName( 'CUSTOMER_ID' ).AsInteger; // так вот, здесь будет 0! хотя должно быть значение поля IDENTITY, которое присвоил сервер а Open Close делать бы не хотелось, это ж весь датасет переоткрыть, зачем? если нужно сделать рефреш только одной записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2003, 13:50 |
|
||
|
Как после INSERT получить значение IDENTITY на клиенте?
|
|||
|---|---|---|---|
|
#18+
узнать идентити моментально после вставки можно только через SP и никак иначе. SP вызываешь не через ExecSQL а через Open. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2003, 14:07 |
|
||
|
Как после INSERT получить значение IDENTITY на клиенте?
|
|||
|---|---|---|---|
|
#18+
>>узнать идентити моментально после вставки можно только через SP и никак иначе. SP вызываешь не через ExecSQL а через Open. Да это можно, но как обновить одну запись на клиенте без Close Open всего датасета? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2003, 14:11 |
|
||
|
Как после INSERT получить значение IDENTITY на клиенте?
|
|||
|---|---|---|---|
|
#18+
Никак. А что, есть проблемы обновить весь датасет? Такой большой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2003, 16:55 |
|
||
|
Как после INSERT получить значение IDENTITY на клиенте?
|
|||
|---|---|---|---|
|
#18+
Да ну как то не правильно это, обновлять датасет при любом изменении. А если открыта длинная транзакция, и в ней пользователь вносит данные, так после каждого апдейта Select делать как то не очень хочется. Ладно буду по другому выкручивацца.... Спасибо всем за ответы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2003, 17:16 |
|
||
|
Как после INSERT получить значение IDENTITY на клиенте?
|
|||
|---|---|---|---|
|
#18+
А если открыта длинная транзакция, и в ней пользователь вносит данные, так Это кто ж тебя надоумил вешать транзакцию, пока пользователь чего-то делает с открытым набором, а??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2003, 17:21 |
|
||
|
Как после INSERT получить значение IDENTITY на клиенте?
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! Моно использовать Св-ва: ADOQuery1.Properties а именно ADOQuery1.Properties.Item[100].Value:=$00000002; ADOQuery1.Properties.Item[97].Value:=$00000001; к сожалению не все работает на серверных БД вообще посмотрите процедуру (написана не мной) она может дать представления об Properties procedure TForm1.ShowProperties(Props: Properties); var I: Integer; F: TForm; Button: TButton; begin F := CreateMessageDialog('', mtInformation, [mbCancel]); F.Height := Screen.Height div 2; F.Width := Screen.Width div 2; Button := F.Components as TButton; Button.Top := F.ClientHeight - Button.Height - 5; Button.Left := (F.ClientWidth - Button.Width) div 2; F.Caption := 'Properties'; with TMemo.Create(F) do begin SetBounds(5, 5, F.ClientWidth-10, F.ClientHeight - 40); Parent := F; for I := 0 to Props.Count - 1 do with Props do Lines.Add(Format('%-30s: %s %s', [Name, VarToStr(Value),IntToStr(i)])); end; F.ShowModal; end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 10:59 |
|
||
|
|

start [/forum/topic.php?fid=58&tid=2118106]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
23ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 335ms |

| 0 / 0 |
