![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Корректный выход из программы [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)
В чем проблема?