Главная страница
    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.46 MB
Время: 0.002 c
6-1234378196
smail
2009-02-11 21:49
2014.11.23
как передать сообщение клиенту?


2-1384998017
MonoLife
2013-11-21 05:40
2014.11.23
ToolButton в ToolBar всегда по правому краю.


15-1397409286
Пит
2014-04-13 21:14
2014.11.23
HTML -> управление шириной линии <hr />


4-1270489835
Decoding
2010-04-05 21:50
2014.11.23
CreateMessageDialog


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





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский