|
|
|
Вопрос об обновлении значений триггером либо хранимой
|
|||
|---|---|---|---|
|
#18+
Access2002 ADP + SQL Server Имеется форма , имеющая рекордсет на основе запроса чеоез несколько таблиц На форме размещены контролы, значения которых можно изменять (например, Идентификатор валюты, Идентификатор НДС) Необходимо мгновенно отобразить новые значения в полях При изменении оных мне необходимо пересчитать значения в других полях Делал с помощью триггера и с помощью размещения ХП на событие AfterUpdate Стабильно выдает сообщение о том, что запись была изменена. (Скопировать в буфер, Отменить изменения, Сохранить) Рылся в форуме - пробовал все, что видел. Также подставлял запрос на синхронизацию идентичный с тем, что имею в качестве тсточника записей + фильтр по ключевому со знаком вопроса Наверняка кто-то уже встречался с этой проблемой Бьюсь весь день - не могу и все ( Спасибо за внимание ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2004, 03:06 |
|
||
|
Вопрос об обновлении значений триггером либо хранимой
|
|||
|---|---|---|---|
|
#18+
Добавь в начало и в конец триггера эти куски: ALTER TRIGGER blablabla ON dbo.MyTable FOR INSERT, UPDATE AS set nocount on DECLARE @LastIdent Int, @S AS VARCHAR(255) Set @LastIdent = @@identity -- Тело триггера set @s = 'select Identity(Int, ' + cast(@LastIdent as varchar(10)) + ',1) as i into #t' exec (@s) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2004, 07:41 |
|
||
|
Вопрос об обновлении значений триггером либо хранимой
|
|||
|---|---|---|---|
|
#18+
Спасибо, но не помогает. У меня просто ключевое поле, не Идентити Триггрером/Хранимой я пытаюсь обновить туже самую таблицу, на которой базирована форма. Избежать вычисляемых полей в таблице пока не удается, ввиду последующих осложнений (очень трудоемкие запросы) Возможно ли вообзе теоретически поменять запись, на которой в данный момент нахлдится форма? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2004, 11:12 |
|
||
|
Вопрос об обновлении значений триггером либо хранимой
|
|||
|---|---|---|---|
|
#18+
Я что-то не пойму, в чем сложность. 1. Лучше делай хранимкой. В начале хранимки ставишь set nocount on 2. После запуска хранимки сразу me.Requery 3. В строке синхронизации прописываешь SELECT bla-bla-bla FROM bla-bla-bla WHERE KeyField=fldKeyField. Тут KeyField - ключевое поле в таблице, fldKeyField - контрол, отображающий ключевое значение, на форме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2004, 11:15 |
|
||
|
Вопрос об обновлении значений триггером либо хранимой
|
|||
|---|---|---|---|
|
#18+
А зачем тогда вообще триггер? Меняй поля формы по соответствующему событию, например private sub form_beforeUpdate(cancel as integer) me.поле3=me.поле1*me.поле2 end sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2004, 11:17 |
|
||
|
Вопрос об обновлении значений триггером либо хранимой
|
|||
|---|---|---|---|
|
#18+
To zz: Именно так у меня и есть. Но задолбало предупреждение каждый раз (аксессовское) To Geo: Думал над такой возможностью То есть - кроме как этого способа, все делать на клиенте, нет ничего. (( Так не хочется писать эти обновления для каждой формы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2004, 11:43 |
|
||
|
Вопрос об обновлении значений триггером либо хранимой
|
|||
|---|---|---|---|
|
#18+
Тогда подожди, пока асы придут, я в адп не силен... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2004, 11:49 |
|
||
|
Вопрос об обновлении значений триггером либо хранимой
|
|||
|---|---|---|---|
|
#18+
2@SQl: Приведи пожалуйста кусок кода где у тебя все это происходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2004, 11:53 |
|
||
|
Вопрос об обновлении значений триггером либо хранимой
|
|||
|---|---|---|---|
|
#18+
Скажем, тут, при нажатии на кнопку Код: plaintext 1. 2. 3. Или просто при закрытии формы или переходе на другую запись ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2004, 11:57 |
|
||
|
Вопрос об обновлении значений триггером либо хранимой
|
|||
|---|---|---|---|
|
#18+
не. Я имею в виду, где ты вызываешь хранимку и т. д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2004, 11:59 |
|
||
|
Вопрос об обновлении значений триггером либо хранимой
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2004, 12:07 |
|
||
|
Вопрос об обновлении значений триггером либо хранимой
|
|||
|---|---|---|---|
|
#18+
повесь это все на AfterUpdate и последней строкой напиши Me.Requery ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2004, 12:11 |
|
||
|
Вопрос об обновлении значений триггером либо хранимой
|
|||
|---|---|---|---|
|
#18+
Никакого эффекта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2004, 12:32 |
|
||
|
Вопрос об обновлении значений триггером либо хранимой
|
|||
|---|---|---|---|
|
#18+
@SOL Либо заведи счетчик и не парся (сделав как Гео написал) либо бери в руки профайлер и смотри что Акес запрашивает у сервера. вообще-то должен запрашивать Select @@IDENTITY. Но его у тебя нет, возможно - SCOPE_IDENTITY - он имеет тип - sql_variant. Рад бы помочь, но я привержинец суррогатных ключей и поэтому с такими прблемами еще не сталкивался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2004, 12:45 |
|
||
|
Вопрос об обновлении значений триггером либо хранимой
|
|||
|---|---|---|---|
|
#18+
во, а у меня помогло, если перед вызовом хранимки поставить me.Requery. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2004, 12:47 |
|
||
|
Вопрос об обновлении значений триггером либо хранимой
|
|||
|---|---|---|---|
|
#18+
2zz во, а у меня помогло, если перед вызовом хранимки поставить me.Requery. возможно у тебя другая ситуация. Для воспроизведения ситуации @SOL\'a должно в триггере на добавление/обновление таблицы А (на ней основана форма) вставляться данные в таблицу В, таким образом изменяется @@Identity на идентити из таблицы В (которое нам нафиг не нужно), которое акес запрашивает после выполнения триггера и поэтому ему сносит башку. Пример Гео позволяет обойти данную проблему - искусственно внося во временную таблицу, ранее сохраненое @@Identity таблицы А. Таким образом, хотя Акес и получает @@Identity временной таблицы, но оно является и @@Identity таблицы А - поэтому все работает. Вот так я об этом узнал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2004, 12:54 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32521808&tid=1674543]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
169ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 473ms |

| 0 / 0 |
