Реферат: Работа с объектами большого объема в MS SQL и ADO

table.column – таблица и колонка;

text_ptr – указатель;

with log – игнорируется для SQL Server 2000;

Data – данные. Их размер не может превышать 120 Кб.

WRITETEXT полностью перезаписывает содержимое колонки. Для операции обновления также актуальна проблема действительности указателя. Но здесь уже недостаточно просто установить коллективную блокировку на обновляемую строку, так как это может привести к взаимоблокировке, например, если две транзакции одновременно получают коллективную блокировку и пытаются сконвертировать ее в монопольную. Для предотвращения подобной ситуации необходимо наложить блокировку обновления. В следующем примере производится обновление бинарных данных в первой строке:

declare @p binary(16)

begin tran

select @p = textptr(img)

from blob_test (updlock)

where id = 1

if textvalid('blob_test.img',@p) = 1

writetext blob_test.img @p 0x4034

commit

Более подробно механизм блокировок в MS SQL Server и понятие уровней изоляции транзакций рассмотрены в предыдущем номере журнала.

UPDATETEXT

Эта более мощная функция обновления данных, чем WRITETEXT. Она также позволяет копировать данные из другой колонки (правда, нельзя указать размер копируемых в этом случае данных). Вот ее синтаксис:

UPDATETEXT { table_name.dest_column_name dest_text_ptr }

{ NULL | insert_offset }

{ NULL | delete_length }

[ WITH LOG ]

[ inserted_data

| { table_name.src_column_name src_text_ptr } ]

table_name.dest_column_name – таблица и колонка.

dest_text_ptr – указатель на обновляемую область.

insert_offset – смещение в байтах, по которому будут изменяться данные. Если указывается NULL, данные будут добавлены к текущим данным.

delete_length – количество удаляемых байт. Если указывается NULL, данные будут удалены от смещения до конца. Для вставки данных необходимо указать значение 0.

with log – не имеет значения на SQL Server 2000.

inserted_data – вставляемые данные.

table_name.src_column_name – таблица и колонка, откуда данные вставляются.

К-во Просмотров: 665
Бесплатно скачать Реферат: Работа с объектами большого объема в MS SQL и ADO