Q.Как отримати інформацію з системних таблиць MS Access?
Q.Как дізнатися існує таблиця (запит, уявлення) в базі MS Access?
Наведемо приклад з використанням таблиці MSysObject бази MS Access:
Підключаючись до бази даних MS Access
(ADO, ODBC, BDE) може знадобитися інформація, яка зберігається
системної таблиці MSysObject вашої бази даних. Наприклад, Вам потрібно знати чи є якась таблиця (table), запит (query) або подання (view) в вашій базі. У базі MS Access пишемо запит
SELECT Count (*) FROM msysobjects
WHERE msysobjects.Type = 5 AND msysobjects.Name = MyView
уявлення MyView існує, то запит поверне одне поле, в якому буде стояти одиниця, в іншому випадку отримаємо поле c нулем.
Якщо, дотримуючись синтаксис мови SQL,
запит в середовищі програмування Delphi / BCB, то буде
'Jet OLEDB: Create System Database = true;' +
'Jet OLEDB: System database =' + pathSysDB;
У цьому рядку:
pathDB - шлях до вашої базі,
pathSysDB -
до файлу робочої групи.
замовчуванням будуть використовуватися системний файл (system.mdw), який розташовується C: \ Documents and Settings \ user \ Application Data \ Microsoft \ Access. Якщо на вашому комп'ютері кілька користувачів, будуть виникати проблеми з правами використання даного файлу.
Щоб створити свій файл робочої групи потрібно запустити MS Access-> Сервіс> захист-> Адміністратор робочих груп-> Створити ... і в стоці підключення вказати шлях pathSysDB до створеного системного файлу.
Після підключення файлу робочої групи можна звертатися із запитами до системної таблиці MSysObject безпосередньо з програмування Delphi / BCB.
Наведемо значення,
може приймати Type:
Type Пояснення
1 таблиця
6 приєднана таблиця
5 запит / уявлення
8 відносини, зв'язки (Relationships)
-32768 форма
-32764 звіт
-32766 макрос
-32761 модуль
Ця тема