Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2014.11.23;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.002 c
2-1384811925
Леонид
2013-11-19 01:58
2014.11.23
Как сделать файл "только для чтения"


2-1384711271
Delphi_Newbie
2013-11-17 22:01
2014.11.23
Работа с накопителями


2-1378879113
Леван
2013-09-11 09:58
2014.11.23
TDBCtrlGrid - как создавать динамически?


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


11-1255389025
Валера
2009-10-13 03:10
2014.11.23
Размер файла строчкой в KOL.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский