Нужен порт SyBase для доступа - PullRequest
0 голосов
/ 09 апреля 2009

У меня есть база данных SyBase, и мне было поручено экспортировать ее в MS Access. Каков наилучший способ сделать это?

(Примечание: это половина вопроса «Я сам на него отвечу, когда выясню») и половина вопроса «Если кто-то знает из рук в руки», так что не ходите на исследования, если это не ваше идея веселья)

1 Ответ

3 голосов
/ 10 апреля 2009

Считайте, что это не экспорт из SyBase, а импорт в Access (Jet). Предполагая, что у вас есть драйвер ODBC для SyBase, который может использовать Access / Jet, все довольно просто:

  1. В панели управления | Инструменты администратора | Источники данных, установите DSN, который указывает на вашу базу данных SyBase.

  2. В Access создайте новый пустой MDB.

  3. В меню ФАЙЛ выберите ПОЛУЧИТЬ ВНЕШНИЕ ДАННЫЕ.

  4. Выберите ИМПОРТ.

  5. В раскрывающемся списке ФАЙЛЫ ТИПА в нижней части диалогового окна выберите Базы данных ODBC.

  6. Выберите DSN.

  7. Должен появиться список таблиц в вашей базе данных SyBase. Выберите те, которые вы хотите импортировать, и нажмите OK.

Таблицы должны быть импортированы, если все идет как ожидалось. Он будет включать в себя как структуру таблицы, так и все данные. Он не будет включать в себя такие вещи, как триггеры (которые Jet не поддерживает), правила ссылочной целостности, хранимые процедуры и так далее. Я не знаю, можете ли вы импортировать представления - Access / Jet может рассматривать представление как таблицу, а не как SQL, потому что это, безусловно, так же, как он обрабатывает их через ODBC (вы можете ссылаться на представление так же, как вы можете ссылаться на стол). Возможно, вы сможете вырезать и вставлять SQL ваших представлений SyBase непосредственно в запрос на сохранение Access, но Access / Jet имеет свой собственный диалект SQL.

Возможно, вам будет легче, если вы настроите новую базу данных на использование того, что в интерфейсе Access называет «SQL Server Compatible Syntax (ANSI 92)». Учитывая, что SQL Server является ответвлением от старых версий SyBase, это может сделать SQL более совместимым. Чтобы установить это, в Access, перейдите в TOOLS | ВАРИАНТЫ | РАСШИРЕННЫЙ и посмотрите в правом нижнем углу, где выбор должен быть самоочевидным. Это не дает полностью совместимого SQL, но использует подстановочные знаки% / _ и позволяет () для производных таблиц (вместо ужасающего []. Как псевдоним синтаксиса Jet SQL). Это также может повлиять на некоторые синтаксисы соединения, но я не уверен в этом.

Если у вас есть проблемы, отправьте сообщение, и мы постараемся помочь. У меня нет SyBase для тестирования, и я просто использовал мою локальную установку MySQL для импорта через ODBC, поэтому может случиться так, что у вас все будет не так, как надо.

...