本来想实现在linux下连接ACCESS的功能,但是进展部顺利。没有成功。
起因是由于同事在window上sqlserver的数据保存到了m$ ACCESS数据库文件中。这个被市场的同学拿到之后又给转化成excell了,并且数据量很大。实在很难处理。索性想直接去取这个 .mdb 的access文件来读取里面的信息。
google了一把。需要安装mdbtoos,mdb-odbc, unixODBC,
unixODBC是个不错的东西,起码我装了之后可以用起来。 连我的mysql没有问题,只要安装一个mysql-connect-odbc类似的插件就OK了。
但是一直没有弄好连接 .mdb。命令行下使用 mdbtools却没有问题。
配置好odbc之后:
$ isql -v test
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> help
Error at Line : syntax error near exec
[08001][unixODBC]Couldn't parse SQL
[ISQL]ERROR: Could not SQLTables
$isql -v mysql
这个却工作的很正常。也不知道什么原因了。
-------->odbcinst.ini
[mdb]
Description = M$ ACCESS
Driver = /usr/lib/libmdbodbc.so
Setup =
FileUsage = 1
CPTimeout =
CPReuse =
[MySQL]
Description = Myodbc driver for MySQL
Driver = /usr/lib/libmyodbc3.so
Setup = /usr/lib/libodbcmyS.so
[MySQL ODBC 3.51 Driver]
DRIVER = /usr/lib/libmyodbc3.so
UsageCount = 1
-------->odbc.ini
[test]
Description = Microsoft Access Database of Dogs
Driver = mdb
Database = /home/test/a.mdb
Servername = localhost
UserName =
Password =
port = 5432
[MySQL]
Description = MySQL test database
Driver = MySQL
Trace = No
TraceFile =
Servername = localhost
UserName = root
Password = ******
PORT = 3306
Database = test