0 y+ Z9 a4 i! [2 l9 F( uMicrosoft Office Access(前名 Microsoft Access)是由微软发布的关联式数据库管理系统。它结合了 Microsoft Jet Database Engine 和 图形用户界面两项特点,是 Microsoft Office的成员之一。* t& F6 m4 h& J: n! o4 P; c
5 D( R6 D* k) D0 ~- p, f% F( c
Access能够存取 Access/Jet、Microsoft SQL Server、Oracle(甲骨文软件公司),或者任何 ODBC 兼容数据库内的资料。熟练的软件设计师和资料分析师利用它来开发应用软件,而一些不熟练的程序员和非程序员的"进阶用户"则能使用它来开发简单的应用软件。虽然它支援部份面向对象(OO)技术,但是未能成为一种完整的面向对象开发工具。 , [: i0 [& J, h , B$ x8 C( G! P" q% P! } 其实Access 也是微软公司另一个通讯程序的名字,想与 ProComm 以及其他类似程序来竞争。可是事后微软证实这是个失败计划,并且将它中止。数年后他们把名字重新命名于数据库软件。 , O- x& f3 l! h. n
[编辑本段]/ l$ d Y& f5 k' Q- s
概述 Access 是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS,即Relational Database Management System),是Office系列应用软件之一。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。 2 D! P2 Y9 {, H9 e: }4 V $ n; l) A) x9 d) [ access,一种交换机的主干道模式。2台交换机的2个端口之间是否能够建立干道连接,取决于这2个端口模式的组合。常见的还有7 B9 H7 o Z* @7 c
6 D% N6 i; a' D6 p6 _ Y
(普通)access+ j# i- X* p# q4 K+ }3 U& }
a$ b! j+ P) n: m$ J (干道) Trunk , r8 }0 Z! G, y. q 1 k S7 o4 s2 z/ K/ \( m (自适应) Dynamic-auto% p+ y2 {7 ^- y7 r7 M, X q- s
' q: F+ `" d( N: V$ [
(期望)Dynamic-desirable ' C8 c6 ^7 T( a3 T[编辑本段]& Y, O) u' S; k& x
历史 Microsoft Access 1.0 版本在1992年11月发布。 3 L7 h" }2 m+ d" t# r9 R 4 j$ b4 i+ I# |" O+ X7 I" \; u9 ^ 微软指定它对系统最小要求为视窗3.0配以4兆节内存.6兆节内存配以最小8兆节硬盘空间(建议最好有14兆节硬盘空间)则为建议的系统要求.当时软件以7张1.44兆节软碟发布的载体.9 k+ x0 k- r! n* j
. B2 }# y1 \8 G- F" g u 这个软件能够有效地处理大量记录但是测试显示在某些情况下会导致数据损毁.比如说,大小超过700MB的文件常会出问题。(值得注意的是在1.0版广泛应用的时候大多数硬盘是小于700MB的。)软件的使用指南指出过时的设备驱动和错误的配置可能回导致数据丢失。 % n/ f. O" ?, }, Z2 n2 R" C5 W/ `6 @ # Q3 K% X8 V- ^& y6 ?7 v. P Access的最初名称是Cirrus。它开发于Visual Basic之前,当时的窗口引擎称作Ruby。比尔盖茨看过Ruby的原型后决定把这个基于Basic语言的组件作为一个独立的可扩展应用程序与Access联合开发。这个项目称作Thunder。这两个项目互相独立的被作为底层的窗口引擎开发并且互不兼容。 然而,在VBA出现后它们被合并在一起。 4 [) p* L2 }( W' {; N5 O( C5 z5 _# \, J
1995年末,access 95发布,这是世界上第一个32位关系型数据库管理系统,使得access的应用得到了普及和继续发展。 \& A4 k1 q2 z( N6 ?1 R, O7 e
1997年,access 97发布。它的最大特点是在access数据库中开始支持web技术,这一技术上的发展,开拓了access数据库从桌面向网络的发展。8 W! I+ L. L9 O f- w
4 y2 M/ S0 x, @! e* [
21世纪初,microsoft发布access2000,这是微软强大的桌面数据库管理系统的第六代产品,也是32为位access的第三个版本。至此,access在桌面关系型数据库的领域的普及已经跃上了一个新台阶。# e9 Q1 H% t/ }- x7 T: W
3 I; _, E9 A8 Z 2003年微软正式发布了access 2003,这是继2002年后发布的最新版本,它在继承了以前版本的有点外,又新增了一些使用功能 6 {# t( e O4 B! \; ~' X3 C+ X* Q[编辑本段] 9 G) e( E0 @9 y5 }" A用途 Microsoft Access在很多地方得到广泛使用,例如小型企业,大公司的部门,和喜爱编程的开发人员专门利用它来制作处理数据的桌面系统。它也常被用来开发简单的WEB应用程序.这些应用程序都利用ASP技术在Internet Information Services运行.比较复杂的WEB应用程序则使用PHP/MySQL或者ASP/Microsoft SQL Server. . E0 \" [, x7 a( Y8 m) n7 {( g5 M! f# v4 S% M( X. {+ D
它的使用方便程度和强大的设计工具为初级程序员提供许多功能。不过,这种便于使用可能使人误解。这类开发者都是没有在应用或者数据设计方面训练的办公室从业人员。因此许多人以为这样的开发者能够创造可用的系统,但也有很多人认为工具本身的局限性产生了这样的误导。 - z9 ^4 u7 {, e8 |" R3 G3 o$ n/ v, h% ]8 d6 a8 w# a
一些专业的应用程序开发人员使用 Access 用作 快速应用开发,特别是给街道上的推销员制作一个初型或独立应用程序的工具。可是如果是透个网络存取数据的话,Access 的可扩放性并不高.因此当程序被较多使用者使用时,他们的选择多会是倾向于一些客户端-服务器为本的方案,例如 Oracle、DB2、Microsoft SQL Server、Windows SharePoint Services、PostgreSQL、MySQL、Alpha Five、MaxDB,或者Filemaker。无论如何,不少 Access 的功能(表单,报告,序列和VB代码)可以用作其他数据库的后期应用,包括 JET(档案为主的数据库引擎,Access 缺省使用)、Microsoft SQL Server、Oracle和任何其他跟ODBC兼容的产品。这种方法允许开发者把一个成熟的应用的数据移动到一台更大功率的服务器而没有已经在适当的位置牺牲发展。6 ~- m; f8 p$ S1 {8 T
) _, j2 f2 A( H
很多开发者谁使用Microsoft Access使用Leszynski命名约定,虽然这不普遍;它是一次编程大会,并非一个DBMS实施的规章。 / ~. D0 G7 x% z9 H
[编辑本段]+ z/ s2 I# V6 T- Q% i9 M. v6 q
特性 一好处进入从程序员视角在它的有关兼容性有SQL-质问可能被观看并且作为SQL语句编辑,并且SQL语句直接在巨视和VBA模里可以被使用操作进入桌子。用户可能混合并且使用两个VBA并且"宏"编程形式和逻辑既没提供面向对象的可能性。 2 @" `* a K& P8 y/ o3 S* ~ , s5 W( z) B0 b4 I( Z+ S 导入导出报表的生成程序,当时有能力和到这项任务的复杂报告创造,没有另一受欢迎数据库报表程序的生成程序充满特色和强有力-水晶报告。MSDE(微软公司SQL服务器桌面发动机)2000,袖珍版本的MSSQL服务器2000,被包括开发版的办公室XP并且被用于进入可能作为除之外的另一种选择JET数据库引擎。(尽快的*版本的MSDE和微软公司交换服务器实际上使用这台喷气发动机处理巨大大量数据并且安置一“赝品”在它之上的那些应用的应用层。大约这事实的缺乏知识因进入/喷口家庭的软件产品而为不该受不敬做贡献,特别是关于"大"工程。)2 i1 y v1 Y! I5 O
) C) C% N' |8 n, ?7 o
进入分割和粘贴功能性能使它有用工具在其他数据库之间连结(例如,在数据或者数据库变换期间的Oracle和微软公司SQL服务器)。进入与给与窗子和其他平台应用一起的积分的各种各样进口和退场门特征一起来,一经请求从应用的里面或者手工由用户其中几可以被执行。例如非常紧密SNP完全格式化的为分享的形式与没有全部的进入软件的人们报告。它也能容易被升级到微软公司SQL服务器。2 H9 a p6 H0 L3 U( Q
3 M0 C- D3 E4 K
与一般的RDBMS完全不同,它缺乏数据库触发和预存程序。自从MS Access 2000 (Jet 4.0),开发人员可以在查询中设定参数,这跟预存程序很相似的,但这些“预存程序”只能处理一个程序.当资料表内数据发生变化时,它确实允许形式包含被引发的代码,使用是普通的透过查询和其他技术在进入营运储存的程序在方面RDBMS支援这些的。 $ U9 b1 z( [7 F6 W4 g
[编辑本段] ; c! `/ C1 {7 A& X$ W r7 e3 Y发展 进入可提供的编程语言,当时在另一个内产品Microsoft Office家具,微软公司应用的Visual Basic。两个数据库进入讯息库COM组成部分被提供:这笔遗产数据存取物体(DAO),用进入和新只可提供ActiveX数据对象(忙乱)。 2 G9 \. {5 ]# X; g7 s' e- Z" ^ Q9 O9 }# e5 O& x8 P- c1 C MicrosoftAccess容易被应用于小的工程,但是如果设计的不好对大工程是无用的。9 S+ u* N3 p- }! F. ^: W, T
( Y! Y7 E1 Y. ^. B! H0 g, ~ 全部数据库质问,形式和报告被储存在数据库里,并且与相关的模型的理想协调,没有与他们做一个身体上组织的阶层的可能性。* _0 P3 O$ t3 W, M7 n
% z- m) E0 L5 p) R# @; z
一种设计技术是把进入应用在数据和计划之间进行分发。一数据库应该只包含桌子和关系,当另一个将有全部计划时,形式,报告和质问和对第一个数据库桌子的连接。令人遗憾,当连结时,进入允许没有有关的道路,因此那些发展环境作为这种生产环境有相同的道路应该(虽然你写你们自己的能"动态连接程序"常规在里VBA那搜出能一定背面结束档案以透过这个目录树搜寻,如果它发现这条电流通路它不能)。2 X1 |$ e# m0 i) G2 l2 N* I
# N; r& W! u+ J4 a( ~. w
这种技术也允许开发者在不同的档案中分申请,因此一些架构是可能的。5 t" o- [; O. W" c
# q6 z9 H+ ^0 F Access的优点 4 F, ]* h, b% J" L Q' Y D; x' M G. b7 X2 H
(1)存储方式单一 6 C% E: C0 h' f) H/ K! s1 s \% L , z9 m7 |5 [# h2 o Access管理的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(.mdb)的数据库文件种,便于用户的操作和管理。 6 d m4 N. y( O+ o' ^
0 {6 D( q } q8 ?
(2)面向对象 ; ?: u* i3 O# H& `4 s4 j4 C8 y5 X& {6 R: v6 U0 h3 \
Access是一个面向对象的开发工具,利用面向对象的方式将数据库系统中的各种功能对象化,将数据库管理的各种功能封装在各类对象中。它将一个应用系统当作是由一系列对象组成的,对每个对象它都定义一组方法和属性,以定义该对象的行为和外国,用户还可以按需要给对象扩展方法和属性。通过对象的方法、属性完成数据库的操作和管理,极大地简化了用户的开发工作。同时,这种基于面向对象的开发方式,使得开发应用程序更为简便。 , N+ x) a0 `' _* {/ R' c" A/ K+ k' S n' d1 o( @, E" f- T) Y1 s$ g0 b (3)界面友好、易操作 ( J- }' {2 L) o8 C
; j$ Y* z, s4 |$ ~) F! I Access是一个可视化工具,是风格与Windows完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,非常直观方便。系统还提供了表生成器、查询生成器、报表设计器以及数据库向导、表向导、查询向导、窗体向导、报表向导等工具,使得操作简便,容易使用和掌握。 # ~/ N" W4 k, x0 Q, K2 C
; L; K" g1 c0 m7 D (4)集成环境、处理多种数据信息 : ~$ I4 V) ^6 f3 X ; B- O! p( V0 C$ _* G v; D5 Q Access基于Windows操作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。 : y- V' ]+ ^5 L, b3 `" f
4 t/ x8 Z+ B+ R' F6 T d! t) ? (5)Access支持ODBC(开发数据库互连,Open Data Base Connectivity),利用Access强大的DDE(动态数据交换)和OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、Excel表格、Word文档,还可以建立动态的数据库报表和窗体等。Access还可以将程序应用于网络,并与网络上的动态数据相联接。利用数据库访问页对象生成HTML文件,轻松构建Internet/Intranet的应用。 " C- U' Q* b/ Z
; M5 i8 ]9 ^. B. t P1 n4 n7 E ACCESS的缺点" v) U" H$ [) a$ ^0 c
" L5 R" h2 [8 e& @' a9 h8 Z& j% d# C
ACCESS是小型数据库,既然是小型就有他根本的局限性,以下几种情况下数据库基本上会吃不消:2 |7 p' U7 f' t. K
& X0 J/ s q7 A! b
1.数据库过大,一般ACCESS数据库达到50M左右的时候性能会急剧下降!# ]9 ?1 |2 @8 ?) H5 ^
, |) }: j* t' u" n 2.网站访问频繁,经常达到100人左右的在线。. \$ ~% o& p% s4 R J
; u3 r: R6 l8 C: J3 ?5 ]# r 3.记录数过多,一般记录数达到10万条左右的时候性能就会急剧下降!7 b, G& k% I, h, H M2 s6 A9 J6 p
- J4 Y% T. A" p$ Z C函数- g i6 ]) M9 U4 R7 @
5 M& r4 z3 y* c4 K
函数名: access 4 b0 C1 z. m* M
# C( o" Y% k4 v5 F2 q+ |, ~ 功 能: 确定文件的访问权限 7 q7 Q L; @2 p' [+ F# z6 Q/ z
1 t+ c7 H B' K' L( e8 ?& F3 ]9 b
用 法: int access(const char *filename, int amode); * G% Y- K4 U6 B[编辑本段] ; V/ `& R8 `5 h$ R+ b) ^: S R' [access Synopsis F ?$ Z6 l- D
' `; B6 J2 K* p8 l" I #include <io.h> % L. }( k' Q. |( A: ? g9 b. _ 9 L0 k' ]* { r4 Tint _access(const char *path,int mode) ; ; E5 I s" ?% D2 J4 ? 0 N- S# k- {% o7 ]7 v3 ~) ]5 JDescription 7 p+ ?7 ~ L, A5 K' s* `2 i w. B4 |* a8 J7 {) r+ x7 U, v7 K5 `& ?* T
The access function, when used with files, determines whether the specified file exists and can be accessed as specified by the value of mode. When used with directories, _access determines only whether the specified directory exists; since under Windows all directories have read and write access. ^" q& d6 t0 l0 S: L/ y ; Y* o9 T7 {$ o2 n The mode argument can be one of : 8 u' u9 Q& a% N9 D/ Y7 `. \' ^# t: h1 `
00 Existence only$ U) J" q7 ]! y1 ?* J& L
1 p' t1 G+ s4 |' N9 [- u
02 Write permission 9 I1 O/ Q1 `1 X+ g- W3 ^ . `2 w6 v9 B& L& K) T' S6 o x6 g 04 Read permission& K* h3 ~7 \7 ?
7 f" S* T5 ]- ` 06 Read and write permission 3 f3 u; C/ b @0 M/ X- e
* v: D/ M N" ~! N; R" mReturns7 p; Z2 Y. v9 Z1 e7 x$ n
% L! ^, Y7 C4 t t: S. N Zero if the file has the given mode, -1 if an error occurs.' L9 d0 R' l7 C! L k
2 C) I( h% D2 b4 Q( D6 }7 } Windows. Under Unix a similar function exists too. + k- u2 C" }& \+ F 2 ~% @! a- r2 S* B; h. F Note that lcc-win32 accepts both _access (Microsoft convention) and access.% p, v* C. `7 j5 [# s
* Z' B2 t) ^, P, a8 x1 H 程序例: ! x: N0 u& u) r- _- R# U1 w$ A( s* `3 p
#include <stdio.h> : n& L, |( |+ u6 V6 V+ N
* s* e: [2 B8 Y
#include <io.h> 7 F; r) E6 l- e1 i! Q3 l 3 v; ^6 S" V$ [/ k% G int file_exists(char *filename); ( D! {8 ]( G( j* J0 s4 B 4 |! T9 _1 U2 \ int main(void) 4 H9 N" i4 w0 ~$ `$ j; q, Q# e
% v4 s/ V6 X6 A# _% Z { 9 y5 U) {% L9 t6 U; a ) t5 r8 l! S7 K7 s$ P printf("Does NOTEXIST.FIL exist: %s\n", * h0 I' \$ V' y, j( R- _
7 _+ i: V1 ]: \. d* z. V' C file_exists("NOTEXISTS.FIL") ? "YES" : "NO"); , e6 o4 H1 P4 C8 s
r: M8 D0 m K1 P% o" B
return 0; / K; D; l* ?. {, g4 m; c3 D
9 U8 x" J4 v% m9 T5 t } 8 @4 n, ?+ m8 _2 Q; w0 \
2 B) i, L: A: a0 O, R int file_exists(char *filename) / W/ T5 ~. B. }* W% v" E9 [" x; `0 T) W6 _# e0 }' K1 s) J! ~$ G
{ " A; h1 ^% |: V. u