Как преобразовать accdb в базу данных postgres - PullRequest
3 голосов
/ 17 сентября 2009

Мне нужно использовать базу данных .accdb, и для этого ее нужно импортировать в PostgreSQL. Я считаю, что это будет простая и понятная проблема (я ожидал, что она уже решена), но простое решение ускользает от меня.

Я добавлю, что у меня нет доступа к Access (смеется), и мое решение слабо зависит от этого. Если это невозможно, я могу найти кого-нибудь с доступом и заставить его преобразовать каждую таблицу в .csv или что-то в этом роде.

Ответы [ 3 ]

3 голосов
/ 18 сентября 2009

Вам не нужно устанавливать MS Access на компьютере для чтения данных из файла Access Database Engine.

Все копии Windows начиная с Windows 2000 поставляется с Access Database Engine; однако это будет двигатель Jet 4.0, и вам понадобятся компоненты для двигателя ACE (2007). К счастью, его можно загрузить с сайта Майкрософт как 2007 Драйвер системы Office: компоненты для подключения к данным .

Любой язык программирования, который поддерживает com-объекты, оставит вас без данных, не установив MS Access. Вы даже можете использовать скрипты Windows здесь и даже не устанавливать ЛЮБОЕ программное обеспечение на ваш Windows-бокс.

Следующий код предназначен для версии Jet mdb базы данных Access, но вы можете адаптировать его для своих нужд с помощью ACEDAO:

  Set dbEng = CreateObject("DAO.DBEngine.36")
  strMdbFile = "C:\Documents and Settings\" & _
               "Albert\My Documents\Access\" & _
               "ScriptExample\MultiSelect.mdb"
  Set db = dbEng.OpenDatabase(strMdbFile)
  strQuery = "select * from contacts"
  Set rs = db.OpenRecordset(strQuery)
  rs.MoveFirst
  If rs.EOF = True Then
     Quit
  End If

  strTextOut = "C:\t5.txt"
  Set fs = Wscript.CreateObject("Scripting.FileSystemObject")
  Set ts = fs.OpenTextFile(strTextOut, 2, True)
  '2 = write, 1 = read

  Do While rs.EOF = False
     strOutText = rs("LastName")
     ts.Writeline strOutText
     rs.MoveNext
  Loop
  ts.Close
  rs.Close

Однако, действительно, если это однократный экспорт, то поиск кого-то с копией MS Access сделает это менее эффективным, но вы МОЖЕТЕ прочитать файл доступа без необходимости устанавливать ЛЮБОЕ программное обеспечение. На самом деле, как отмечалось выше, даже чистая установка Windows позволит вам использовать вышеупомянутый файл сценария Windows, который также может быть запущен без установки какого-либо программного обеспечения на окно Windows.

2 голосов
/ 18 сентября 2009

Одним из вариантов будет Excel, так как он может читать файлы данных Access.

Другим является MDB Tools - это набор библиотек с открытым исходным кодом и утилит для облегчения экспорта данных из баз данных MS Access (файлы mdb) без использования DLL-библиотек Microsoft. Таким образом, ОС не Windows может читать данные.

1 голос
/ 17 сентября 2009

Если вы можете сохранить каждую таблицу в виде CSV файлов, вы можете просто импортировать их во многие СУБД, включая PostgreSQL .

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