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

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

如何把数据库和管理系统做到只读媒体或移动媒体上
一、应用场景:
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 连接是只写的

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值