PostgreSQL
PostgreSQL我用得少,没什么经验可分享。EZDML for win32/win64版均自带了PostgreSQL的驱动,我测试是直接就能连。
Windows版
以win64版为例:
连接的数据源格式为:地址:端口@数据库。
导入结果:
Win32版也是一样的:
Win32自带的libpq.dll版本较旧,如果需要请自行上网获取新版。
Linux版
以CentOS6为例,EZDML没有自带Linux的PostgreSQL驱动,直接连接的话可能会报错:
因此需要大家自行安装,Linux下安装libpq应该是比较方便的,CentOS6下就是执行一条命令:
1 | yum install postgresql-devel |
安装完成:
就可以登录了:
测试导入数据库结果:
MacOS版
EZDML也没有自带MacOS版的驱动。不过不知谁什么时候装了驱动,我这虚拟机直接就连上了:
导入结果:
通过JDBC连PostgreSQL
如果你的系统环境复杂,没办法用libpq,而且你对JAVA运行环境有一定的了解,则可以考虑用JDBC连接。
EZDML有一个HTTP_JDBC连接,不过它是采用通用方式处理,所有元数据读取均以标准数据库方式处理,无法针对POSTGRESQL导入和生成个性内容,因此通过HTTP_JDBC获取元数据往往会有缺失或错误。
从V3.59版开始,EZDML的POSTGRESQL连接支持通过JDBC驱动,在连接配置窗口中增加了JDBC连接字符串的配置:
选择JDBC连接后,输入JDBC的连接信息(主要是url,可添加driver,分号分隔,内容中有分号的话用#59#代替),确定,输入用户名密码登录。
当选择JDBC连接时,除了连接驱动换成JDBC,其它跟平时是一样的。
JDBC连接的底层实现仍然是使用HTTP_JDBC,需要安装JAVA虚拟机,并将相关驱动JAR包放到EZDML/jdbc/lib目录下,运行时会自动启动HTTP_JDBC服务进行连接,并显示JAVA控制台输出窗口(如不喜欢看这个窗口,可在数据库连接设置里隐藏)。
参见《EZDML连接数据库——JDBC》。
通过ODBC连接
如果找不到合适驱动连不上数据库,可考虑用ODBC。大部分数据库都提供了ODBC的标准驱动安装程序,在ODBC数据源里配置好连接后就可以直接使用了。
EZDML本身有一个ODBC连接,但它是采用通用方式处理,无法针对PostgreSQL导入和生成个性内容,通过ODBC获取元数据往往会有缺失或错误。
从V3.58版开始,EZDML的PostgreSQL连接支持ODBC驱动,在连接配置窗口中增加了DSN或ODBC连接字符串的配置:
选择DSN后,因为已经在DSN中设置登录用户和密码,因此直接点确定连接就可以了:
当选择ODBC连接时,除了连接驱动换成ODBC,其它跟平时是一样的。
使用ODBC连接有时会遇到中文乱码问题,需要设置字符集编码,参见《EZDML连接数据库——ODBC》。
人大金仓数据库
人大金仓跟PostgreSQL有点关联,因此把它放在这里来讲。
人大金仓安装完后,我看它自带了oci/occi/dci目录,以为跟达梦一样,习惯性就想用ORACLE指定oci.dll的方式适配:
结果瞎折腾了大半天也连不上。
后来突然想起人大金仓是基于PostgreSQL开发的,于是直接用EZDML for win64自带的PostgreSQL驱动连接,结果是一次就成功了:
导入也是如丝般顺滑:
然后测试win32版,发现自带驱动版本太低:
不过不要紧,我在金仓的驱动目录中找了一个win32的libpq.dll,指定为EZDML for win32使用:
然后就轻松连上去了:
EZDML for Linux也试一下,似乎也是版本太低:
根据经验就是要升级libpq(据说把数据库的加密降级也行,我没试),在网上找了个postgresql10-libs-10.20的rpm,只有几百KB:
接下来就一路绿灯了:
接着试高大上的苹果版,EZDML for macOS,也是报错:
这个比较头大,找了半天找不到独立的libpq 10 for mac的下载,只好一咬牙下载了个287MB的PostgreSQL 10的数据库:
一顿操作猛如虎后,我终于有新版的libpq了:
接下来毫无悬念地登录、选择、导入、完成:
好了,人大金仓演示结束。说实话我感觉我更像是演示了一下高版本的PostgreSQL。
SQLite
ODBC
参见《EZDML连接数据库——ODBC》
JDBC
参见《EZDML连接数据库——JDBC》