使用isql连接Sybase ASE数据库的常见错误及处理方式
使用isql连接Sybase ASE数据库
Sybase ASE客户端工具中有一个比较实用的命令行工具isql。利用isql可以对ASE数据库服务器进行几乎所有的管理维护工作。
下面用isql工具连接到RUSKYPC数据库服务器上。客户端使用字符集cp936登录。使用登录用户名sa。
C:\Users\Administrator>isql -Usa -SRUSKYPC -Jcp936
Password:
1>
如果返回结果为:1>,则表示成功连接到了Sybase ASE数据库服务器:RUSKYPC。
否则,如果返回:
C:\Users\Administrator>isql -Usa -SRUSKYPC -Jcp936
Password:
Msg 4002, Level 14, State 1:
Server 'RUSKYPC':
Login failed.
CT-LIBRARY error:
ct_connect(): protocol specific layer: external error: The attempt to connect to the server failed.
则表示登录密码错误。
如果返回:
C:\Users\Administrator>isql -Usa -SRUSKYPC1
Password:
CT-LIBRARY error:
ct_connect(): directory service layer: internal directory control layer error: Requested server name not found.
C:\Users\Administrator>
则表示isql命令行参数中指定的服务器名称不存在,请指定在dsedit中存在的服务器名称。
如果返回:
C:\Users\Administrator>isql -Usa -SRUSKYPC
Password:
CT-LIBRARY error:
ct_connect(): network packet layer: internal net library error: Net-Lib protocol driver call to connect two endpoints failed
则说明网络不通或者目的Sybase ASE数据库服务器没有启动或者ASE服务器监听端口不对。
此时,需要用dsedit工具确认一下能否ping通Sybase ASE服务器。
在执行isql命令连接数据库的时候,报密码错误和服务名称不存在这两个错误的情况下,响应很快。也就是说:在isql命令行后敲入回车后很快就给你提示服务名不存在或密码错误。
但是在报因服务没有启动导致的错误时,要等一段时间才有结果。因为isql需要等待ASE服务器的响应。实际上:连接Sybase ASE数据库的时候isql将依次尝试sql.ini文件中相应服务名下面的所有监听信息。如果所有的监听信息都连接失败后,才给出无法连接的提示信息。