powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ADP, MS SQL и все такое
15 сообщений из 15, страница 1 из 1
ADP, MS SQL и все такое
    #32570766
Dr. I M P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть MS SQL сервер, пользователь (доменный) подключается к нему через ADP, на таблицу (например Table1) у него есть все права доступа (Select, Update и т.д.) - этот пользователь номально работает с ней, добавляет, изменяет, удаляет. Рядом такая же таблица (пусть будет Table2), с такими же правами для этого пльзователя и глюк такой: открывает он ее, видит что в ней, редактирует какое-нибудь поле в строке, переходит на другое поле в этой же строке - все нормально, а как только переходит на другую строку, то данные, которые он изменил, возвращаются в исходное значение. Т.е. не вылазит никаких сообщений, что типа нельзя изменять и т.п. (в других таблицах, если нельзя и попробовать изменить, появляется сообщение про "нельзя" :) )
Что делать и где копать?
...
Рейтинг: 0 / 0
ADP, MS SQL и все такое
    #32570802
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм.
Триггеры на табле 2 есть?
...
Рейтинг: 0 / 0
ADP, MS SQL и все такое
    #32570950
Dr. I M P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
paparomeХм.
Триггеры на табле 2 есть?

Есть (БД не я делал, поэтому не знаю зачем они там).

ALTER TRIGGER T_Del
ON dbo.Table1
FOR DELETE
AS
declare @@result int
set @@result = 1
if exists(select * from deleted where datediff(day, Дата, getdate()) > 7)
set @@result = 0
if @@result = 0 and current_user <> 'dbo'
begin
print 'Удаление запрещено!'
rollback transaction
end

ALTER TRIGGER T_Ins
ON dbo.Table1
FOR insert
AS
declare @@result int
set @@result = 1
if exists(select * from inserted where datediff(day, Дата, getdate()) > 7)
set @@result = 0
if @@result = 0 and current_user <> 'dbo'
begin
print 'Добавление запрещено!'
rollback transaction
end

ALTER TRIGGER T_Upd
ON dbo.Table1
FOR UPDATE
AS
declare @@result int
set @@result = 1
if (exists(select * from deleted where datediff(day, Дата, getdate()) > 7)) or (exists(select * from inserted where datediff(day, Дата, getdate()) > 7))
set @@result = 0
if @@result = 0 and current_user <> 'dbo'
begin
print 'Изменение запрещено!'
rollback transaction
end

Но сообщений никаких не показываетсЯ, когда пользователь добавляет или удаляет.
...
Рейтинг: 0 / 0
ADP, MS SQL и все такое
    #32570970
ищ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вместо print
исп. raiserror('Дата не должна быть меньше последней даты архивации.',16,1)
...
Рейтинг: 0 / 0
ADP, MS SQL и все такое
    #32571004
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И после AS во всех триггерах поставь
SET NOCOUNT ON
...
Рейтинг: 0 / 0
ADP, MS SQL и все такое
    #32571098
Dr. I M P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
paparomeИ после AS во всех триггерах поставь
SET NOCOUNT ON

Поставил SET NOCOUNT ON - не помогает.
Заменил Print на raiserror - начало появляться сообщение что нельзя писать:)

Но....

Увидал одну фишку, которая, как я понимаю, сводит на нет все предыдущие старания:)
Пользователь не может редактировать данные только до 16.06.04, т.е. все, что было добавлено в таблицу позже - редактируется как угодно.
...
Рейтинг: 0 / 0
ADP, MS SQL и все такое
    #32571132
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторУвидал одну фишку, которая, как я понимаю, сводит на нет все предыдущие старания:)
Пользователь не может редактировать данные только до 16.06.04, т.е. все, что было добавлено в таблицу позже - редактируется как угодно.

Судя по триггерам, обычному пользователю разрешено править записи в пределах одной недели (сегодня это [дата]>16.06.2004)

+ Я что-то не понял, вы у нас хотите узнать, зачем в вашей таблице такие триггеры?
...
Рейтинг: 0 / 0
ADP, MS SQL и все такое
    #32571155
Dr. I M P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
paparome
Судя по триггерам, обычному пользователю разрешено править записи в пределах одной недели (сегодня это [дата]>16.06.2004)

+ Я что-то не понял, вы у нас хотите узнать, зачем в вашей таблице такие триггеры?

:)
Нет, это не моя таблица :)
Не я ее писал и в подобных делах я еще плохо разбираюсь.
Значт триггер дает доступ только к определенным дням? Правильно? Т.е. его надо просто удалить?
...
Рейтинг: 0 / 0
ADP, MS SQL и все такое
    #32571213
ищ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мне страшно
...
Рейтинг: 0 / 0
ADP, MS SQL и все такое
    #32571254
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЗначт триггер дает доступ только к определенным дням? Правильно? Т.е. его надо просто удалить?

Эти 3 тириггера "дают доступ" к "определенным" дням (минус неделя от текущего момента) для не привелигированных пользователей (Админ могет все править - что тоже видно в триггере)

Насчет удалить.
Не знаю - наверное триггеры зачем-то писались, значит для их существования есть какой-то смысл, может прежде чем их удалить узнать у разработчика (бывший программист) или заказчика (начальство) на кой так сделано было.

А если вы их удалите, тогда все будет и добавляться и удаляться без всяких проблем - если вам это надо, тогда удаляейте (но я этого не советовал!!!)
...
Рейтинг: 0 / 0
ADP, MS SQL и все такое
    #32571277
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АХТУНГ!!!

мне ещё страшнее ища

Шайтан
...
Рейтинг: 0 / 0
ADP, MS SQL и все такое
    #32571357
Dr. I M P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
paparome
Эти 3 тириггера "дают доступ" к "определенным" дням (минус неделя от текущего момента) для не привелигированных пользователей (Админ могет все править - что тоже видно в триггере)

Насчет удалить.
Не знаю - наверное триггеры зачем-то писались, значит для их существования есть какой-то смысл, может прежде чем их удалить узнать у разработчика (бывший программист) или заказчика (начальство) на кой так сделано было.

А если вы их удалите, тогда все будет и добавляться и удаляться без всяких проблем - если вам это надо, тогда удаляейте (но я этого не советовал!!!)

Большое спасибо!
Чуть позже я попробую.
А на счет обратиться к заазчику или разработчику - у нас шеф где-то по блату достал эту базу, заставил меня всю ее излазить, раздать пользователям и самое, что интересное - разработчиков давно уже в живых, по моему, нет. Т.е. никто не знае откуда эта база :)
Вот такие пироги:(
...
Рейтинг: 0 / 0
ADP, MS SQL и все такое
    #32572091
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с такими знаниями просто нельзя пытаться что либо менять.

подучись даля начала а потом кромсай.
очень напоминает когда с ломиком в часики


если этот триггер кто то сделал значит этот жжж неспроста,
значит это методика работы с программой требует чтоб так было

нужно выяснить алгоритм работы программы - кто создает триггер и зачем а не крушить ее...
...
Рейтинг: 0 / 0
ADP, MS SQL и все такое
    #32572125
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 АлексейК

Я тоже так думаю (о чем и говорил), но товарищ/господин (не нужное зачеркнуть), решил что надо покромсать, ибо спросить не у кого - разработчики "вне зоны действия сети" :)
...
Рейтинг: 0 / 0
ADP, MS SQL и все такое
    #32572315
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
paparome2 АлексейК

Я тоже так думаю (о чем и говорил), но товарищ/господин (не нужное зачеркнуть), решил что надо покромсать, ибо спросить не у кого - разработчики "вне зоны действия сети" :)

ну уж отгда хотябы создать "дубль" системы (типа, работающий протоитп) и на нём поэкспериментировать

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


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