Правильный способ проверить, есть ли blob поле уже было извлечено при использовании poFetchBlobsOnDemand

У меня есть TClientDataSet с несколькими записями, и я хочу загрузить все записи, но загружать поле большого двоичного объекта по запросу, по одной.

Я заметил, что вызов FetchBlobs дважды приводит к двойному извлечению большого двоичного объекта, а также при проверке свойства IsNull поля всегда возвращается значение False.

Таким образом, единственное решение, которое я нашел до сих пор, - это доступ к свойству, например Value или BlobSize, и если blob не был получен возникает исключение EDBClient с сообщением «Blob не был получен», поэтому, если возникает это исключение, я вызываю FetchBlobs.

Есть ли лучший способ сделать это?

  try
    cdsIMG.BlobSize;
  except
    on E: EDBClient do
      cds.FetchBlobs;
  end;
6
задан Fabio Gomes 8 June 2011 в 18:54
поделиться