Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Освобождение ресурса в finally


Страницы:   1 2 3 4 5 6 7 8 9 10 ... 32 33

Arinyshka ©   (2008-04-23 12:17:00) 

Не подскажете еще один момент:
Есть процедура, выглядит примерно так

procedure TSetPayFrm.BtnAddImageClick(Sender: TObject);
var  TempBitmap:TBitmap;
begin
if not(opendialog1.Execute) then  exit;
try
 TempBitmap  := TBitmap.Create;
 TempBitmap.LoadFromFile(OpenDialog1.FileName);
finally
TempBitmap.Free;
end;
end;

На освобождение  TempBitmap.Free; выдает варнинг
[Warning] uSetPaymentMain.pas(313): Variable 'TempBitmap' might not have been initialized
Не смертельно, но непонятно... почему варнинг? При изменениии условия и включении всей конструкции в один блок begin..end ситуация не менялась.


Игорь Шевченко   (2008-05-12 13:10:00) [41]

ANB   (08.05.08 16:48) [606]


> А. Тогда про это я читал. Знающие люди сказали, что оно
> того не стоит и практически никто этим не пользуется.


"Не верь, хозяин, этому констанинопольскому ходже" (с) Габровские уловки.

Ты лучше Кайта почитай, он с картинками рассказывает, как этим пользоваться, во втором томе.


> Ну надо же. И чего я дурак мучился, разбирал вьюхи на таблицы
> и обращался к ним напрямую, чтобы ускорить запрос с 2-х
> часов до 2-х секунд ?


Вот странно. Количество таблиц не изменилось, количество связок между ними тоже, а скорость взяла и в 3600 раз увеличилась.
Станиславский тут же вспоминается.

А что тебе трассировка события 10053 рассказала ? :)


Anatoly Podgoretsky   (2008-05-12 13:04:00) [42]

> Arinyshka  (12.05.2008 12:46:10)  [610]

Дурное дело не хитрое.


Arinyshka   (2008-05-12 12:46:00) [43]

Я горжусь собой... подбросить тему для такой дискуссии... :)


ANB   (2008-05-12 09:54:00) [44]


> чтобы вкрутить лампочку надо 9 милиционеров.

И чтобы заменить 9 милиционеров на одного электрика лучше (но не обязательно :) ) писать так, чтобы ошибок было меньше. И если среда умеет ловить ошибки хотя бы синтаксические и грамматические, то хорошо этим пользоваться. Все равно еще логические ошибки отслеживать.


MsGuns   (2008-05-09 03:37:00) [45]

>ANB   (08.05.08 16:51) [607]
>Дык он почти везде такой бардак. Чтобы провести комплекс нашей АБС, нужно около 6 человекомесяцев

Это таки да. Как и то, что для того, чтобы вкрутить лампочку надо 9 милиционеров.


ANB   (2008-05-08 16:51:00) [46]


> Это сугубо ваши личные проблемы и распространять последствия
> вашего бардака на парадигмы разработки - дурной признак.
>

Дык он почти везде такой бардак. Чтобы провести комплекс нашей АБС, нужно около 6 человекомесяцев.

А если при этом тестер будет наступать на ошибки из-за опечаток программиста, то еще дольше.


ANB   (2008-05-08 16:48:00) [47]


> Это Fine-grained access

А. Тогда про это я читал. Знающие люди сказали, что оно того не стоит и практически никто этим не пользуется.


> Я тебе открою страшный секрет (только не выдавай меня) -
>  вьюхи в оракл тормозов не вызывают. Неоткуда им там взяться,
>  тормозам при вьюхах.

Ну надо же. И чего я дурак мучился, разбирал вьюхи на таблицы и обращался к ним напрямую, чтобы ускорить запрос с 2-х часов до 2-х секунд ?
Открою по секрету - тормозят даже вьюхи словаря, особенно в связках.


Игорь Шевченко   (2008-05-08 13:49:00) [48]


> Очевидное решение, позволяющая с помощью одного try..finally
> защитить сразу множество ресурсов:


Разыщи портрет Оккама и повесь перед монитором, дабы он напоминал тебе - не плоди сущностей сверх необходимости.


Игорь Шевченко   (2008-05-08 13:48:00) [49]

ANB   (08.05.08 13:12) [595]


> Эт чего такое ?


Это Fine-grained access


> Знаю, что у оракла мона настроить хитро права на чтение
> таблиц. Но фактически это работает как обычная вьюха.
> Следовательно, может невовремя вызвать жуткие тормоза.


Я тебе открою страшный секрет (только не выдавай меня) - вьюхи в оракл тормозов не вызывают. Неоткуда им там взяться, тормозам при вьюхах.


> Комплексное тестирование - вообще редкость.
> А качественное комплексное тестирование - эт ваще что то
> на грани фантастики.


Это сугубо ваши личные проблемы и распространять последствия вашего бардака на парадигмы разработки - дурной признак.


Palladin   (2008-05-08 13:39:00) [50]


> Так придумал, как решить задачку, пользуясь только SQL-92
> ?
> ИМХО - программер, начав использовать Т-скл - прав.
> И к этому приходят все, кто пытался делать универсальные
> приложения под все СУБД.
> Ты даже базу так просто один к одному с сервера на сервер
> не перетащишь, т.к. не все типы данных совпадают.

слухай, ну я ж сказал, моня я потом отвечу... после праздников... я не тяну время, мне просто сейчас думать лень...


ANB   (2008-05-08 13:38:00) [51]


> Единственно - в файналли строка одна.


> хреновое решение :) кто поинтеры в List1, List2 и List3
> освобождать будет?

Мона занаследовать TList и в его деструкторе зачищать объекты в поинтерах.

Тока

> так ведь полным полно других ресурсов

рубит всю эту идею на корню.


> Palladin ©   (08.05.08 13:16) [598]

Так придумал, как решить задачку, пользуясь только SQL-92 ?
ИМХО - программер, начав использовать Т-скл - прав.
И к этому приходят все, кто пытался делать универсальные приложения под все СУБД.
Ты даже базу так просто один к одному с сервера на сервер не перетащишь, т.к. не все типы данных совпадают.


Palladin   (2008-05-08 13:37:00) [52]


> Имхо, и такой подход имеет право на существования в определенных
> случая...

) все на свете имеет право на существование... вот только на долго ли...


Loginov Dmitry   (2008-05-08 13:36:00) [53]


> понимаешь, Дим, если бы все так было просто, что сводилось
> к освобождению лишь объектов... так ведь полным полно других
> ресурсов, требующих защитить и гарантированно освободить
> в конце работы...


Это все понятно.
Зато в файналли - одна строка и отсутсвие присваиваний NIL (это преимущества, которое я увидел в данном способе). Естественно, работает только для объектов.
Имхо, и такой подход имеет право на существования в определенных случая...


Palladin   (2008-05-08 13:16:00) [54]


> Loginov Dmitry ©   (08.05.08 13:13) [596]

хреновое решение :) кто поинтеры в List1, List2 и List3 освобождать будет? :) пиши уж TStringList :)

понимаешь, Дим, если бы все так было просто, что сводилось к освобождению лишь объектов... так ведь полным полно других ресурсов, требующих защитить и гарантированно освободить в конце работы...


ANB   (2008-05-08 13:16:00) [55]


>  ObjList.Add(List2);

Вместо нилов идет эта строка. + лишний объект. Единственно - в файналли строка одна.


ANB   (2008-05-08 13:14:00) [56]


> Читается как триллер. Особенно про юзера-трансформера.
> Аффтар, пеши есчо ;)))

Милин. Ща узнаю у кореша, как его донецкий банк назывался.

У них так и сделано. + репликация в центральный офис со всей украины и уже даже россии.


Loginov Dmitry   (2008-05-08 13:13:00) [57]

Очевидное решение, позволяющая с помощью одного try..finally защитить сразу множество ресурсов:


procedure TForm1.Button1Click(Sender: TObject);
var
 ObjList: Contnrs.TObjectList;
 List1, List2, List3: TList;
begin
 ObjList := TObjectList.Create;
 try
   List1 := TList.Create;
   ObjList.Add(List1);

   List2 := TList.Create;
   ObjList.Add(List2);

   List2 := TList.Create;
   ObjList.Add(List2);

   {..................}

 finally
   ObjList.Free;
 end;
end;


По-моему - изящный способ, и по сравнению с присваиванием NIL записывается короче.


ANB   (2008-05-08 13:12:00) [58]


> FGA не пробовал ?

Эт чего такое ?
Знаю, что у оракла мона настроить хитро права на чтение таблиц. Но фактически это работает как обычная вьюха.
Следовательно, может невовремя вызвать жуткие тормоза.

> То есть, у вас тестирование приложений отсутствует как класс
> или построено по приницу - запустили, не ломается, ну и
> ладно.
> Ясно. Удачи

Комплексное тестирование - вообще редкость.
А качественное комплексное тестирование - эт ваще что то на грани фантастики.


MsGuns   (2008-05-08 13:11:00) [59]

>ANB   (08.05.08 11:48) [591]
>Пишется хранимка, в которой в зависимости от прав юзера ему подсовывается >нужный запрос. Сам юзер ни текста запроса не видит, ни откуда вообще данные >берутся.
>Хранимки складываются в один пакет и на него даются гранты общей роли.
>В самих хранимках в самом начале проверяется, имеется ли у юзера "тонкое" право на >выполнение именно этой хранимки.
>Как преимущество - хрен юзер, зайдя девелопером, сможет сделать больше, чем ему >позволяет клиентское приложение.

Читается как триллер. Особенно про юзера-трансформера.
Аффтар, пеши есчо ;)))


Palladin   (2008-05-08 12:30:00) [60]


> ANB   (08.05.08 11:48) [591]

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

ок? :)


Страницы:   1 2 3 4 5 6 7 8 9 10 ... 32 33

Наверх

Титульная страница Поиск, карта сайта Написать письмо