Sybase除了大型商用关系数据库ASE以外,还有非常有名的嵌入式数据库,称为Adaptive Server Anywhere,到了版本10,就改称为Sql Anywhere。自从Sybase收购mobile365以后,它也越来越受到更多的关注了。

当你安装完ASA以后,你会发现这个软件包居然有很大,ASA9大约有170M左右,ASA10的windows版本可以达到240M左右。

 

实际上,我们经常能用到的东西仅需要其中几个目录就可以,将这些目录提取出来,压缩以后,就4M左右。本文介绍的内容仅供学习者自己探索,如果商用,请尊重版权。

1. 必要的环境变量

ASA9涉及到的环境变量主要有两个,

set ASANY9=d:\SybaseASA9

set ASANYSH9=d:\SybaseASA9\Shared

ASA10涉及到的环境变量主要也是两个,

set SQLANY10=D:\SybaseASA10

set SQLANYSH10=D:\SybaseASA10

注意变量名称的变化。所谓share目录主要用于存放jconnect, sybcentral等jdbc驱动、sybcentral GUI客户端工具等

 

2.量体裁衣

原始的目录结构可能是如下的样子:

ce

charsets

docs

drivers

h

java

MobiLink

Palm

readme.txt

Samples

scripts

Shared

snmp

support

temp

ultralite

win32

 

这里有很多都是不需要的。经过处理,我可以只留下win32和scripts子目录就可以让ASA工作。而shared目录下边的jdbc驱动完全是独立的,你完全可以把它抽到别的地方。

 

在做了这样的工作以后,现下需要写一个批处理脚本用于启动ASA数据库。

a. asa-setenv.bat (用于设置环境变量)

@echo off

set ASANY9=D:\SybaseASA9

if not "%ASANY9%" == "" set PATH=%ASANY9%\win32;%PATH%

 

b. asa-init.bat (这个显然用于建立ASA的数据库)

@echo off

call "%~dp0asa-setenv.bat"

echo Initializing Database...

echo %ASANY9%\win32\dbinit.exe %*

"%ASANY9%\win32\dbinit.exe" %*

 

c. asa-startsvr.bat (以Server模式启动ASA数据库)

@echo off

call "%~dp0asa-setenv.bat"

echo Starting Database...

echo %ASANY9%\win32\dbsrv9.exe %*

"%ASANY9%\win32\dbsrv9.exe" %*

 

d. asa-starteng.bat(以Personal DB的模式启动ASA数据库)

@echo off

call "%~dp0asa-setenv.bat"

echo Starting Database...

echo %ASANY9%\win32\dbeng9.exe %*

"%ASANY9%\win32\dbeng9.exe" %*

 

e. asa-stop.bat (停止数据库)

@echo off

call "%~dp0asa-setenv.bat"

echo Stopping Database...

echo %ASANY9%\win32\dbstop.exe %*

"%ASANY9%\win32\dbstop.exe" %*

 

我们来看一个示例:

1.创建一个新的ASA数据库文件:

D:\shared\ASA902>asa-init eherodemo.db

Initializing Database...

D:\shared\ASA902\win32\dbinit.exe eherodemo.db

Adaptive Server Anywhere Initialization Utility Version 9.0.2.3302

Creating system tables

Collation sequence: 936ZHO

Creating system views

Setting permissions on system tables and views

Setting option values

Initializing UltraLite deployment option

Database "eherodemo.db" created successfully

 

2.以Server模式启动eherodemo.db

D:\shared\ASA902>asa-start eherodemo.db

Starting Database...

D:\shared\ASA902\win32\dbsrv9.exe eherodemo.db

ransaction log: eherodemo.log

S