Форум: "Базы";
Текущий архив: 2002.02.11;
Скачать: [xml.tar.bz2];
ВнизПроверка данных на программе клиенте Найти похожие ветки
← →
Макс (2002-01-16 16:45) [0]Вешаю на таблицу триггер который автоматом генерит при вставке ключевое поле, идентификатор создателя строки, дату и время создания. Соответственно в программе клиенте я эти данные не задаю и при попытке сохранения он выдает, что указанные выше поля не могут содержать NULL.
Триггер имеет следующий вид.
CREATE TRIGGER Ins_MyTable ON [dbo].[MyTable]
INSTEAD OF INSERT
AS
Insert into Transport
Select
(Select Max(MyTable_Id)+1 from MyTable), - генерится ключ
inserted.Field_A,
......
inserted.Field_Z
(select User_Id from User_List where User_Name = User), - идентификатор пользователя
GetDate(), - дата и время создания
from inserted
У меня такое ощущение что проверка сначала осуществляется на клиенте, если я прав то как можно её отключить. Доступ к БД осуществляю посредством ADO.
← →
Mike_Goblin (2002-01-16 17:02) [1]Select
(Select Max(MyTable_Id)+1 from MyTable), - генерится ключ
inserted.Field_A,
Ну ты блин даешь, а если за то время между получением MAX_ID и проведением вставки другой пользователь вставит в таблицу запись?? Для генерации уникальных значений в MSSQL identity есть
Чтобы на клиенте давала NULL вставить в поле - в св-ве поля Required:=false;
А еще лучше сделать все,что надо смотреть через View, а вставку,удаление, изменение хранимыми процедурами
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.02.11;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.004 c