EZDML 数据建模

超轻量级的免费数据建模工具

0%

EZDML连接数据库——ODBC

ODBC

ODBC主要是在Windows下了,Linux和MacOS理论上也能用ODBC,但比较复杂难用,我也没有试过。

以EZDML for win64为例,选择ODBC后,数据源可以有几种格式:

  • 用户DSN名称
  • 系统DSN名称
  • 文件DSN名
  • ODBC驱动连接描述符

ODBC连接数据源

下面我们举例说明。

DSN配置

以DSN为例,可直接点击数据源输入框右边的“配置”按钮,弹出DSN选择:

DSN列表

这里列出了所有已经配置好的DSN。如果我们需要添加/修改DSN,可点击左下角的“配置”,弹出系统ODBC数据源设置界面:

ODBC设置

点添加:

添加DSN

这里我们选择一个演示mdb文件,即老版Access自带的罗斯文商贸示例:

演示MDB

确定保存DSN:

保存DSN

选择新添加的DSN:

选择DSN

连接DSN

连接成功,列表所有表:

连接成功

执行导入,会提示有些命令不支持,因为有些ODBC驱动并没有完全实例所有接口,图示是不支持获取主键:

不支持获取主键

反正,最终导入了,不过主外键丢失了,这估计是因为我本机没装Access,没有合适的MDB驱动:

导入结果

演示不太成功,勉强及格吧。Win32没什么区别,不细述了。

连接描述符

接下来我们用ODBC连接描述符再试一次,在连接窗口上,数据源输入以下内容:

1
Driver=Microsoft Access Driver (*.mdb, *.accdb);Dbq=D:\temp\Northwind.mdb;

连接描述符

然后其它就跟DSN一样了:

连接成功

中文乱码和事务问题

ODBC有时会遇到中文乱码,或者导入数据类型为问号的情况,这时需要作以下处理:

  1. 检查数据库编码字符集
  2. 在ODBC数据源配置界面设置正确的字符集(并非所有数据库驱动都提供了这个配置)
  3. 在EZDML的选项中配置ODBC连接的字符集

总之就是保证数据库、驱动和EZDML三者的字符集统一,过程中可能要来回多试几遍。

ODBC连接在指定非unicode字符集编码后,其大文本数据类型(NCLOB、NTEXT)将默认采用单字节编码类型(Memo);如解码有问题,可在字符集后加[WMemo]强制使用双字节(unicode)编码。

上述ODBC字符集设置并未列出所有字符集,可以手输CP(如CP1253,注意不支持别名,GBK和UTF8是特例),主要是指定CODEPAGE。

另外,有些驱动对事务的支持不好,打开数据时会报事务或读取顺序的错误,这时可在设置中关闭事务(COMMIT后启动新事务)。

ODBC就先介绍这么多。Linux和MacOS的ODBC几乎没什么用,就不试了。

JDBC

参见《EZDML连接数据库——JDBC

HTTP

参见《EZDML连接数据库——HTTP连接扩展

ORACLE

参见《EZDML连接数据库——ORACLE和达梦

SQL Server

参见《EZDML连接数据库——SQL Server

MySQL

参见《EZDML连接数据库——MySQL

PostgreSQL

参见《EZDML连接数据库——PostgreSQL和人大金仓

SQLite

参见《EZDML连接数据库——SQLite