2009-07-22 3 views
0

Я пытаюсь перечислить типы данных из Microsoft Access 2000-2007 (в зависимости от версии базы данных MS Access) в combobox для программы C#. Как я могу достичь такого?Как вы получаете список типов данных MS Access?

+0

Вы хотите получить доступ к типам данных или типам данных Jet/ACE? Вероятно, поскольку вы используете C#, вам нужны только типы данных Jet/ACE, но это может быть база данных, с которой вы работаете, была создана Access и использует типы данных, специфичные для доступа (обычно это обычные типы данных Jet/ACE с расширенными атрибуты, например, поле «Гиперссылка», которое представляет собой поле memo с определенным параметром, указывающим на «Доступ», что это поле гиперссылки, а не только регулярное поле memo). –

+0

Да, я хочу использовать определенные типы данных MS Access. Если я не ошибаюсь, ACE совместим с MS Access 2000-2007? Я пытаюсь сделать мою программу способной открывать базы данных MS Access 2000-2007. Так, например, если я открою MS Access 2003, я хочу, чтобы моя программа способна использовать типы данных любых данных, специфичных для MS Access 2003. Если я открою базу данных MS Access 2007, это будет для типов данных любых данных для MS Access 2007 ... – Partial

+0

Я закрываю этот вопрос, потому что он не был достаточно полным, и я хочу знать некоторые другие вещи ... вот ссылка на новый вопрос: http://stackoverflow.com/questions/1172617/ – Partial

ответ

2

Я не думаю, что можно запросить двигатель во время выполнения, чтобы перечислить типы данных, которые он поддерживает. Например, DAO не будет раскрывать некоторые типы данных Jet 4.0, такие как NCHAR и BINARY; ADO будет отображать типы данных, которые механизм базы данных Access никогда не поддерживал; только ACEDAO выявит многозначные типы.

Я думаю, вам нужно заранее знать типы данных, которые поддерживает каждая версия движка, а затем выбрать соответствующий набор во время выполнения.

Типы данных Jet 4.0 (Access2000 до 2003 включительно) и различные синонимы можно найти here (также следует дать некоторые подсказки о том, какие типы являются новыми для Jet 4.0, на всякий случай, если вам необходимо поддерживать более ранние версии движка) ,

ACE (Access2007) добавлено вложение; также многозначные («сложные») типы для поддержки списков SharePoint: я думаю, вам нужно будет решить, будут ли многозначные типы различными типами или просто вариациями существующих типов. Есть некоторые детали в Access2007 Help.

+0

Итак, что вы говорите, я должен добавить ссылку на ACEDAO и использовать это? – Partial

+0

Могу ли я использовать ACEDAO с MS Access 2000-2003 или это только для MS Access 2007? – Partial

2

Microsoft.Office.Interop.Access.Dao.DataTypeEnum

Конечно, вам необходимо добавить ссылку, и я абсолютно ненавижу, добавив ссылку на Бюро, потому что вы привязываться к версии Office, и Я ненавижу обновление кода при каждом обновлении.

+0

Спасибо , Я посмотрю! – Partial

+1

DAO предоставит вам только типы данных pre-Access2000 плюс DECIMAL (но не значения шкалы и точности), не даст вам, например. NCHAR и BINARY из Jet 4.0 (Access2000 и далее) или многозначных типов (Access2007 и далее). – onedaywhen

+0

Нельзя использовать DAO с поздним связыванием, что означало бы, что вам не нужна ссылка? Во-вторых, если вы работаете с файлами, созданными как в Access 2007, так и с более ранними версиями, вам понадобятся проверки на соответствие DAO-версии, поскольку DAO 3.6 (Jet 4.0 или Access 2000, 2002 и 2003) был заменен Jet/ACE-специфичная версия DAO, поставляемая с Access 2007, и добавила некоторые новые типы данных (не очень полезные - в основном для совместимости с Sharepoint). –

Смежные вопросы