Получение версии MS ACCESS

#sql #ms-access #version

#sql #ms-access #версия

Вопрос:

ВСЕ,

Есть ли запрос, который выдаст мне версию созданного файла mdb / accdb?

Или эта информация нигде не хранится?

Предыстория:

Я работаю над программой на C , подключаюсь к драйверу ODBC и хочу узнать версию ACCESS за этим файлом.

ТИА!!

Ответ №1:

Короткий ответ: Нет

Многие просили предоставить возможность проверить, поддерживает ли файл базы данных, скажем, BigInt или DateTime2, но в настоящее время вы остаетесь с методом проб и ошибок.

Однако, если вы не планируете изменять схему, вас должно беспокоить только то, имеет ли файл базы данных старую форму mdb (JET) или более новый (представленный 14 лет назад) формат accdb (ACE).

Комментарии:

1. Я планирую изменить его.

2. Через ODBC ваш вариант — это запрос Alter. Одинаковый синтаксис для обоих движков, поэтому это должен быть только вопрос драйвера.

3. какие оба движка? Я спрашиваю ACCESS только об этом. Или вы принимаете около accdb vs mdb . Также что это ALTER за запрос? Или вы говорите, что я должен использовать ALTER TABLE для изменения таблицы?

4. Да, как уже упоминалось. В SQL вы используете Alter ... синтаксис для изменения (изменения) схемы.

5. хорошо, понял. Невозможно получить версию ACCESS engine за пределами VB / DAO. Посмотрим на это. Спасибо.

Ответ №2:

Вы можете легко получить эту информацию, используя DAO, Database.Version свойство.

В vbscript это будет выглядеть так:

 Dim dbe
Set dbe = CreateObject("DAO.DbEngine")
Dim db
Set db = dbe.OpenDatabase("C:PathToDb.accdb")
WScript.Echo db.Version 'E.g. 14.0 for Office 2010
 

Использование COM в C намного более подробное, поэтому я оставлю это на ваше усмотрение, но подход может быть таким же.

Однако, используя только ODBC, я не уверен, как получить эту информацию.