如何把数据库和管理系统做到只读媒体或移动媒体上

本文介绍了一种将数据库转移到只读或移动媒体上的方法,适用于过期数据的存档及免安装演示程序的制作。主要步骤包括使用Access进行数据迁移、设置Delphi的ADOConnection组件以实现特定权限的连接,并通过代码确保程序能够在不安装Access的情况下运行。

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

如何把数据库和管理系统做到只读媒体或移动媒体上
一、应用场景:
1>将过期数据转移,并将清除掉,但又必须能随时查询以前数据
2>制作便于发放免安装的演示程序
二、制作步骤:
1>将数据导到access中,将access设置密码
2>用delphi的adoconnection组件连接access文件
2.1 用户名称:admin,空白密码打勾
2.2 将访问权限中的[read],[Share Deny Read],[Share Deny Write]勾上;
2.3 将Jet OLEDB:DataBase Password的值设为access的密码
2.4 选择[连接]页的[测试连接],通过OK,确定
2.5 复制Use Connection string中的内容
3>将adoconntion的连接字符串去掉,将IsolationLevel=ilBrowse,KeepConntion=false,LoginPrompt=false
4>在datamodule的创建事件中加入以下代码

  1. var
  2. mypath,sqlstr:string;
  3. begin
  4. mypath:=Extractfiledir(application.ExeName);//取得应用程序所在路径
  5. sqlstr:='Provider=Microsoft.Jet.OLEDB.4.0;UserID=Admin;DataSource=%s/filename.mdb;';
  6. sqlstr:=format(sqlstr,[mypath]);//将数据文件放在程序同级目录下
  7. sqlstr:=sqlstr+'Mode=read|ShareDenyRead|ShareDenyWrite;JetOLEDB:DatabasePassword=xxxxx;JetOLEDB:EngineType=5;JetOLEDB:DatabaseLockingMode=0';
  8. cn.ConnectionString:=sqlstr;
  9. cn.Connected:=true;//联接数据库
  10. end;

5>其它的数据表打开就不说了,以前的都是关键问题
6>程序制作好后,可以刻录到光盘或复制到U盘即可
三、特点
运行程序的电脑无需安装access,方便;缺点:access的数据量不能太大,我用的数据只有主表4万多条,从表25万多条,感觉读取速度不快

附:
Mode常数
常数 含义
adModeUnknown 未指定数据源的连接许可权(默认值)
adModeRead 连接是只读的
adModeReadWrite 连接是可读写的
adModeShareDenyNone 不拒绝其他用户的读写访问(Jet OLE DB Provider的默认值)
adModeShareDenyRead 拒绝其他用户打开到数据源的读连接
adModeShareDenyWrite 拒绝其他用户打开到数据源的写连接
adModeShareExclusive 以独占方式打开数据源
adModeWrite 连接是只写的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值