Запрос многозначных полей Access 2007 с использованием ODBC - PullRequest
1 голос
/ 06 августа 2009

У меня есть база данных Access 2007, которая использует тип данных «Вложение» (новый в Access 2007) для одного из своих полей. Это магическое «многозначное» поле, которое может содержать несколько вложений.

Мне бы хотелось, чтобы можно было легко просматривать содержимое этого поля для всех строк в базе данных, используя один запрос ODBC. В идеале каждая строка исходной таблицы должна быть ровно одной строкой, и я хотел бы, чтобы все вложения возвращались как одна ячейка базы данных. В идеальном мире можно было бы повторно вставить этот набор вложений в другую таблицу, используя один запрос INSERT INTO.

Я думаю, что это может быть непростой задачей, поэтому, если мне придется, я согласен на:

  • SQL-запрос, который сообщает мне количество вложений в данном поле вложений.

или худший случай:

  • Запрос SQL, который сообщает мне, являются ли вложения в данной строке пустыми или нет.

Кажется, я не могу найти в сети хороших документов о многозначных полях. Возможно, они слишком новы.

Мысли

(П.С. Не говорите мне, что многозначные поля являются злом. Я уже знаю. Я не тот, кто создал базу данных.)

Ответы [ 2 ]

3 голосов
/ 06 августа 2009

Если вы можете использовать ADO, то подключитесь к источнику данных без , используя OLEDB:Support Complex Data=True в строке подключения, и запросите столбец: вы должны получить столбец типа adLongVarWChar (то есть MEMO) где значение - это имена файлов, разделенные точками с запятой. Поэтому получение списка файлов будет просто включать простой анализ.

Возможно получить вложения с помощью ADO, но я еще не видел, как это делается. Использование OLEDB:Support Complex Data=True означает, что вы получите столбец типа adIDispatch, то есть объект. Что это за объект, я не знаю (я надеялся, что это будет ADODB.Recordset, но не пойдет).

1 голос
/ 06 августа 2009

См. http://www.access -freak.com / tutorials.html # Tutorial07 для получения некоторой информации, хотя у него нет хорошего скриншота или SQL-запроса. Его веб-сайт не самый лучший форматированный и не читаемый.

Предполагается, что вы выполняете запрос из Access 2007. Если вы хотите запустить его через ODBC, см. http://groups.google.ca/group/microsoft.public.data.odbc/browse_thread/thread/d0ee29cc5e54e0fb

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...