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 ситуация не менялась.


ANB   (2008-05-16 15:23:00) [1]


> Palladin ©   (16.05.08 12:14) [651]

У тебя аппсервер знает. Через скрипты.

Мне больше нравится механизм, что знать должен только сам сервер СУБД.
А клиент только должен вызывать хранимки. Причем это тоже должно управляться сервером.

Короче, моя идея отличается от твоей в том, что бизнес слой и метаданные я хочу разместить прямо на сервере СУБД, а ты разместил это все на аппсервере.


Palladin   (2008-05-16 12:14:00) [2]


> ANB   (15.05.08 16:52) [650]

но ведь кто-то же должен... кто же...


ANB   (2008-05-15 16:52:00) [3]


> И правильно делает, что не знает.

Дык я разве против ?
Я считаю, что клиент и без аппсервера ничего про структуру базы знать не должен.


Игорь Шевченко   (2008-05-15 11:40:00) [4]

ANB   (15.05.08 11:31) [648


> Ну дык у палладина "тонкий" клиент и про базу и ее структуру
> вообще ничего не знает.


И правильно делает, что не знает. Ты, когда на сайт заходишь, не интересуешься же, на чем его движок написан, оно тебе главное, чтобы html верно формировался и отображался. У клиентов аппсервера примерно то же самое.


ANB   (2008-05-15 11:31:00) [5]


> Было бы замечательно, если бы ты сразу указывал, что ты
> имеешь в виду

Ну дык у палладина "тонкий" клиент и про базу и ее структуру вообще ничего не знает.
Кстати, хорошая идея. Я тоже собираю материал, чтобы занятся реализацией. Только камней подводных много.


Игорь Шевченко   (2008-05-14 15:19:00) [6]

ANB   (14.05.08 15:07) [646]

Про Аппсервер я тоже написал.

"В контексте AppServer-а, в зависимости от СУБД и может возникнуть нужда обрабатывать "записи" поодиночке, а может и не возникнуть, если, опять же, сущности могут безболезненно путешествовать между СУБД и сервером приложений."


> Я не имел ввиду под словом "приложение" клиента. Я имел
> ввиду сам аппсервер. Или он уже не приложение ?


Было бы замечательно, если бы ты сразу указывал, что ты имеешь в виду


ANB   (2008-05-14 15:07:00) [7]


> В конктесте приложения (того, которое общается с AppServer-
> ом)

Я не имел ввиду под словом "приложение" клиента. Я имел ввиду сам аппсервер. Или он уже не приложение ?


Игорь Шевченко   (2008-05-14 14:46:00) [8]

ANB   (14.05.08 13:33) [640]


> Я просил изобразить, как в контексте твоего приложения,
> ты получаешь ID записи после/перед вставкой, чтобы потом
> использовать его дальше (например, для вставки дочерней
> записи).


В конктесте приложения (того, которое общается с AppServer-ом) нет нужды знать про какие-то ID, какие-то дочерние записи и т.п.

В контексте приложения есть нужда знать про сущности предметной области целиком (или про html-странички)

В контексте AppServer-а, в зависимости от СУБД и может возникнуть нужда обрабатывать "записи" поодиночке, а может и не возникнуть, если, опять же, сущности могут безболезненно путешествовать между СУБД и сервером приложений.


Игорь Шевченко   (2008-05-14 14:43:00) [9]

ANB   (14.05.08 13:13) [638]


> каким сервером ? СУБД или приложений.


СУБД очевидно, так как понятие ID записи имеет смысл только при общении с базой данных, нес па ?


Palladin   (2008-05-14 13:52:00) [10]


> ANB   (14.05.08 13:50) [642]

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


ANB   (2008-05-14 13:50:00) [11]


> в случае неопределенности с СУБД никто не будет в зравом
> уме использовать какие либо конкретные возможности какой
> либо конкретной СУБД...

В случае неопределенности с СУБД никто в здравом умене возьмется разрабатывать приложение, т.к. этот вопрос должен быть решен еще на стадии планирования. Т.к. даже архитектура приложения может иметь из-за этого различия. Да и личность архитектора от этого зависит.


Palladin   (2008-05-14 13:40:00) [12]


> А вот зачем использовать костыли при наличии нормальных
> серверов с генераторами ?

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

нужно, станут использовать конкретные специфики конкретных серверов, это не запрещается, если заказчик не предполагает никуда уходить с mssql или с oracla...

в случае неопределенности с СУБД никто не будет в зравом уме использовать какие либо конкретные возможности какой либо конкретной СУБД...


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


> обождите, ты мне задачу давал с чем? именно в этом был подвох
> то, в PK поле обладающим св-вом identity/autoincrement,
> а иначе задача твоя изюминкой никакой не обладает и никаких
> нюансов нет...
>
> ты дал условия, я к этим условиям приспособил PS... эти
> нюансы в структуре БД, в принципе допустимы, в контексте
> аппсервера, но не рекомендуемы...

Я просил изобразить, как в контексте твоего приложения, ты получаешь ID записи после/перед вставкой, чтобы потом использовать его дальше (например, для вставки дочерней записи).
В случае использования автоинкремента эта задача с использованием только SQL-92 не решается. Во всяком случае, корректно.
Однако, выясняется, что генерацией ключей занимается не СУБД, а аппсервер.
Гы. Ну, когда я писал на клиппере, у меня тоже ИД генерились на клиенте, но там просто не было другого способа.
А вот зачем использовать костыли при наличии нормальных серверов с генераторами ?


Palladin   (2008-05-14 13:19:00) [14]


> ANB   (14.05.08 13:13) [638]

обождите, ты мне задачу давал с чем? именно в этом был подвох то, в PK поле обладающим св-вом identity/autoincrement, а иначе задача твоя изюминкой никакой не обладает и никаких нюансов нет...

ты дал условия, я к этим условиям приспособил PS... эти нюансы в структуре БД, в принципе допустимы, в контексте аппсервера, но не рекомендуемы...


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


> Промеж клиентом и сервером, скорее всего.

каким сервером ? СУБД или приложений.

> Я не припоминаю, где эта "проблема" ставила его "в тупик"

А ответа так и не было. А тот, что был - был с использованием T-SQL.
А сейчас выясняется, что все ключи генерятся на аппсервере.


MsGuns   (2008-05-14 12:20:00) [16]

>ANB   (14.05.08 09:51) [630]
> >Самая простая проблема - получить ID только что сгенеренной
>> записи ставит тебя в тупик.
>> Где это, что-то не припоминаю

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

Я не припоминаю, где эта "проблема" ставила его "в тупик"


Игорь Шевченко   (2008-05-14 12:19:00) [17]

ANB   (14.05.08 11:33) [632]


> Куда передается ?


Промеж клиентом и сервером, скорее всего.


Palladin   (2008-05-14 12:08:00) [18]

и не гуид, обыкновенный int, без свойств identity/autoincrement, он не СУБД генерируется...


ANB   (2008-05-14 12:01:00) [19]


> PK поле в бд - не счетчик...

Гуид что ли ?


Palladin   (2008-05-14 11:38:00) [20]


> ANB

если ты задался вопросом, как же я получаю значение счетчика в рамках SQL-92, то расскажу тебе страшную тайну, PK поле в бд - не счетчик...


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

Наверх

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