У меня есть TClientDataSet с несколькими записями, и я хочу загрузить все записи, но загружать поле большого двоичного объекта по запросу, по одной.
Я заметил, что вызов FetchBlobs дважды приводит к двойному извлечению большого двоичного объекта, а также при проверке свойства IsNull поля всегда возвращается значение False.
Таким образом, единственное решение, которое я нашел до сих пор, - это доступ к свойству, например Value или BlobSize, и если blob не был получен возникает исключение EDBClient с сообщением «Blob не был получен», поэтому, если возникает это исключение, я вызываю FetchBlobs.
Есть ли лучший способ сделать это?
try
cdsIMG.BlobSize;
except
on E: EDBClient do
cds.FetchBlobs;
end;