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

如何把数据库和管理系统做到只读媒体或移动媒体上
一、应用场景:
  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;User ID=Admin;Data Source=%s/filename.mdb;';
  6.       sqlstr:=format(sqlstr,[mypath]);//将数据文件放在程序同级目录下
  7.       sqlstr:=sqlstr+'Mode=read|Share Deny Read|Share Deny Write;Jet OLEDB:Database Password=xxxxx;Jet       OLEDB:Engine Type=5;Jet  OLEDB:Database Locking Mode=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  连接是只写的   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值