Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.11.23;
Скачать: CL | DM;

Вниз

Invalid Pointer operation   Найти похожие ветки 

 
вова   (2013-11-24 20:21) [0]

 vBlob := ClientDataSet3.CreateBlobStream
   (ClientDataSet3.FieldByName("massSample"), bmRead);
 SetLength(BufX, vBlob.Size div SizeOf(word));

 try
   vBlob.Seek(0, soFromBeginning); // sереход в начало потока BLOB
   vBlob.ReadBuffer(BufX[0], vBlob.Size);
   if vBlob.Size = 0 then
   begin
     vBlob.free;
     exit;
   end;
 finally
   vBlob.free;
 end;


вот код, но если vBlob.Size = 0, то на слове exit; он вылетает с ошибкой Invalid Pointer operation. и я не понял. Ну да, блоб пустой, но я же его создавал, значит нужно и освободить, чего ему не нравится и как правильно?


 
RWolf ©   (2013-11-24 20:39) [1]

vBlob.free может выполниться два раза.


 
вова   (2013-11-24 21:15) [2]

т.е. если даже делаешь exit, то он все равно заходит в finally??


 
RWolf ©   (2013-11-24 21:58) [3]

да.


 
Юрий Зотов ©   (2013-11-24 23:50) [4]

> вова
if vBlob.Size = 0 then

Наверное, эту проверку лучше делать сразу после создания vBlob?

vBlob := ClientDataSet3.CreateBlobStream(...);
try
 if vBlob.Size <> 0 then
 begin
   ...
 end  
finally
 vBlob.free
end;


 
Юрий Зотов ©   (2013-11-25 00:19) [5]

> вова

И есть подозрение, что при такой установке длины массива весь поток в него не влезет. Да и надо ли вообще копировать поток в массив?


 
Anatoly Podgoretsky ©   (2013-11-25 13:55) [6]


begin
   vBlob.free;
   exit;
end;

А смысл в этот какой?
Убрать, начиная с    if vBlob.Size = 0 then



Страницы: 1 вся ветка

Текущий архив: 2014.11.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.007 c
6-1273881792
Zoom
2010-05-15 04:03
2014.11.23
IdTCPClient Indy10.2.3


15-1395400552
Дмитрий СС
2014-03-21 15:15
2014.11.23
Подключение двигателя по CanOpen(Cia 402)


2-1384856662
Вася
2013-11-19 14:24
2014.11.23
как быстро записывать побайтно в файл?


15-1397421007
Юрий
2014-04-14 00:30
2014.11.23
С днем рождения ! 14 апреля 2014 понедельник


15-1397565396
Cobalt
2014-04-15 16:36
2014.11.23
Кто придумывает такие интерфейсы?