| Архитектура BDE (статья) | Previous Home Next |
| дальнейшая информация по датам взята из документа, подзаголовок "Evolution of BDE/IDAPI Technology: 1990 - 94". |
| |
| драйверы ODBC 1.0 от Microsoft впервые появились в августе 1993 года. |
| |
| Информация из MSDN. |
| Основной интерфейс |
| Языковые функции |
| Файлы с языковыми кодировками. |
| Операции пакетного копирования данных |
| Модуль работы с Data Repository |
| Драйвер для работы с текстовым форматом |
| Драйвер трансляции вызовов к DAO |
| Драйвер трансляции вызовов к ODBC |
| Драйвер для работы с форматом Paradox |
| Драйвер для работы с форматом dBase и FoxPro |
| Ядро обработки запросов QBE |
| Ядро обработки запросов SQL |
| SQLLink-драйвер трансляции вызовов к Interbase API |
| SQLLink-драйвер трансляции вызовов к Oracle Call Level Interface |
| Другие SQLLink-драйверы |
| |
| · | первым запросом BDE хочет убедиться, что выбранная нами таблица существует. |
| · | второй запрос выбирает список полей выбранной таблицы, их названий, типов, условий проверки и т.п. |
| · | третий запрос выбирает информацию об индексах указанной таблицы. Определяется, есть ли среди них первичный ключ, и по каким полям построены индексы. |
| · | четвертый запрос почти повторяет второй, и выбирает информацию о полях - условия проверки, "вычисляемость" поля, допустимость NULL и прочее. |
| · | собственно, пятый запрос открывает таблицу, формируя запрос SELECT FIELD1, FIELD2, ... FROM TABLE ORDER BY PK_FIELD ASC. |
| · | |
| параметры SCHEMA CACHE не имеют абсолютно никакого отношения к механизму Cached Updates или к кэшированию данных. |
| |
| можно было бы отнести этот недостаток на SQL Link для IB, но вполне возможно что просто TTable не в состоянии кэшировать и обновлять данные, отсортированные по убыванию (см. дальше о кэше данных). |
| |
| разумеется, клиентская часть SQL-сервера может принимать записи от сервера "пачками". Но в любом случае получение записи инициируется только вызовом функции fetch, и по этой команде "выбирается" только одна запись. Т.е. приложение получает записи по одной независимо от того, буферизируются они на сервере/клиенте или нет. |
| |
| · | первый запрос выбирает значение поля, по которому нужно отсортировать данные. |
| · | второй запрос выбирает данные от текущей записи и "выше" - см добавку WHERE FIELD < ? ORDER BY FIELD DESC |
| · | третий запрос выбирает запись, которую нужно поместить на место текущей (выборка запомненного первым запросом значения). Кстати, этот запрос у меня почему-то выполнился аж три раза (BDE 5.1.1). Раньше он обычно выполнялся всего один раз. |
| · | четвертый запрос выбирает данные от текущей записи и ниже - см. добавку WHERE FIELD > ? ORDER BY FIELD ASC |