通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 my小屋
联系我们
设为首页
加入收藏

 

qq,asp,php,jsp,xml,sql,.net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 网络赚钱 | 网站地图 | 广告服务 | 服务
当前位置:首页>>编程开发>>sql专区>>正文 新版上线![旧版]
注:打开慢时请稍等
网络数据库的复制和同步(5)

http://www.iyit.net  日期:2006-5-3 19:18:39  来源:  点击:
参加讨论】   所谓建立数据库复本,实际上就是建立数据库的拷贝。通过数据库复制,每个用户都可以使用数据库中数据的一份拷贝,并可在某个时亥把各个数据库重新组合成宿主数据库,而对宿主数据库的修改都传送到数据库复本。注意,数据库复制功能仅对microsoft jet 3.5版的数据库有效。

  microsoft jet 数据库引擎不允许用数据库密码来保护复制数据库。在开始使用复本之前,必须先从将要复制的数据库中删去所有数据库密码保护。设置用户权限与复本同步没有冲突。

  用dao复制数据库的一般步骤如下:

  (1)识别数据库中不需要复制的对象,并将它们的keeplocal属性设置为“t”。

  (2)将数据库的replicable属性设置为“t”,使它变成设计原版。

  (3)用makereplica方法从设计原版中生成附加的复本。

在设置replicable属性之前,应先确定在转换数据库以前数据库是否已经被复制。

  1.保持对象本地化

  当把正常的数据库转换为设计原版时,将复制数据库中的所有对象。如果不想把数据中的所有对象都放在复本集中,则可对不想复制的对象添加并设置keeplocal属性。例如,果数据库中有一个表,在该表中含有机密的工资信息、初始化信息或登录到数据库的用名,则可能希望不把这些信息放到复本中。在这种情况下,可将该表的keeplocal属性设为“t”,使得复制数据库时,这些信息不被复制。

  对于tabledef 和 querydef对象,可以建立keeplocal属性并把它添加到对象的属性集合中。对于由主机应用程序定义的窗体、报表、宏以及模块,可以建立keeplocal属性并把它添加到表示该对象的document对象的属性集合中。

注意,在设置keeplocal (以及rep1icab1e )属性之前,必须先建立它,然后添加到将使用它的对象的属性集合中。如果在建立并添加该属性之前先引用了它,则将产生一个运行时错误。
【例】编写一个function 过程,对数据库中指定的对象进行本地化处理。

  function setkeeplocal(dbs as database, strcollection as string, stffobject as string) as integer

  dim i as integer

  dim blnmatch as boolean

  dim tdf as tabledef

  dim prp as property

  dim doc as document

  dim qdf as querydef

  on error goto errorhandler

  select case stalollection

   case "forms", "relports", ''modllles'', ''scripts`'

     set doc = dbs.containers(strcollection). documents(strobject)

     set prp = doc.createproperty ("keeplocal", dbtext, `'t'')

     doc.properties.append prp

   case "tabledefs"

     set tdf = dbs.tabledefs(strobject)

     set prp = tdfcreateproperty (''keeplocal'', dbtext, ''t'')

     tdfprol)etties.append prp

   case ''quecydefs'`

     set qdf=dbs.querydefs(sbrobject)

     set prp = qdf.createproperty ("keeplocal", dbtext, "t")

     qdf.properties.append prp

  end select

errorhandler:

  select case err

   case 0

    case 3265 '对象未发现

    setkeeplocal = 3265

    exit function

    '属性已经存在,把它设置为“t”

   case 3367

    select case sttoollection

     cssel ''forms'' , ''relports'', ``modlules'' , ''scripts'`

     doc.properties(''keeplocal'`).value = `'t'`

   case ''tabledefs'`

     tdf.properties(''keeplocal'').value = `'t'`

   case ''querydefs'`

     qdf.properties(''keeplocal'').value = ''t'`

   exit function

  end select

  setkeeplocal = 0

  exit function

  case else

   msgbox ''error'' & err & ":", & error, vbokonly

   setkeeplocal=-1

   exit function

   end select

  end function

用上述过程可以对指定数据库对象建立并添加keeplocal属性,如果该属性已经存在,则将产生代码为3367的错误,在这种情况下,将在错误处理程序中把该属性的值设置为“t”

  该过程有3个参数,其中第一个参数是database对象,第二个参数是集合的名字,第三个参数是数据库中的对象名。过程的返回值是一个整型数,它实际上是一个错误代码。为了调用上面的过程,可以在窗体上画一个命令按钮,然后编写如下的事件过程:

  private sub command1_click()

   dim mydb as database

   dim a as integer

   set mydb = opendatabase(''c:\dbdir\db1.mdb'')

   a = setkeeplocal(mydb, ''tabledefs'',''tabel1'')

   if a = 0 then

    msgbox "已成功设置keeplocal 属性"

   elself a = 3265 then

    msgbox "对象未找到"

   elself a = 3367 then

    msgbox "keeplocal属性已存在,设置为“t”

   else

    msgbox“出错”

   end lf

  end sub

该事件过程调用setkeeplocal过程,用来建立并设置数据库db1.mdb的tabledefs集合中tabel1对象的keeplocal属性。

  如果已经在数据库的两个表之间建立起关系,则必须将两个表的keeplocal属性设置为相同的值,即两个表都必须是本地的或者是可复制的。如果两个表的keeplocal属性设置不一样,则转换将会失败。但是应注意,不能在关系有效时设置keeplocal属性,也就是说,在设置属性之前,应先删除两个表之间的关系,在设置好keeplocal属性之后再恢复两个表之间的关系,然后继续进行数据库转换。

  如果正在设置keeplocal属性的对象已经从其它对象中继承了该属性,则由其它对象设置的值对保留为本地对象的操作没有影响,必须直接为每个对象设置keeplocal属性。


编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:网络数据库的复制和同步(4)
下一篇:网络数据库的复制和同步(6)
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
最新更新 热点排行 推荐新闻
sql server 7.0与以前的版本相比,安全
设置proxy server和sql server实现互联
microsoft sql server 7.0安全问题   
mysql安全性指南(3)(转)           
mysql安全性指南 (2)(转)          
在frontpage 2000中插入flash动画
用frontpage 2000使图像“减肥”
提高frontpage 2002使用效率
用frontpage 2000创建网页动画
用frontpage 2000巧做样式表
用frontpage 2000制作鼠标光照特效
用frontpage轻松转换图片格式
frontpage10全透视教程(9)
frontpage10全透视教程(8)
frontpage10全透视教程(7)
sql server 7.0与以前的版本相比,安全
sql简明教程(6)
sql简明教程(5)
sql简明教程(4)
sql简明教程(3)
qq珊瑚虫外挂4.0版本发布!
多个广告位招商!
摄影后期系列一:1分钟为数码相片去红眼
qq挂机说明
asp进度条
photoshop通道抠图:给秀发飞扬的mm照
教您显示器亮度对比度的调节
新版上线,今日正式开通!!!
更多精彩图文广告等着您!
asp中使用sql语句教程
sql简明教程(1)
第二十章 开发delphi对象式数据管理功
sql简明教程(1)
vbscript和javascript互相调用 
jsp教程(四)-jsp actions的使用
操作系统被入侵后的修复过程
五一别忘电脑防毒 养成良好上网习惯
google对ie浏览器将捆绑搜索功能表担忧
新版上线,今日正式开通!!!
用photoshop创意图形“岁月”
摄影后期系列一:1分钟为数码相片去红眼

 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights © 2004-2006 iyit.net all rights reserved.
网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息