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:SybaseASA9Shared
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
S hared
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%win32dbinit.exe %*
"%ASANY9%win32dbinit.exe" %*
c. asa-startsvr.bat (以Server模式启动ASA数据库)
@echo off
call "%~dp0asa-setenv.bat"
echo Starting Database...
echo %ASANY9%win32dbsrv9.exe %*
"%ASANY9%win32dbsrv9.exe" %*
d. asa-starteng.bat(以Personal DB的模式启动ASA数据库)
@echo off
call "%~dp0asa-setenv.bat"
echo Starting Database...
echo %ASANY9%win32dbeng9.exe %*
"%ASANY9%win32dbeng9.exe" %*
e. asa-stop.bat (停止数据库)
@echo off
call "%~dp0asa-setenv.bat"
echo Stopping Database...
echo %ASANY9%win32dbstop.exe %*
"%ASANY9%win32dbstop.exe" %*
我们来看一个示例:
1.创建一个新的ASA数据库文件:
D:sharedASA902>asa-init eherodemo.db
Initializing Database...
D:sharedASA902win32dbinit.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:sharedASA902>asa-start eherodemo.db
Starting Database...
D:sharedASA902win32dbsrv9.exe eherodemo.db
ransaction log: eherodemo.log
S