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

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

Корректный выход из программы [D7, Paradox]


Zhekson ©   (2004-08-26 10:10:00) 

Выход из программы и закрытие таблиц у меня осуществлено, а как быть с Alt+F4?


Sergey13   (2004-08-26 12:41:00) [1]

2[14] data ©   (26.08.04 12:33)
1. А за много данных в датасете - по рукам. 8-)
>Маленький не проблема обновить
Типа много раз по разу - можно? 8-)

2. А зачем перенастраивать? Собственно в UpdateSQL пишется запрос на апдейт ОДНОЙзаписи, т.е. where id=:id. Фильтры/сортировки по барабану.


data   (2004-08-26 12:33:00) [2]

Sergey13 ©  
1. согласна. Но только при больших объемах данных в датасете. Маленький не проблема обновить.
2. А если текст запроса меняется (всякие фильтры, сортировки), то c UpdateSQL работать можно, или его перенастраивать нужно? Спрашиваю, потому что с ним не работала, просто интересно узнать

Лучше делать как лучше в данном случае. 8-)
точно:)


Sergey13   (2004-08-26 12:11:00) [3]

2[12] data ©   (26.08.04 11:39)
1.Но есть маленький минус. При выполнении Exec датасет не знает об этом и изменения юзер не увидит, пока не обновит этот датасет.
2.Если не брать всякие БЛОБы(не все же поля БЛОБы 8-), то настроив updateSQL получим выполнение тех же самых Exec-ов.
3.Валидность можно проверять и на бифоПост например.
4.Работа с транзакциями на несложные обновления одной таблицы (ну не каждый же раз сразу пол базы апдейтить 8-) так же не сложна.

Но самое важное 1. ИМХО.

ЗЫ: Лучше делать как лучше в данном случае. 8-)


data   (2004-08-26 11:39:00) [4]

Sergey13 ©   (26.08.04 11:11) [9]
попытаюсь:)
1.если в БД хранится изображение, то его можно редактировать только через Exec. А если оно хранится в одной таблице с другими данными, то получается неудобно
2.иногда данные, которые нужно отредактировать хранятся в разных таблицах. В таком случае проще сделать несколько Exec'ов, чем использовать таблицы или лив-Query. Тем более, что не каждый запрос может быть лив (есть ограничения по тексту запроса)
3.иногда данные нужно проверить на некую валидность перед занесением в БД, это проще сделать, при использовании Exec: взял данные с формы, проверил,при необходимости обругал или вызвал Exec, а если для занесения используется прямой Edit-Post, то гораздо сложнее обработка ИМХО.
4.Удобнее работать с транзакциями.
может чего забыла, но этого для меня достаточно.


Zhekson   (2004-08-26 11:22:00) [5]

to Anatoly Podgoretsky ©   (26.08.04 10:47) [6]

сорри...

ошибка вылетала в тех событиях, которые следуют за выгрузкой объектов...

to data ©   (26.08.04 11:08) [7], Fynjy1984 ©   (26.08.04 10:39) [5]
торможу... в OnClose всё закрывается отлично. спасибо.


Zhekson   (2004-08-26 11:15:00) [6]

to data © - насчёт транзакций - мы это ещё не проходили, но зато теперь я знаю, что когда прижмёт можно в транзакциях правду поискать...


Sergey13   (2004-08-26 11:11:00) [7]

2[7] data ©   (26.08.04 11:08)
>а еще лучше не работать с таблицами для редактирования данных, а менять данные исполняемыми запросами через ExecSql
Обоснуй, плиз.
>, используя транзакции, если это необходимо.
Если они поддерживаются 8-)


Zhekson   (2004-08-26 11:10:00) [8]

to Fynjy1984 ©   (26.08.04 10:39) [5]
Anatoly Podgoretsky ©   (26.08.04 10:47) [6]

есть кнопочка(выход). её тело:
//-------------
DataModule2.Table1.Close;
DataModule2.Table2.Close;
Close;
//-------------

тут всё работает отлично. Не побоюсь сделать вывод, что объекты всё-таки есть.


data   (2004-08-26 11:08:00) [9]

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


Anatoly Podgoretsky   (2004-08-26 10:47:00) [10]

Чтобы не получать эту ошибку надо предварительно создавать обхекты


Fynjy1984   (2004-08-26 10:39:00) [11]

А в другом месте таблицы закрываются корректно?


Zhekson   (2004-08-26 10:36:00) [12]

"Access violation at address 00000013" - вот такая вот ошибка и там и здесь.


Fynjy1984   (2004-08-26 10:32:00) [13]

2Zhekson  

в onClosequery тоже не закрываются?


Zhekson   (2004-08-26 10:28:00) [14]

не будут ли теряться данные, если перед выходом(по Alt+F4) из программы, таблицы останутся открытыми? В событиях onClose, onDestroy таблицы почему-то не закрываются...


Fynjy1984   (2004-08-26 10:15:00) [15]

2 Zhekson   (26.08.04 10:10)

В чем проблема?


Наверх

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