Иллюстрированный самоучитель по Delphi 7 для профессионалов

Работа с данными типа BLOB. Представление данных в формате XML.

Если набор данных сервера содержит большие поля (например, изображения), передача данных по медленному каналу займет очень много времени, что, несомненно, снизит эффективность приложения. Простейшее решение проблемы – передача клиенту данных типа BLOB только в том случае, когда это ему действительно необходимо – т. е. исключительно по его запросу.

В компоненте TCHentDataSet процессом передачи полей типа BLOB можно управлять, используя свойство:

property FetchOnDemand: Boolean;

По умолчанию оно равно значению True и клиентский набор данных "выкачивает" данные BLOB по мере необходимости автоматически. Это означает, что приложение будет останавливаться и заново получать данные при любом просмотре данных, прокрутке и т. д. Если свойство имеет значение False, для получения данных клиент должен явно вызвать метод:

procedure FetchBlobs;

Но, кроме этого, в свойстве options компонента-провайдера TDataSetProvider обязательно должно быть установлено значение:

poFetchBlobsOnDemand: = True;

Представление данных в формате XML

Набор данных клиента легко можно представить в формате XML. Для этого достаточно использовать свойство:

property XMLData: OleVariant;

…которое возвращает данные, содержащиеся в буфере Data (см. выше) в бинарном виде, в формате XML.

Например, клиентский набор данных можно сохранить в файле формата XML:

if SaveDialog.Execute then
with TFileStream.Create(SaveDialog.FileName, fmCreate) do
try
Write(Pointer(ClientDataSet.XMLData)^, Length(ClientDataSet.XMLData));
finally
Free;
end;
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.