powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопрос об обновлении значений триггером либо хранимой
17 сообщений из 17, страница 1 из 1
Вопрос об обновлении значений триггером либо хранимой
    #32521286
@SOL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Access2002 ADP + SQL Server

Имеется форма , имеющая рекордсет на основе запроса чеоез несколько таблиц

На форме размещены контролы, значения которых можно изменять
(например, Идентификатор валюты, Идентификатор НДС)
Необходимо мгновенно отобразить новые значения в полях

При изменении оных мне необходимо пересчитать значения в других полях
Делал с помощью триггера и с помощью размещения ХП на событие
AfterUpdate

Стабильно выдает сообщение о том, что запись была изменена. (Скопировать в буфер, Отменить изменения, Сохранить)
Рылся в форуме - пробовал все, что видел.

Также подставлял запрос на синхронизацию идентичный с тем, что имею в качестве тсточника записей + фильтр по ключевому со знаком вопроса


Наверняка кто-то уже встречался с этой проблемой
Бьюсь весь день - не могу и все (

Спасибо за внимание
...
Рейтинг: 0 / 0
Вопрос об обновлении значений триггером либо хранимой
    #32521324
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавь в начало и в конец триггера эти куски:

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)
...
Рейтинг: 0 / 0
Вопрос об обновлении значений триггером либо хранимой
    #32521668
@SOL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, но не помогает. У меня просто ключевое поле, не Идентити


Триггрером/Хранимой я пытаюсь обновить туже самую таблицу, на которой базирована форма.
Избежать вычисляемых полей в таблице пока не удается, ввиду последующих осложнений (очень трудоемкие запросы)

Возможно ли вообзе теоретически поменять запись, на которой в данный момент нахлдится форма?
...
Рейтинг: 0 / 0
Вопрос об обновлении значений триггером либо хранимой
    #32521681
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я что-то не пойму, в чем сложность.
1. Лучше делай хранимкой. В начале хранимки ставишь set nocount on
2. После запуска хранимки сразу me.Requery
3. В строке синхронизации прописываешь SELECT bla-bla-bla FROM bla-bla-bla WHERE KeyField=fldKeyField. Тут KeyField - ключевое поле в таблице, fldKeyField - контрол, отображающий ключевое значение, на форме.
...
Рейтинг: 0 / 0
Вопрос об обновлении значений триггером либо хранимой
    #32521685
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем тогда вообще триггер? Меняй поля формы по соответствующему событию, например

private sub form_beforeUpdate(cancel as integer)
me.поле3=me.поле1*me.поле2
end sub
...
Рейтинг: 0 / 0
Вопрос об обновлении значений триггером либо хранимой
    #32521763
@SOL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To zz:

Именно так у меня и есть. Но задолбало предупреждение каждый раз (аксессовское)


To Geo:

Думал над такой возможностью
То есть - кроме как этого способа, все делать на клиенте, нет ничего. ((

Так не хочется писать эти обновления для каждой формы
...
Рейтинг: 0 / 0
Вопрос об обновлении значений триггером либо хранимой
    #32521777
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда подожди, пока асы придут, я в адп не силен...
...
Рейтинг: 0 / 0
Вопрос об обновлении значений триггером либо хранимой
    #32521787
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2@SQl:
Приведи пожалуйста кусок кода где у тебя все это происходит.
...
Рейтинг: 0 / 0
Вопрос об обновлении значений триггером либо хранимой
    #32521797
@SOL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скажем, тут, при нажатии на кнопку

Код: plaintext
1.
2.
3.
Private Sub cmdSaveRec_Click()
  DoCmd.RunCommand acCmdSaveRecord
End Sub

Или просто при закрытии формы или переходе на другую запись
...
Рейтинг: 0 / 0
Вопрос об обновлении значений триггером либо хранимой
    #32521808
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не. Я имею в виду, где ты вызываешь хранимку и т. д.
...
Рейтинг: 0 / 0
Вопрос об обновлении значений триггером либо хранимой
    #32521823
@SOL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub cmbCurrencyID_BeforeUpdate(Cancel As Integer)
Dim cnn As ADODB.Connection
Set cnn = CurrentProject.Connection
Dim InvoiceAmount As Double

InvoiceAmount = Nz(Me.txtAmount,  0 )
cnn.Execute "SP_FA_UPDATE_INVOICE_DETAILS " & Me.txtInvoiceID & "," & Me.txtAmount & "," & Me.cmbCurrencyID & "," & Me.[INVOICE_RATE_ID] & "," & Me.cmbVAT

End Sub
...
Рейтинг: 0 / 0
Вопрос об обновлении значений триггером либо хранимой
    #32521836
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
повесь это все на AfterUpdate и последней строкой напиши Me.Requery
...
Рейтинг: 0 / 0
Вопрос об обновлении значений триггером либо хранимой
    #32521909
@SOL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Никакого эффекта
...
Рейтинг: 0 / 0
Вопрос об обновлении значений триггером либо хранимой
    #32521955
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
@SOL

Либо заведи счетчик и не парся (сделав как Гео написал) либо бери в руки профайлер и смотри что Акес запрашивает у сервера. вообще-то должен запрашивать Select @@IDENTITY. Но его у тебя нет, возможно - SCOPE_IDENTITY - он имеет тип - sql_variant. Рад бы помочь, но я привержинец суррогатных ключей и поэтому с такими прблемами еще не сталкивался.
...
Рейтинг: 0 / 0
Вопрос об обновлении значений триггером либо хранимой
    #32521957
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
во, а у меня помогло, если перед вызовом хранимки поставить me.Requery.
...
Рейтинг: 0 / 0
Вопрос об обновлении значений триггером либо хранимой
    #32521984
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2zz
во, а у меня помогло, если перед вызовом хранимки поставить me.Requery.

возможно у тебя другая ситуация. Для воспроизведения ситуации @SOL\'a должно в триггере на добавление/обновление таблицы А (на ней основана форма) вставляться данные в таблицу В, таким образом изменяется @@Identity на идентити из таблицы В (которое нам
нафиг не нужно), которое акес запрашивает после выполнения триггера и поэтому ему сносит башку. Пример Гео позволяет обойти данную проблему - искусственно внося во временную таблицу, ранее сохраненое @@Identity таблицы А. Таким образом, хотя Акес и получает @@Identity временной таблицы, но оно является и @@Identity таблицы А - поэтому все работает.
Вот так я об этом узнал
...
Рейтинг: 0 / 0
Вопрос об обновлении значений триггером либо хранимой
    #32522590
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот так я об этом узнал
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопрос об обновлении значений триггером либо хранимой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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