...из исходного кода VCL я обнаружил, что при назначении значения DB-полю,
имеющему строковый тип, значение "проходит" через функцию ANSItoNative, что
может привести к изменению (порче) ASCII-данных. Вот так...
Сделанные в таблице изменения непосредственно на диск не записываются до тех
пор, пока таблица не будет закрыта. Потеря питания или сбой в системе может
привести к потере данных и прочим неприятностям. Чтобы избежать этого,
существует два прямых вызова Database Engine, дающих один и тот же результат.
Эти функции - DbiUseIdleTime и DbiSaveChanges.
Существует обратный вызов (callback) BDE, который вы можете использовать для
получения уведомлений об изменении таблиц Paradox. Тем не менее от вас все же
потребуется использование таймера. Функция обратного вызова инициируется при
вызове функций, осуществляющих доступ к таблице. Ниже приведен код,
демонстрирующий технику работы с описанным выше обратным вызовом:
Фильтрация TTable и TQuery происходит с учетом живого или мертвого кэша. Для
TTable при наложении фильтра конструируется соответствующий SQL-запрос, а TQuery
производит фильтрацию буквально при помощи Locate (т.е. сначала выбираются все
записи в кэш, а затем идет фильтрация уже в кэше).
Этот материал основан на изучении документации и справочных материалов по BDE и
на собственном опыте. На самом деле информация из этого документа частично
появлялась и раньше как в FAQ Borland так и в материалах других авторов (в
частности Epsylon Technologies). Однако до сих пор большое количество
разработчиков используют BDE. Но в последнее время все больше людей работают с
SQL-серверами, и более популярными становятся компоненты прямого доступа -
IBObjects/FreeIBComponents/IBExpress, Direct Oracle Access и другие. Кроме того,
BDE не будет поддерживать Interbase 6.0 (диалект 3), да и вообще похоже,
прекратит свое существование. В Delphi 6 наряду со старым BDE и в Kylix (Delphi
и C++Builder для Linux) будет использоваться другая библиотека - dbExpress.
Поэтому, чтобы поставить жирную точку (или крест, как хотите) на BDE, я и решил
написать этот документ.
Использование BDE32-приложений в Peer-To-Peer сети
Сетью Peer-To-Peer (сеть, где каждая машина действует как клиент и как
сервер) может быть одна из следующих сетей, включая другие сетевые платформы,
совместимые с ними: