|
Команда DELETE
Объект CommandBuilder создает сложную команду DELETE, которая прежде чем
удалить строку, проверяет, не изменилась ли она с момента ее последнего изменения
(извлечения из базы данных). В рассматриваемом примере я использую для этой цели
поле SQL Server Timestamp (большинство баз данных имеют что-то подобное этому
полю). Поле Timestamp предназначено для обновления метки времени создания/обновления строки при каждом ее (строки) изменении. Наличие этого поля позволяет нам гарантировать отсутствие изменений строки с момента ее извлечения из
базы данных. Поскольку мы используем поле Timestamp, а не проводим проверку
значений столбцов строки, команда DELETE будет принимать только два параметра
II Создание команды DELETE,
string delQry
delQry = @"DELETE FROM CUSTOMER
WHERE CustoitierlD = gCustomerlD AND
Stamp - @Stamp";
SqlCommand delCmd = conn.CreateCommand();
delCmd.CommandText = delQry;
// Определение переменной для упрощения
// доступа к коллекции параметров.
SqlParameterCollection delParams = delCmd.Parameters;
// Определение параметров.
delParams.Add("^CustomerID", SqlDbType.Uniqueldentifier, 0,
"CustomerlD");
delParams.Add("@Stamp", SqlDbType.TiK.estamp, 0, "Stamp") ;
delParams["@Stamp"].SourceVersion = DataRowVersion.Original
// Установка значения свойства DeleteCommand
// объекта DataAdapter.
dataAdapter.DeleteCommand = delCmd;
|
Обратите внимание на то, что свойство SourceVersion параметра stamp устанав-
ливается равным DataRowVersion.Original (первоначальная версия строки). Это
означает, что даже если кто-то изменит значение поля Stamp, сравнение будет все
равно происходить с использованием первоначального значения данного поля.
Предыдущая стр.   
Оглавление   
Следующая стр.
Средняя оценка:     (1 - 1 голосов) Для оценки необходимо зарегистрироваться
Только зарегистрировавшиеся пользователи могут оставлять комментарии
|
|