- 环境:windowsXP
- 数据库版本:sybase12.5(开发版)
- 客户端:clinet(pcclinet12.5)、DBArtisan 8.5.2
- 模型设计工具:power builder12.5
sybase自带的客户端有两种:一种是命令行模式的叫做sqladv.ext,另一种是界面模式的叫做Sybase Central Java Edition对应这两个版本的client凡是使用过toad的人都觉得不顺手,太不顺手了,即使是用惯了plsql的人也有这种感觉。
DBArtisan (8.5.2)是类toad的数据库访问client工具,但是在操作性上感觉还是不如toad那样强大、成熟,也许是用惯toad 的原因吧,在做sybase数据连接以前和oracle一样需要先配置一个客户端别名,sybase配置这个别名的地方是dsedit.ext这个命令,有一点需要注意的是:在add了一个server以后你还需要给这个server添加一个ip和端口,格式如:ip,port(请注意ip和port之间是一个逗号而不是冒号)。
相信现在许多人都在用pd做数据模型设计,如果要用pd连接sybase做反向工程的话,那就要通过odbc来连接了,但是不幸的是你一般安装的sybase数据库和他的client端都不会像oracle那样给你也装一个odbc进去,需要再下载一个sybase的odbc驱动。更不幸的是要从sybase上下一个odbc驱动可能和你安装的sybase数据库和客户端的版本并不一致,此时旧版的dll会干掉以前安装的新版sybase数据库的dll文件,导致dsedit不可用,连sqladv也不可用,甚至DBArtisan这样强大的工具你也不能再用了,说白了,你现在只能通过Sybase Central Java Edition添加或删除一个数据库、表,或者对数据库的参数做一些调整,比如:你的设备空间不足了,连接数、查看某个表的数据,仅此而已。想用sql吗?对不起,不能用了。网上查了许多帖子,居然是个无解的问题。那我来告诉你一个答案:
首先,我们先分析一下造成这个问题可能的原因,之前一切都正常可用,自从安装了某个工具(比如旧版的sybase odbc11.1之类的东西)以后导致点击sqladv.exe报错“找不到libtcl.dll”,我们可以假设是sybase odbc在安装以后覆盖掉了sybase原有的dll文件,那这些文件在哪里呢,在[sybase root]\OCS-12_5\dll这个目录下,这个目录下还有2个文件夹里的dll和这里的dll文件名一样,那两个文件夹一个叫debug一个叫nodebug,不用脑子都想得出来是干什么的。
原因分析清楚了,那就是因为旧版的dll文件把我们新版本的dll给覆盖了,直接拷贝[sybase root]\OCS-12_5\dll目录下的所有dll文件将他们复制到C:\WINDOWS\system32下,问题解决
这样前面安装的odbc居然也可以使用!太完美了。