Советы по Delphi. Версия 1.4.3 от 1.1.2001
Шрифт:
Корректное закрытие базы данных приложением Delphi
Delphi 1
Очень интересный и полезный вопрос!! Я сам так с ним до конца и не разобрался! Но я попробую
Windows посылает сообщение WM_QUERYENDSESSION главным окнам всех запущенных приложений, при этом приложения должно сообщить свою готовность к завершению работы.
Если при этом хотя бы одно из приложений ответит отрицательно, Windows прерывает процесс завершения работы.
Delphi перехватывает это сообщение, и, в свою очередь, вызывает метод TForm.CloseQuery, (в главной форме, естественно), который генерирует событие OnCloseQuery, в обработчике которого можно указать на неготовность завершения приложения и отмены завершения работы Windows.
Если я правильно понимаю, если ваше приложение «не мешает» Windows завершить свою работу, Windows нормально НЕ завершает работу приложения, поскольку для этого нет необходимости, не нужно освобождать память, ресурсы и пр. Так, если это утверждение верно (это легко можно проверить, но я слишком ленив сейчас), то событие OnCloseQuery – ваш единственный шанс сохранения данных на диске. Я не думаю что эта логика слишком плоха, просто это одна из тех причуд Windows, которую нужно знать и пользоваться ею. Что может произойти в описанном выше сценарии: редактируемая в настоящий момент запись не будет отправлена (Post) в базу данных, но та же самая вещь может случиться и при нормальном завершении приложения.
При выходе из windows, вы вызываете WM_CLOSE api (или что-то типа этого) для каждого работающего в настоящий момент приложения. Программа закрывается точно таким же образом, как если бы вы щелкнули на кнопке закрытия или вызвали close из главной формы. Поэтому вам не нужно предпринимать никаких дополнительный действий, связанных с завершением работы с таблицами.
Изменение свойств базы данных во время выполнения приложения
Delphi 1
Свойство DatabaseName тесно связано с:
• каталогом, где расположены ваши табличные файлы.
• BDE-псевдоним вашей базы данных.
• DatabaseName вашего компонента TDatabase, если вы имеете его.
Выводы?
Как мне задать выражение по умолчанию для объекта TField?
Delphi 3
Это будет работать, если вы уже установили атрибуты поля и ассоциировали его с полем вашей таблицы. Если вы установили значение в Инспекторе Объектов, т.е. задали строку, не думайте, что это сработает во время выполнения приложения. Если вы попытаетесь во время прогона установить свойство TField.DefaultExpression примерно так:
то это
В Инспекторе Объектов вам нужно просто поместить значение 'MyValue' (используя одинарные кавычки).
После того, как я использовал правый щелчок мыши для создания функции-провайдера, как мне снова выполнить команду контекстного меню `Export from Table`?
Nomadic отвечает:
Как только Вы экспортировали интерфейс провайдера, эта команда контекстного меню перестает быть видимой. Чтобы снова включить ее, Вы должны удалить ассоциированное свойство в Редакторе Библиотеки Типов, и затем нажать кнопку обновления информации в Редакторе Библиотеки Типов (Type Library Editor's Refresh button). Вы могли бы также удалить точку вхождения «Get_XXX» в исходном тексте RemoteDataModule.
Как работать с новыми, своими интерфейсами в RemoteDataModule?
Nomadic отвечает:
В редакторе библиотеки типов (typelib) Вы можете добавить свои интерфейсы и сделать их членами оригинального coClass. После этого Вы можете обращаться к этим интерфейсам, используя следующий синтаксис:
Необходимо заметить, что это будет работать только, если Вы используете DCOM как транспорт.
Database Desktop показывает содержимое таблиц шрифтом без русских букв
Nomadic отвечает:
A: Для DBD 5.0 в файл c:\windows\pdoxwin.ini вставить в секцию
Для DBD 7.0 нужно исправить реестр: ключ
Если такой ключ не существует, его следует создать. Впрочем, для просмотра таблиц все равно можно порекомендовать rx Database Explorer – у него это получается очень хорошо.
Ребят, я давно делаю под HТ (под 95 не знаю, не пробовал) такую вещь:
BDE
InterBase
FAQ по InterBase
Если вы имеете дополнения, исправления или пожелания, шлите мне письма по адресу [email protected] .
Стеллар. Трибут
2. Стеллар
Фантастика:
боевая фантастика
рпг
рейтинг книги
Его огонь горит для меня. Том 2
2. Мир Карастели
Фантастика:
юмористическая фантастика
рейтинг книги
На границе империй. Том 9. Часть 4
17. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
рейтинг книги
Наследник
1. Рюрикова кровь
Фантастика:
научная фантастика
попаданцы
альтернативная история
рейтинг книги
