访问远程 DBISAM 数据库的方法

本文介绍了两种访问远程DBISAM数据库的方法:1. 通过文件共享方式,设置数据库目录的网络地址并调整权限;2. 利用DBISAM SERVER,运行dbsrvr.exe并使用Server Administration Utility创建及管理数据库。安全性和操作步骤是选择方法时需考虑的重要因素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

访问远程 DBISAM 数据库的方法

刘国辉 2009-8-17

一、          摘要

DBISAM 是简单易用的桌面型数据库,适用于开发小型的桌面程序,大部分情况下数据库是位于本机的,但是,在某些情况下也需要访问位于其他机器的数据库,本文就是介绍访问位于其他机器上的数据库的方法。

 

二、          方法1:通过文件共享方式

DBISAM 不是单文件数据库,没有独立的数据库文件,而是每个表都有自己的数据文件和索引文件,一个目录就是一个数据库。访问 DBISAM 数据库的常用方法如下:

var

db: TDBISAMDataBase;

tbl: TDBISAMTable;

begin

// … 创建 db tbl,此处略过

db.DataBaseName := ‘test’;

db.Directory := ‘d:/abc’; // 设置要访问的数据表所在目录

tbl.DataBaseName := ‘test’; // tbl 关联到 db

end;

注:这种方法中的DataBaseName只是一个标识,用于标识db对象的,没有实际意义。

而如果我们要访问其他机器上的DBISAM数据库,只需要将 db.DataBaseName 设置为该数据库所在目录的网络地址,如

db.Directory := ‘//remotehost/abc’;

 

同时,要设置该目录为共享,并且根据需要设置相应的权限,如果仅仅是查询,则设置读权限即可,如果要删除记录或者插入记录等则需要设置写权限。

这种方法简单易行,但是因为要共享数据库目录,安全性较差。

 

三、          方法2:通过DBISAM SERVER方式

DBISAM 也提供了数据库服务器,但是,与SQL SERVER 等其他大中型数据库不同的是,该服务器并不是以服务形式运行,而是一个名为dbsrvr.exe的程序,该程序随DBISAM一起安装,位于dbisam7/server/dbsrvr目录下。首先需要运行该程序:

 

DBISAM 数据库服务器使用了两个端口,一个是数据访问端口12005,一个是数据库管理端口12006,我们访问数据库需要使用12005端口,而12006端口则是给数据库管理程序使用。

 运行dbsrvr.exe后,我们还不能访问数据库,因为没有没有数据库可访问,还要使用DBISAM的服务器管理程序Server Administration Utility创建数据库。

Server Administration Utility程序在DBISAM 的工具包DBISAM.Additional.Software.and.Utilities中提供,执行该程序,界面如下:

首先,要设置数据库服务器参数,执行菜单File->Options,弹出设置菜单:

 

 

一般设置IP地址即可,OK之后执行菜单File->Login to server,弹出服务器登录界面,输入用户名和密码(初始用户名为Admin,初始密码为DBAdmin,用户名不限大小写,密码与大小写有关),登录后即出现管理界面:

需要关注的是UsersDatabases页面,Users是设置数据库服务器的用户,即我们刚才登录时的admin用户,可以通过add来创建新用户,通过edit来修改用户密码,通过delete删除用户。

Databases页用于管理数据库:

点击Add新建一个数据库,该数据库的名字很重要,访问时需要用到,设置数据库的目录,此时就可以通过远程访问该数据库了。

远方访问代码如下:

Var

db: TDBISAMDataBase;

tbl: TDBISAMTable;

ses: TDBISAMSession;

begin

// … 创建 dbtblses,略过

ses.SessionType := stRemote; // 设置为访问远程数据库Session

ses.RemoteAddress := ‘127.0.0.1’; // 远程数据库服务器的IP地址

ses.RemotePort := 12005; // 数据访问端口

ses.RemoteUser := ‘Admin’; // 服务器用户

ses.RemotePassword := ‘DBAdmin’; // 服务器用户密码

ses.SessionName := ‘sesTest’;  // Session 的标识

ses.Active := True; // 连接数据库

 

db.DatabaseName := ‘dbTest’;

db.SessionName := ‘sesTest’;

db.RemoteDatabase := ‘mytestdb’;  // 远程数据库名

db.Connected := TRUE; // 打开数据库

 

tbl.DatabaseName := ‘dbTest’;

tbl.SessionName := ‘sesTest’;

tbl.TableName := ‘test’;

tbl.Active := True;  // 打开数据表

… // 操作数据表

end;

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值