概述:单位某软件是使用 PowerBuild 开发的,后台数据库引擎是使用的 Sybase SQL AnyWhere 5.5 版本。缺省安装只能在单机使用。通过本文介绍的方法,可以让该软件的客户端软件( Djpc.exe )和后台的数据库引擎分别运行于不同的计算机上,通过网络来传递数据。这样数据库引擎就可以为多台计算机提供服务。
关键:进行恰当的 ODBC 设定并配合一些命令行程序来分别启动数据库引擎和客户端。
必要条件:无论是运行数据库引擎计算机、运行该软件客户端或者其它需要使用数据库引擎的计算机,都必须先安装 Sybase SQL AnyWhere 5.5 版本。
(注:数据库引擎可以和该软件或者其它要使用该引擎的应用程序位于同一台计算机上)
需要用到的 Sybase SQLAnywhere 的组件(程序):
1.Dbsrv50.exe 这是 Sybase SQL Anywhere 的数据库引擎;
2.DbClient.exe 这是 Sybase SQL Anywhere 的客户端程序,用来连接到数据库引擎;
这些程序位于 Sybase 安装文件夹的 SQL Anywhere\Win32 文件夹下。
需要用到的操作系统组件:
ODBC Administrator (位于控制面版的管理工具文件夹下)
重要提示: Sybase SQL Anywhere 的各项设置中,包括数据源名称,数据库名称等,都是大小写敏感的。如果碰到命令正确但无法连接的情况时,请注意以下这些名称的大小写。
一、 设置并运行数据库引擎
在需要运行数据库引擎的计算机上,打开 ODBC Administrator 面版,转换到系统 DSN
选择添加,驱动程序类型选择“ Sybase SQL Anywhere ”
点击“完成”后,会自动出现 Sybase SQL Anywhere ODBC 的配置窗口:
数据源名称设定为 DJPC ,用户名和密码分别是 dba 和 sql ,指定服务器名称和数据库名称为 DJPC ,然后选择数据库文件,最后,点击 Option :
注意将“ Start Command ”从“ dbEng50.exe ”修改为“ dbSrv50.exe ”(前者是单机数据库引擎,后者才是我们要的网络数据库引擎),然后在参数中写上“ -x NetBios ”(意思是指定数据库引擎仅使用 NetBios 命令来宣告服务器。经过测试,无法使用 TCPIP ,老是会说服务器名称已经存在,不知何故),最后点击 OK , ODBC 配置部分即告完成。
理论上,这样配置了 Sybase SQL Anywhere 的数据库引擎后,当有数据库请求时,该引擎应该能够自动启动,但大多数情况下需要手工预先启动该引擎才行: 在 cmd 下运行:
其中,参数“ -c 40M ”指定引擎使用 40 兆的内存作为缓冲区(可根据需要进行调整,缓冲越大,性能越好。如果不指定该参数,那么缺省的缓冲区只有 2 兆,性能非常低)。
以下是数据库引擎启动后的画面:
二、 设置客户端连接
客户端的 ODBC 设置仍是在 ODBC Administrator 中完成的,步骤和设置数据库引擎类似,仅是配置的参数和所使用的 Sybase SQL Anywhere 的组件不同:
(注意大小写)
再看选项:
设置完成。
当客户端有对该 ODBC 的请求时,系统会自动运行 DbClient 来连接数据库引擎。
iLittleFAT
二○○四年十一月二十三日