Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.14;
Скачать: [xml.tar.bz2];




Вниз

Запись в поток (SaveToStream) перестала работать после переноса проги на Вин2000. 


fliz   (2001-12-25 12:55) [0]

Прога нормально работает на платформах Вин 9х.
если запускать из под Дельфи, тоже работает,
а если не из под Дельфи - падает.

Перестает работать метод записи данных
из блоб-поля в TMemoryStream
привожу код


try
MS := TMemoryStream.Create;
{!!! вот здесь падает !!!}
TBLOBField(FieldByName("Data")).SaveToStream(MS);
MS.Position := 0;
try
MS.ReadBuffer(Profile, SizeOf(Profile));
except
....
end;
finally
MS.Free;
end;


как это лечится? почему не работает именно под Вин 2000?



Digitman   (2001-12-25 12:59) [1]

но ведь исключение, возникающее при выполнении метода (а исключение ли, кстати ? ты ж не сподобился описать проблему точно) о чем то говорит тебе ? так вот - о чем ? Класс исключения, код исключения, сообщение - это все важно для анализа проблемы, и это все для тебя выводится в блоке except..end, а не для пользователя.



fliz   (2001-12-25 13:00) [2]

ЗЫ
прощу прощения за малость корявое описание,
но я пытаюсь ее запустить под Вин2000 в условиях
НЕМЕРЕННОГО нехватки времени, проще говоря ГОРЮ.

разница работает/не работает из под Дельфи-я имел ввиду
запуск под Вин2000



Digitman   (2001-12-25 13:23) [3]

да ты пойми : пока ты сам не определишься, что у тебя происходит в except...end, никто никакой конкретной "пилюли" тебе не "пропишет" ! Ну не бывает просто универсальных пилюль !
Ты вот даже слово "исключение" не упомянул в вопросе - "падает", мол, и все тут ... Что, такое страшное и незнакомое это понятие - исключение ? И с чем его едят и как его предупреждают и анализируют ?



fliz   (2001-12-25 15:13) [4]

ну хорошо, хорошо. виноват-исправляюсь.
впрочем не перегинай палку, что такое
эксептион я в курсах.

EExternalException происходит.
непосредственно на выполнении строки
TBLOBField(FieldByName("Data")).SaveToStream(MS);

ну и куда посоветуешь дальше "копать"?

мне собсно непонятно почему при запуске в Вин2000 из под
Дельфи работает, а не из под Дельфи не работает.
Думаю это как-то связано с распределением памяти,
но как не пойму ...
Мне что, под Вин2000 надо как-то по другому код
писать, или какие-то еще неучтенные нюансы?
Под "простой" виндой-то прога работает нормально.




Digitman   (2001-12-25 15:23) [5]

А что, дальше некуда "копать" ?
класс EExternalException имеет св-во ExceptionRecord, дающее дополнительную информацию о причинах отказа. Ты анализировал ее ?




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.14;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.017 c
3-42394           Dim                   2001-12-10 09:20  2002.01.14  
Аналог в InterBase функции SUBSTRING MSSQL 6.5


3-42363           Китаец Ла Ме          2001-12-12 21:40  2002.01.14  
Мультиверсионность


14-42547          vasco                 2001-11-19 02:39  2002.01.14  
Выравнивание по ширине в hlp-файле...


3-42368           andey                 2001-12-11 19:49  2002.01.14  
Изменение записей таблицы исходя из другой


1-42430           Shoo                  2001-12-24 11:04  2002.01.14  
TLabeledEdit для Delphi 5