javajohn

金色年华

sybase12.5 dsedit 找不到libtcl.dll错误处理办法

  • 环境: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居然也可以使用!太完美了。

posted on 2009-03-22 19:35 javajohn 阅读(4111) 评论(4)  编辑  收藏 所属分类: 数据库

Feedback

# re: sybase12.5 dsedit 找不到libtcl.dll错误处理办法 2009-06-18 09:31 pestd

太感谢了  回复  更多评论   

# re: sybase12.5 dsedit 找不到libtcl.dll错误处理办法 2013-07-15 11:35 幻魔

大神啊 我找了两天都没解决,今天看到你这完美KO@pestd
  回复  更多评论   

# re: sybase12.5 dsedit 找不到libtcl.dll错误处理办法 2016-02-25 15:25 咸菜

大神的帖子真有用  回复  更多评论   

# re: sybase12.5 dsedit 找不到libtcl.dll错误处理办法 2016-02-25 15:28 咸菜

@咸菜 补充解答
64位系统要覆盖“C:\Windows\SysWOW64”这个目录下的dll  回复  更多评论   



只有注册用户登录后才能发表评论。


网站导航:
 

My Links

Blog Stats

常用链接

留言簿(7)

随笔分类(36)

随笔档案(39)

classmate

good blog

企业管理网站

好友

站点收藏

搜索

最新评论

阅读排行榜

评论排行榜