#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
vsmdb
. Также что это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, я не уверен, как получить эту информацию.