Восемь лет спустя
kv75
дневник заведен 05-10-2003
постоянные читатели [82]
закладки:
цитатник:
дневник:
местожительство:
Москва, Россия
интересы [13]
шахматы, грибы, Пратчетт, Иваси, Morrowind, Guild Wars
[1] 08-05-2008 07:37
Альпы

[Print]
Элизабет
Среда, 4 Мая 2005 г.
21:22 О глюках и Дельфи
Была у меня программа на Дельфи, работающая с БД. Работала себе эта программа корректно и горя не знала. Но понадобилось мне по не зависящим от меня причинам оформить её в виде веб-приложения для IIS.

Хотел было я оставить всё как есть, обойдясь минимальными изменениями, сделал WebModule, всё как положено. Добился, чтобы она подхватывала ini-файл, положив его для этого в директорию Windows... А она берёт и выдаёт ошибку типа "Access Violation". Тут я вспомнил, что уже сталкивался с этим когда-то – проблема в том, что веб-приложения почему-то не любят, когда много модулей.

Попробовал переместить всё из WebModule в DataModule. Ситуация не меняется. Проблема в том, что из некоторых классов я должен обращаться к компонентам, работающим с БД. А есть ощущение, что там примерно те же ограничения, что и при многопоточности. В общем, вместо нормального кода вида

MonthList := TMonthList.Create;

приходится писать

S := TStringList.Create;
try
DBGetMonths(S);
MonthList := TMonthList.Create(S);
finally
S.Free;
end;

Но самое весёлое в другом! В процедуре DM1.DBGetMonths я не могу писать

DM1.queMain.Next;

а могу только

queMain.Next;

Раньше я думал, что такие вещи должны отрабатываться компилятором как абсолютно идентичные, ан нет.

В общем, завтра продолжу конверсию.
07:50 Сон
Сегодня отоспался. Лёг не позже половины одиннадцатого, встал в половине восьмого. Итого целых девять часов!

Вот теперь можно и делами заняться на свежую голову.
Закрыть