使用access数据库需要注意的问题
2009-05-27 13:57
253 查看
使用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时的大小写显示。
6 .con.Close(); 关闭access连接,不能及时关闭,引起File.Delete(“access.mdb”)文件出错,
目前还没有找到解决办法。。。。
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时的大小写显示。
6 .con.Close(); 关闭access连接,不能及时关闭,引起File.Delete(“access.mdb”)文件出错,
目前还没有找到解决办法。。。。
相关文章推荐
- 使用access数据库需要注意的问题
- 使用单例模式需要注意的几个问题
- 使用List的remove方法需要的注意的问题
- 使用DB2中需要注意的一个问题。
- Inputstream读取文件,使用read()方法,判断尾标记需要注意的问题
- FastMM内存管理器在使用多线程情况下需要注意的问题。
- [置顶] java Vector 在多线程使用中需要注意的问题
- 使用jQuery Ajax功能的时候需要注意的一个问题
- 【转】使用C#通过Oracle.DataAccess连接Oracle,部署时需要注意版本问题
- 使用Rancher部署K8S时需要注意的软件版本问题
- 安装使用WDS时需要注意的一点问题
- 使用蓝牙发送文件时需要注意的问题
- 教你发布Silverlight Bussiness Application(SQL Server 登录,局域网访问,以及使用ArcGIS Server服务需要注意的问题)
- c#中ref和out参数使用时需要注意的问题_百度文库
- 使用Spring AOP 需要注意的问题
- java实际开发中泛型使用需要注意的一些问题
- 使用scanf和fgets需要注意的一个小问题
- 在tomcat使用中需要注意的路径问题。
- 调试使用了函数模块的程序时需要注意的一个小问题
- LitJson使用中需要注意的一些问题(转)