使用access数据库需要注意的问题

使用access数据库需要注意的问题


    1. 明确一个概念:access与access数据库不同。
    对于大多数使用access的人来说,access与access数据库是一码事;但是对于使用access数据库做开发的人,需要区分access程序与access数据库。access程序是与用户交互的界面(想象一下Windows资源管理器与cmd命令提示行,它们是不同的界面);access数据库包含两部分,*.mdb与jet引擎:*.mdb是存储数据的文件,jet数据引擎是操作*.mdb文件的API。三者的关系如下图所示:
 
        access.exe | access查询分析器 | 网站等各种应用
  --------------------------------------------------------
                       jet数据引擎
  --------------------------------------------------------
                        *.mdb文件


    目前主流的windows操作系统(win 2000及以上),安装好之后都已经包含了jet引擎(通常是4.0版本的),因此大多数时候不需要单独安装jet引擎,基于access数据库的应用就可以工作。
   
    2. access数据库属于文件数据库。文件数据库不支持并发访问,不支持网络访问。
    关于文件数据库,这里不多做介绍,简单的说,就是格式比较特殊的文件,要使用专用的API才能访问。
    文件数据库不支持并发访问,这里的并发,指的是2个或2个以上的写操作同时进行;发出写操作的主题可能是进程,也可能是线程。
    文件数据库不支持网络访问。这里说的网络访问不包括网络共享的方式。用过mysql、oracle、sql server等数据库的开发者,都会发现数据库要启动一个监听器(名字不一定叫监听器)才能被网络上的程序访问,其实这个监听器就是(数据库)服务的入口;文件数据库,本质上是文件,而不是服务,所以不支持网络访问。
   
    3. *.mdb文件大小有2G的限制。
    准确的说,*.mdb中存储的有效数据的上限是2G,去除表结构等管理数据(meta data)占用的空间,实际的有效数据上限大约是1.8G。
    在*.mdb中,用delete操作删除的数据,只是被标记为删除,占用的存储空间不会被自动释放,也不会被再次使用。反复进行insert与delete操作之后,*.mdb文件的大小会超过2G,但其中有效的数据达到2G的时候,进行insert操作就会报错了。
    要想释放不再使用的空间,就要使用access程序的“数据压缩”,或者自己写程序(需要某些access提供的com组件)。
    注意:FAT32分区中的单个文件大小上限为4G,NTFS无此限制。
   
    4. 存储过程、外键。
    支持简单的存储过程,在“查询”中编辑。
    外键,在“关系”中设置。
   
    5. 不区分大小写。记录(record)中的字符,(进行字符比较的时候)不区分大小写,但显示(或者说select)的时候按照insert时的大小写显示。

   本文只列出了我做开发的过程中碰到的一些情况。欢迎讨论,欢迎补充。
  

 

posted @ 2009-01-14 14:43  ols  阅读(1560)  评论(0编辑  收藏  举报