⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 使用wisql32同时访问sql server 和sybase数据库.txt

📁 大量Delphi开发资料
💻 TXT
字号:
使用WISQL32同时访问SQLSERVER和SYBASE数据库


----对于一个系统管理员,要同时管理一个网络中的多个数据库服务器或者是互连网中分属不同网络的多个数据库服务器,首先要解决同时连通访问这些数据库服务器的问题。一般来说,各种数据库必须使用自己相应的客户端工具进行连接,而不能连接另外的数据库。微软公司的SQLSERVER6.0数据库是从SYBASE4.2数据库发展而来,其自身的客户端工具是不能连接SYBASE10或SYBASE11数据库的。另外SYBASE11客户端所带工具WISQLl32可以分段执行一个SQL文件中的任一选择部分,这样给管理数据库服务器,调试存储过程、触发器带来了很大的方便。这个功能在微软公司的SQLSERVER6.0数据库客户端所带工具ISQL_W所不具备的。


----在工作实践中,笔者发现只要对SYBASE11客户端进行适当的配置,在WISQLl32的菜单中断开一个已连通的数据库服务器后,连接网络中另一个的数据库服务器,不用重新启动,就可以达到既访问微软的SQLSERVER6.0数据库也能同时访问SYBASE11(或者10)数据库的目的。既给同时管理多个数据库服务器(尤其是SQLSERVER6.0数据库)带来了很大的方便,也使得在SQLSERVER6.0和SYBASE11之间移植存储过程、触发器提供了可能性。本文就笔者自己的实现方法提供给大家参考。


一.系统环境



----为了简化起见,假设只在一个网络环境中,只有一台网络服务器,在这台网络服务器上同时安装了MSSQLSERVER6.0、SYBASE11(或者SYBASE10,建议不要同时安装SYBASE11和10两个版本)。不考虑单一网络多台服务器或互联网络多台网络服务器环境。但是无论什么环境,应用同样的方法都可以实现WISQLl32对分布在一台或多台网络服务器上数据库服务器的访问。


----1.网络服务器:WINDOWSNT3.51或4.0网络操作系统,内存64MB以上,奔腾133以上,网络协议为TCP/IP,主域控制器名RMYH,网络服务器的计算机名DBSERVER。


----2.在DBSERVER网络服务器上同时安装的MSSQLSERVER6.0数据库服务器名为DBSERVER(与网络服务器同名),SYBASE11数据库服务器包含SYBASE11(SQL服务器)、SYBASE11-BS(BACKUP服务器)、SYBASE11-MS(MONITOR服务器)、SYBASE11-HS(HISTORY服务器)四个数据库服务器(SYBASE10数据库服务器只包含SYABSE10,SYBASE10-BS、SYBASE10-MS三个数据库服务器)。


----3.客户机:中文WINDOWS95,SYABSEFORWINDOWS95客户端工具


二.配置SYABSEFORWINDOWS95客户端工具



----SQLEDIT是SYBASE与平台无关的程序,用来配置客户连接,SQLEDIT用于编辑SYBASE根目录下INI子目录中名为SQL.INI的文件,也可以人工地编辑SQL.INI文件,但是借助SQLEDIT的图形工具要容易一些,并且可以把错误推给SYBASE。SQLEDIT的使用方法请参考有关SYBASE的说明书。本文主要讨论在SQL.INI如何选择参数来使WISQL同时访问MSSQLSERVER和SYBASE11数据库服务器。


----WINDOWSNT可以选择NetBEUI、IPX/SPX、TCP/IP三种网络协议来组建网络,SYBASE11(或者SYBASE10)数据库服务器安装时,会根据网络协议来生成NET-LIBRARY驱动程序,三种网络协议都能生成名为NLMSNMP(命名管道)的NET-LIBRARY驱动程序,其中对于TCP/IP网络协议,还多生成一个名为NLWNSCK(软插口)的NET-LIBRARY驱动程序,所以笔者选择使用TCP/IP构成的WINDOWSNT网络作为分析的环境。


----使用SQLEDIT或编辑软件配置好的SQL.INI文件内容如下(SQL.INI文件在c:\sybase\ini目录中):


[MSSQL6.0]

$BASE$00=NLMSNMP

\\dbserver\pipe\sql\query

$BASE$01=NLWNSCK

dbserver

1433

query=$BASE$00;$BASE$01;

$BASE$02=NLMSNMP

\\dbserver\pipe\sql\query

$BASE$03=NLWNSCK

dbserver

1433

master=$BASE$02;$BASE$03;


[SYBASE11]

$BASE$00=NLWNSCK

dbserver

5000

$BASE$01=NLMSNMP

\\dbserver\pipe\sybase\query

master=$BASE$00;$BASE$01;

$BASE$02=NLWNSCK

dbserver

5000

$BASE$03=NLMSNMP

\\dbserver\pipe\sybase\query

query=$BASE$02;$BASE$03;


[SYBASE11_BS]

$BASE$00=NLWNSCK

dbserver

5001

$BASE$01=NLMSNMP

\\dbserver\pipe\sybase\backup

query=$BASE$00;$BASE$01;

$BASE$02=NLWNSCK

dbserver

5001

$BASE$03=NLMSNMP

\\dbserver\pipe\sybase\backup

master=$BASE$02;$BASE$03;


[SYBASE11_MS]

$BASE$00=NLWNSCK

dbserver

5002

$BASE$01=NLMSNMP

\\dbserver\pipe\sybase\monitor

master=$BASE$00;$BASE$01;

$BASE$02=NLWNSCK

dbserver

5002

$BASE$03=NLMSNMP

\\dbserver\pipe\sybase\monitor

query=$BASE$02;$BASE$03;


[SYBASE11_HS]

$BASE$00=NLWNSCK

dbserver

5003

$BASE$01=NLMSNMP

\\dbserver\pipe\sybase\hist

master=$BASE$00;$BASE$01;

$BASE$02=NLWNSCK

dbserver

5003

$BASE$03=NLMSNMP

\\dbserver\pipe\sybase\hist

query=$BASE$02;$BASE$03;


[SYBASE10]

$BASE$00=NLMSNMP

\\dbserver\pipe\sql10\query

$BASE$01=NLWNSCK

dbserver

5000

master=$BASE$00;$BASE$01

$BASE$02=NLMSNMP

\\dbserver\pipe\sql10\query

$BASE$03=NLWNSCK

dbserver

5000

query=$BASE$02;$BASE$03


[SYBASE10_BS]

$BASE$00=NLMSNMP

\\dbserver\pipe\sql10\backup

$BASE$01=NLWNSCK

dbserver

5001

query=$BASE$00;$BASE$01;

$BASE$02=NLMSNMP

\\dbserver\pipe\sql10\backup

$BASE$03=NLWNSCK

dbserver

5001

master=$BASE$02;$BASE$03;


[SYBASE10_MS]

$BASE$00=NLMSNMP

\\dbserver\pipe\sql10\monitor

$BASE$01=NLWNSCK

dbserver

5002

master=$BASE$00;$BASE$01;

$BASE$02=NLMSNMP

\\dbserver\pipe\sql10\monitor

$BASE$03=NLWNSCK

dbserver

5002

query=$BASE$02;$BASE$03;

----从以上sql.ini文件内容可以看出:


----①使用TCP/IP软插口的格式为


----NLWNSCK

网络服务器名称

软插口地址


----②使用命名管道的格式为


----NLMSNMP

\\网络服务器名称\pipe\数据库类型\数据库服务器简称


----注意:网络服务器名称是指网络服务器本身的计算机名称。如果在互联网络具有多台网络服务器环境中,网络服务器名称应该包含域名,这样就可以访问不同网络中的数据库服务器。在单一网络中可以省略域名,如果单一网络中各个数据库服务器安装在不同的机器上,应注意将网络服务器名称改成相应的计算机名称。


----③软插口地址、数据库类型、数据库服务器简称等参数的变化见下表1


----数据库服务器名称简称数据库类型软插口地址


MSSQL6.0SQLQuerySql1433

SYBASE11SQLQuerySybase5000

SYBASE11_BSBackupSybase5001

SYBASE11_MSMonitorSybase5002

SYBASE11_HSHistSybase5003

SYBASE10SQLQuerySql105000

SYBASE10BSBackupSql105001

SYBASE10_MSMonitorSql105002

----表1.SQL.INI文件中参数变化表


三.连通测试及分析



----连通测试使用SYBPING,连通成功会出现提示:


----①使用命名管道:


connectiontoserver联接通道wassucessful

loadednetlibrarydriver‘NLMSNMPNamedpipesdriver驱动程序名

②使用软插口:

connectiontoserver联接通道wassucessful

loadednetlibrarydriver‘NLWNSCK.DLLdriver驱动程序名

连通不成功时出现提示:

①使用命名管道:

connectiontoserver联接通道wasfailed

loadednetlibrarydriver‘NLMSNMPNamedpipesdriver驱动程序名

②使用软插口

connectiontoserver联接通道wasfailed

loadednetlibrarydriver‘NLWNSCK.DLLdriver驱动程序名

----使用SYPING,选择相应的数据库服务器,提示中可能出现的参数见表2:


数据库服务器名称联接通道驱动程序

MSSQL6.0SQL\pipe\sql\queryNLMSNMP.DLL

Dbserver

1433NLWNSCK.DLL

SYBASE11SQL\pipe\sybase\queryNLMSNMP.DLL

Dbserver

5000NLWNSCK.DLL

SYBASE11_BS\pipe\sybase\backupNLMSNMP.DLL

Dbserver

5001NLWNSCK.DLL

SYBASE11_MS\pipe\sybase\monitorNLMSNMP.DLL

Dbserver

5002NLWNSCK.DLL

SYBASE11_HS\pipe\sybase\histNLMSNMP.DLL

Dbserver

5003NLWNSCK.DLL

SYBASE10SQL\pipe\sql10\queryNLMSNMP.DLL

Dbserver

5000NLWNSCK.DLL

SYBASE10BS\pipe\sql10\backupNLMSNMP.DLL

Dbserver

5001NLWNSCK.DLL

SYBASE10_MS\pipe\sql10\monitorNLMSNMP.DLL

Dbserver

5002NLWNSCK.DLL

----表2.提示中可能出现的联接通道和驱动程序一览表


----注意:驱动程序名应该是包含有路径的全名。表格2中省略了路径“c:\sybase\dll\”。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -