powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / автоматическое обновление
24 сообщений из 24, страница 1 из 1
автоматическое обновление
    #32298462
Paul Chabinsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на аксессе в адп проекте при изменении данных в табличной форме и переходе на другую запись аксесс автоматически кладет обновления в базу

как его отучить делать такую гадость ?
или
как изменить содержание запроса выполняемого при этом обновлении ?

я хочу делать обновления сам когда захочу и как захочу ;)

ЗЫ: Половые связи с другими языками или средами разработки не предлагать :)
...
Рейтинг: 0 / 0
автоматическое обновление
    #32298490
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как его отучить делать такую гадость ?
Эта гадость - стандартное поведение аксеса начиная с первой версии.
Непонятно как вы работали с аксесом если этого не знаете.
Если же вы работали не с аксесом - то почему "Половые связи с другими языками или средами разработки не предлагать"?

А вообще использовать св-во формы Me.Recordset и транзакции.

я хочу делать обновления сам когда захочу и как захочу ;)
Ну и кто тебе родной мешает? Выгони пользователя на хер и обновляй все сам.
...
Рейтинг: 0 / 0
автоматическое обновление
    #32298518
Paul Chabinsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эта гадость - стандартное поведение аксеса начиная с первой версии.
мне и нужно нестандартное поведение вопрос в том как это реализовать

Непонятно как вы работали с аксесом если этого не знаете.
Если же вы работали не с аксесом - то почему "Половые связи с другими языками или средами разработки не предлагать"?

так надо

А вообще использовать св-во формы Me.Recordset и транзакции.
не понял про что Вы ... это как то связано с поставленным вопросом ?

Ну и кто тебе родной мешает? Выгони пользователя на хер и обновляй все сам.
всмысле вообще выкинуть все компы кроме сервера БД и сидеть на телефоне ручками апдейты к базе писать ?
...
Рейтинг: 0 / 0
автоматическое обновление
    #32298528
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> всмысле вообще выкинуть все компы кроме сервера БД

А можно и сервер, до кучи :)

Погляди в Form_BeforeUpdate и Form_AfterUpdate. М.б. тебе это нужно?
...
Рейтинг: 0 / 0
автоматическое обновление
    #32298538
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще использовать св-во формы Me.Recordset и транзакции.
не понял про что Вы ... это как то связано с поставленным вопросом ?


Я про то, что
Открываешь адо рекордсет

Прицепляешь его к форме через св-во Me.Recordset

Перед любым изменением (событие OnDirty) начинаешь транзакцию

По нажатию на кнопку (или когда ты там хочешь делать обновления сам) коммитишь транзакцию

Не забываешь откатить транзакцию (если еще открыта) в момент закрытия формы.
...
Рейтинг: 0 / 0
автоматическое обновление
    #32298551
Paul Chabinsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сейчас вижу такое решение
Код: plaintext
1.
2.
3.
4.
Private Sub Form_BeforeUpdate(Cancel As Integer)
  здесь update который я хочу после чего
  Cancel = True
  Me.Undo
End Sub

оно мне не нравится
...
Рейтинг: 0 / 0
автоматическое обновление
    #32298571
Paul Chabinsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перед любым изменением (событие OnDirty) начинаешь транзакцию
По нажатию на кнопку (или когда ты там хочешь делать обновления сам) коммитишь транзакцию


оч много оч длинных транзакций оч не выгодно блокирующих данные
не вариант
...
Рейтинг: 0 / 0
автоматическое обновление
    #32298584
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оч много оч длинных транзакций оч не выгодно блокирующих данные
На всякий случай поясню. Имелось в виду начинать транзакцию только если она еще не начата.


Тебе нужно по одной записи апдейтить?
Тогда чем тебе твой собственный вариант не нравится?
Родное аксесовкое обновление отключил? Отключил
Свое собственное сделал? Сделал.
Обошелся тремя строчками кода. Чем недоволен?
...
Рейтинг: 0 / 0
автоматическое обновление
    #32298611
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант - вообще делай отсоединенный рекордсет (если он получится обновляемым конечно). На AfterUpdate формы делай все что хочешь и обновляй источник.
...
Рейтинг: 0 / 0
автоматическое обновление
    #32298738
1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
делаешь локальную таблицу и после ввода даных обновляеш таблицу на сервере когда захочешь и как захочешь;)
...
Рейтинг: 0 / 0
автоматическое обновление
    #32298830
Paul Chabinsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант - вообще делай отсоединенный рекордсет
да вот я чего то вроде этого и хочу добиться чтоб был вообще анбаунд контрол
думал если так сделать

dim rs as new adodb.recordset
rs.open "select bla from bla",conection,ту все попробовал,и тут
set me.recorset = rs
поле1.controlsource = "bla"

то получится
а нифига
изменяю поле меняю ров и вижу апдейт :(
...
Рейтинг: 0 / 0
автоматическое обновление
    #32298842
Paul Chabinsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще надеялся на то что можно как то строчку с апдейтом самому писать

мой вариант не оч канает тем что придется рекверить всю форму
например в форме 5 записей и после "кривого" апдейта мне придется реквери сделать вместо ресинка 1ой строчки рекордсета %)
...
Рейтинг: 0 / 0
автоматическое обновление
    #32298866
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После того как наваял рекордсет сделай Set rs.ActiveConnection = Nothing
проверять некогда, но может чего хорошего и получится.
...
Рейтинг: 0 / 0
автоматическое обновление
    #32298874
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Лох Позорный
Нормально всё получится - как раз отсоединённый от данных набор записей и получится.
Только надо писать ещё rs.CursorLocation = adUseClient по-моему, хотя не уверен, надо проверять, читал про это уже достаточно давно...
...
Рейтинг: 0 / 0
автоматическое обновление
    #32298906
Ostrov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как-то непонятно поставлен вопрос.
Eсли нужно запретить пользователю вообще что-либо менять в форме то:

Private Sub Form_Load()
For Each Control In Me.Controls
If Control.ControlType = acTextBox Then: Control.Enabled = False
Next Control
End Sub

Если надо проигнорировать изменения сделанные пользователем то так:

Private Sub Form_BeforeUpdate(Cancel As Integer)
Cancel = True
End Sub
...
Рейтинг: 0 / 0
автоматическое обновление
    #32299680
Paul Chabinsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общим делая свою программу на C# я поступаю следующим образом.
Создаю ДатаАдаптер, Создаю Коннекшн, Создаю ДатаСет.

У ДатаАдаптера, есть такие свойства которые хранят значения запросов которые нужно выполнить при Update Inset Delete и Select, в которые я могу написать что угодно сам... И вызывать метод который синхронизирует данные я могу в любой нужный мне момент.

Как подобного алгоритма действий добиться в аксессе непонятно... вот в чем собсвенно вопрос.
...
Рейтинг: 0 / 0
автоматическое обновление
    #32299700
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Как подобного алгоритма действий добиться в аксессе непонятно...

Тебя Лох Позорный уже просветил по поводу транзакций. Это именно то, что ты хочешь.
...
Рейтинг: 0 / 0
автоматическое обновление
    #32300273
Paul Chabinsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не понял я как "уже просветил по поводу транзакций" связано с тем чего я хочу

еще раз повторю

я хочу чтоб запрос которым аксесс апдейтит строчку указал я сам ...
...
Рейтинг: 0 / 0
автоматическое обновление
    #32300283
Paul Chabinsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет ну это ж ппц ... а как быть с секьюрити ?
как мне запретить человеку таблицу курочить ?
делать на все таблички вьюшки с тригерами инстед оф апдейт ?
...
Рейтинг: 0 / 0
автоматическое обновление
    #32300286
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты в ADP. Ну так и ставь права пользователям.
...
Рейтинг: 0 / 0
автоматическое обновление
    #32300296
Paul Chabinsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как?
например я хочу чтоб у юзера не было прав обновлять таблицу напрямую но было право вызвать хп которая обновляет по моим правилам

как я этого могу добиться если аксесс сам генерит строчку апдейта
...
Рейтинг: 0 / 0
автоматическое обновление
    #32300299
Paul Chabinsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще не менять ничего с баунд конролов ? только из диалогов чтоли ?
...
Рейтинг: 0 / 0
автоматическое обновление
    #32300314
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочешь, чтоб по твоим - пиши триггеры.
...
Рейтинг: 0 / 0
автоматическое обновление
    #32300349
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Paul Chabinsky
Датасеты и всё прочее есть в дотнете - так что пиши всё там, аксес так делать не умеет, либо на транзакциях всё строй (уже говорили). Либо рекордсет отсоединяй. Если хочешь работать в аксесе. Твой механизм там реализуется.

Paul Chabinsky писал:например я хочу чтоб у юзера не было прав обновлять таблицу напрямую но было право вызвать хп которая обновляет по моим правилам

Если у пользователя нет прав на редактирование, то аксес никакого апдейта генерить не будет - потому как работает с подключением, указанном в адп.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / автоматическое обновление
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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