# 开始使用
# 后台配置
下载最新版本
SatRDA_V2021XXXX
QQ群:345559891
delphi开发群:374683171
解压后,进入server目录,双击satserver.exe运行
看到这个图表示运行成功。
打开浏览器,输入 http://127.0.0.1:5555/admin (opens new window) 进入后台管理界面
账号和密码都输入
satrda
登录到后台管理。
点击左侧 基础设置
基础设置用于设置运行相关配置,可以使用默认不变。其中带*号为必填项,每个列内容清除后可以看到相关说明
配置完成后点提交会进行配置保存。
提示: 需要启动satserver使用配置生效
- Https的证书配置(可选)
服务以Https启动,在浏览器访问时,证书需要和域名匹配,浏览器会验证证书是否合法。生成证书,可以通过购买的云服务商那里下载nignx或者apache的证书(如何得到证书可以百度搜索)。配置证书,只需要把下载key,crt文件改名为server.crt和server.key,替换server\config\certs下的相关文件
# 数据驱动
数据驱动支持两层直接转三层,无需修改业务代码,只需要更改连接字符串就能解决外网易断线和速度慢问题。特别适合原有程序的改造。能够适配目前所有主流的开发语言。
# 数据驱动架构
应用服务可以配置多个数据库,客户端程序通过SatRDA连接到指定数据库
# 配置数据库连接
- 在后台管理点击左侧连接管理,进入界面
说明: 这里定义了3个数据库连接mycon1、mycon2、mycon3 前两个通过指定驱动程序名和连接串连接,后一个在32位odbc管理器配置dsn进行连接。建议熟悉连接串的优先使用连接串连接(如sql server native client 10.0),其它连接串不清楚,或者使用连接串方式连接不上,可以在odbc管理器中建立dsn,测试连接成功,再在配置文件中指定该dsn,如mycon3配置。
- mycon1连接sql server中名为test的数据库
- mycon2连接oracle数据库ORCL
- mycon3连接名称为mysql1的dsn
- 点击添加连接按钮
# 参数说明
参数 | 说明 |
---|---|
名称 | 用于客户端与数据库连接的名字,对应客户端连接字符串的DB_NAME。 |
停用 | 是否停用,停用后客户端无法通过这个连接进行连接。 |
驱动类型 | DSN对应odbc管理器中配置的DSN名称 |
Driver | 对应odbc管理器中安装的数据库驱动名称,如:sql server native client 10.0 Driver是机器上注册了的odbc驱动程序,可以在机器上通过odbc32位驱动管理器查看(64位系统请在运行窗口中运行“C:\Windows\SysWOW64\odbcad32.exe”来启动)。 每台机器上注册的驱动可能不同,sql server建议使用Native驱动,速度会快很多。 如:sql server native client 10.0 Sql Server Native Client 11.0 如果没有相应的驱动,请在satrda群文件或网上搜索下载。 |
uid | 数据库用户名 |
pwd | 数据库密码 |
连接码 | 默认为空,设置后客户端连接服务端时需要该连接码才能连接, 类似密码,因为客户端连接服务端数据库不需要输入数据库连接名和密码 |
附加参数 | 数据库连接串,实际为各驱动的连接字符串,可以参考数据库odbc驱动连接串的相关说明。 satrda定义了一些特别的连接参数,如lock=RU表示允许读取未提交数据。 quoted=off表示sqlserver允许用双引号表示字符串,相当于连接后执行set quoted_identifier off |
说明 各个参数的含义也可以参考输入框中的提示。建议通过修改示例已经配置信息参数进行配置。如sqlserver修改mycon1,oracle修改mycon2
# 示例准备
如果需要运行PB,VB,Delphi等语言的数据驱动示例,可以使用以下语句建表(以下语句基于SQLServer, ORACEL请自行修改,然后相应的账套测试。
CREATE TABLE test1(
id int primary key,
name varchar(20),
image image,
dt datetime,
num int,
price numeric(10, 2) ,
des nvarchar(max)
);
CREATE procedure sp_rda_test6
@in1 int,
@in2 varchar(200),
@in3 decimal(10,2),
@in4 datetime,
@out1 int output,
@out2 varchar(255) output,
@out3 decimal(10,2) output,
@out4 datetime output
as
set @out1 = @in1
set @out2 = @in2
set @out3 = @in3
set @out4 = @in4
select @out1,@out2,@out3,@out4;
# 驱动注册
各语言示例会自动注册驱动,可以查看相关语言的示例。注册驱动是通过调用satrda.dll提供的api进行注册的。在程序打开时调用SATODBC_Install 该函数会自动判断驱动是否注册,如果未注册则进行注册。
# 客户端连接
SATRDA支持几乎所有语言的客户端连接,只要客户端能够支持ODBC方式连接数据库,都可以使用SATRDA驱动进行连接。
连接参数
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
Server | yes | String | SATRDA服务端的地址,可以是域名也可以是ip,带端口号如Server=127.0.0.1:5555 |
DB_NAME | yes | String | 服务端配置的连接名,如DB_NAME=mycon1 |
HTTPS | no | Int | 是否使用https连接,1为启用https,默认为0,如HTTPS=0 |
SN | no | String | 自定义的信息,用来区分客户端或需要在列表中呈现的额外信息。在后台在线列表界面和通过在线列表接口可以得到信息。如SN=myclient |
Code | no | String | 连接码,需要和后台管理连接设置中设置的一致 |
DesParam | no | Int | 参数是否使用绑定,默认是0,在PB中需要设置为0,其它语言设置为1 |
Service | no | String | satrda连接到satlb的服务名,当客户端连接到satlb时,需要填写该值,具体可见satlb说明 |
TrimSpaces | No | Int | 是否去除空格,某些数据库当字段类型为char时,会以空格补位,设置TrimSpaces=1会去除相应的空格 |
Prop | No | Int | 扩展属性,默认值为0,在服务端插件中使用时SATRDA驱动连接时设置为1,可优化内存占用 |
# PB使用
PB老程序迁移只需要修改连接字符串,其它代码不用进行修改。
ls_server = "127.0.0.1:5555"
ls_db = "mycon1"
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='driver=Smart ODBC Driver;Server=" + ls_server +&
";DB_NAME=" + ls_db + ";HTTPS=0;TrimSpaces=1;Service=satrda',PBMaxBlobSize='0'"
connect using sqlca;
说明 其中ls_server指定服务器IP地址或者域名:端口号
ls_db为在dbconfig中配置名称,不是数据库名
HTTPS如果为0使用http,为1使用Https,需要和服务器端设置相匹配。虽然服务端设置为Http这里设置https=1也可以连接,但是客户端交互更多,效率更低。
# Delphi使用
# ado连接
server := '127.0.0.1:5555';
db := 'mycon1';
ADOConnection1.ConnectionString := 'Provider=MSDASQL.1;Password=sql;User ID=dbuser;Extended Properties="driver=Smart ODBC Driver;server=' + server + ';DB_NAME=' + db + ';HTTPS=0;PB=0;DesParam=1;"';
# fireDAC连接
ADPhysODBCDriverLink1.ODBCAdvanced := 'SERVER=127.0.0.1:5555;DB_NAME=mycon1;HTTPS=0;PB=0;DesParam=1;';
ADPhysODBCDriverLink1.ODBCDriver := 'Smart ODBC Driver';
con1.Open();
# BDE连接
bdedb.AliasName := 'satrda';
bdedb.DatabaseName := 'mycon1';
bdedb.LoginPrompt := False;
bdedb.Params.Clear;
bdedb.Params.Values['User Name'] := '127.0.0.1:5555';
bdedb.Params.Values['Password'] := 'mycon1';
bdedb.Connected := True;
说明 由于BDE不能设置连接串,但可以设置一些参数,为了避免在odbc中去配置,所以通过bdedb.Params.Values['User Name']设置为服务地址,bdedb.Params.Values['Password']设置为连接名的方式进行连接
# unidac连接
UniConnection1.ProviderName := 'ODBC'; UniConnection1.SpecificOptions.Add('ODBC.DSNType=ntConnectionString';
UniConnection1.Server := 'driver=Smart ODBC Driver;server=' + server + ';DB_NAME=' + db + ';HTTPS=0;PB=0;DesParam=1;'
# VB使用
Dim Server As String
Dim db As String
Server = "127.0.0.1:5555"
db = "mssql"
ConnectionString = "driver=Smart ODBC Driver;server=" & Server & ";DB_NAME=" & db & ";Uid=1;Pwd=;HTTPS=0;PB=0;DesParam=1;"
adocon.CursorLocation = adUseClient '注意需要设置为adUseClient
adocon.Open ConnectionString
# .Net使用
String ls_server = "127.0.0.1:5555";
String ls_db = "mycon1";
String connectstr = "driver=Smart ODBC Driver;server=" + ls_server + ";DB_NAME=" + ls_db + ";Uid=1;Pwd=;HTTPS=0;PB=0;DesParam=1;";
sqlcon = new OdbcConnection(connectstr);
sqlcon.Open();
# 在线列表
显示通过数据驱动连接到服务器的客户端列表
- 在线列表中可以看到连接事务是否提交,语句是否正在执行等信息。如果事务一直未提交,或者语句一直在执行,可能是出现了问题。
- 通过点击放大镜小图标,可以查看最近执行的语句。
- 点击删除小图标或者批量断开按钮可以断开指定连接。