SQL合计函数
使用SQL合计函数你可以确定数据组的各种统计.你可以把这些函数用于查询和合计表达式,条件是在具备SQL特性的QueryDefQueryDef对象中或在创建基于SQL查询的RecordsetRecordset对象时.SQLAvg函数Count函数First,Last函数Min,Max函数StDev,StDevP函数Sum函数Var和VarP函数
SQL表达式
一个SQL表达式是一个字符串,构成了一个SQL语句的全部或部分.例如,FindFirstFindFirst法在RecordsetRecordset对象上使用了一个由SQLWHERE子句中发现的选择准则构成的SQL表达式.MicrosoftJet数据库引擎利用VisualBasicforApplications(VBA)的表达式服务来执行简单的算术和函数计算.所有用于MicrosoftJetSQL表达式(除了BetweenInBetween,In,和LikeLike)的运算符由VBA表达式服务Like定义.另外,VBA表达式服务提供了100个以上,可用在SQL表达式中的VBA函数.例如,可以用这些VBAOpenRecordset法,函数在MicrosoftAccess查询Designview中构造查询,还可以把这些函数用于DAOOpenRecordsetMicrosoftVisualC++,MicrosoftVisualBasic,andMicrosoftExcel编码中.MicrosoftVisualBasic和MicrosoftExcel代码.
SQL保留字
ABCDEFGHIJKLMNOPQRSTUVWXYZ下表包括了所有MicrosoftJet数据库引擎保留的用于SQL语句的字.列表中的字,若不是全部大写,也被其它应用程序所保留.因此,对于这些字的各个帮助主题只提供了通常的描述,并未着重SQL的用法.
但是当前在MicrosoftJetSQL语句的范畴内并没有意义(例如,Level注意跟着一星号*的词是被保留的,和TableID).未加下划线的字没有链接的解释.
A
ABSOLUTEADDADMINDBALLAlphanumeric—SeeTEXTALTERALTERTABLEAndASB-C
ANYAREASASCASSERTIONAUTHORIZATIONAUTOINCREMENT—SeeCOUNTERAvg
BEGINBetweenBINARYBITBIT_LENGTHBOOLEAN—SeeBITBOTHBYBYTECASCADECATALOGCHAR,CHARACTER—SeeTEXT
COLLATIONCOLUMNCOMMITCOMP,COMPRESSIONCONNECTCONNECTIONCONSTRAINT,CONSTRAINTSCONTAINERCONTAINSCONVERTCountCOUNTER
CHAR_LENGTHCHARACTER_LENGTHCHECKCLOSECLUSTEREDCOALESCECOLLATED
CREATECURRENCYCURRENT_DATECURRENT_TIMECURRENT_TIMESTAMPCURRENT_USERCURSOR
DATABASEDATE—SeeDATETIMEDATETIMEDAYDEC,DECIMALDECLAREDELETEDESCE-H
DISALLOWDISCONNECTDISTINCTDISTINCTROWDOMAINDOUBLEDROP
EqvEXCLUSIVECONNECTEXEC,EXECUTEEXISTSEXTRACTFALSEFETCH
FOREIGNFROMFROM子句GENERAL—SeeLONGBINARYGRANTGROUPGUID
FIRSTFLOAT,FLOAT8—参阅DOUBLEFLOAT4—SeeSINGLEI
HAVINGHOUR
IDENTITYIEEEDOUBLE—SeeDOUBLEIEEESINGLE—SeeSINGLEIGNOREIMAGEImpInININDEXINDEXCREATEDBINNERJ-M
INPUTINSENSITIVEINSERTINSERTINTOINT,INTEGER,INTEGER4—参阅LONGINTEGER1—参阅BYTEINTEGER2—参阅SHORTINTERVALINTOIsISOLATION
JOINKEYLANGUAGELASTLEFTLevel*LevelLikeLOGICAL,LOGICAL1—参阅BIT
LONGTEXTLOWERMATCHMaxMEMO—参阅LONGTEXTMinMINUTEMod
LONGLONGBINARYLONGCHARN-P
MONEY—参阅CURRENCYMONTH
NATIONALNCHARNONCLUSTEREDNotNTEXTNULLNUMBER—SeeDOUBLENUMERIC—SeeDECIMALNVARCHAROCTET_LENGTHOLEOBJECT—SeeLONGBINARYONOPENOPTIONOrORDERQ-S
Outer*OuterOUTPUTOWNERACCESSPADPARAMETERSPARTIALPASSWORDPERCENTPIVOTPOSITIONPRECISIONPREPAREPRIMARYPRIVILEGESPROC,PROCEDUREPUBLIC
REAL—SeeSINGLEREFERENCESRESTRICT
SMALLDATETIMESMALLINT—SeeSHORTSMALLMONEY
REVOKERIGHTROLLBACKSCHEMASECONDSELECTSELECTSCHEMASELECTSECURITYSETSHORTSINGLESIZET-Z
SOMESPACESQLSQLCODE,SQLERROR,SQLSTATEStDevStDevPSTRING—SeeTEXTSUBSTRINGSumSYSNAMESYSTEM_USER
TABLETableID*TableIDTEMPORARYTEXTTIME—SeeDATETIMETIMESTAMPTIMEZONE_HOURTIMEZONE_MINUTETINYINTTOTOPTRAILING
UPDATEOWNERUPDATESECURITYUPPERUSAGEUSERUSINGVALUEVALUESVarVARBINARY—参阅BINARYVARCHAR—参阅TEXTVarP
TRANSACTIONTRANSFORMTRANSLATETRANSLATIONTRIMTRUEUNIONUNIQUEUNIQUEIDENTIFIERUNKNOWNUPDATEUPDATEIDENTITY
VARYINGVIEWWHENWHENEVERWHEREWITHWORKXorYEARYESNO—SeeBITZONE
SQL数据类型
MicrosoftJet数据库引擎SQL数据类型由13个基本数据类型组成,它们是由MicrosoftJet数据库引擎和几个验证过的有效同义字定义的.下面的表格列出了主要数据类型.这些同义字在MicrosoftJet数据库引擎SQL保留字中被识别.
数据类型BINARY
存储大小每个字符占一个字节
说明任何类型的数据都可存储在这种类型的字段中.不需数据转换(例如,转换到文本数据).数据输入二进制字段的方式决定了它的输出方式.Yes和No,以及只包含这两个数值之一的字段.介于0到255之间的整型数.介于–922,337,203,685,477.5808到922,337,203,685,477.5807之间的符号整数.
BITTINYINTMONEY
1个字节1个字节8个字节
DATETIME(清参阅DOUBLE)UNIQUEIDENTIFIERREAL
8个字节
介于100到9999年的日期或时间数值.
128个位4个字节
用于远程过程调用的唯一识别数字.单精度浮点数,负数范围是从–3.402823E38到–1.401298E-45,正数从1.401298E-45到3.402823E38,和0.双精度浮点数,负数范围是从–1.79769313486232E308到–4.94065645841247E-324,正数从4.94065645841247E-324到1.79769313486232E308,和0.介于–32,768到32,767的短整型数.介于–2,147,483,648到2,147,483,647的长整型数.容纳从1028-1到-1028-1.的值的精确的数字数据类型.你可以定义精度(1-28)和符号(0-定义精度).缺省精度和符号分别是18和0.
FLOAT
8个字节
SMALLINTINTEGER
2个字节4个字节
DECIMAL
17个字节
TEXTIMAGECHARACTER
每一字符两字节(参见注意)从零到最大2,14千兆字节.视实际需要而定从零到最大2,14千兆字节.用于OLE对象.
每一字符两字节(参见注意)长度从0到255个字符.
注意
___
可以用ALTERTABLE语句修正基数和增量.刚插进表中的行会有自动为基于新种值和增量值的列生成的值.如果新种和增长的值和以前的种值及增量匹配,就会造成复制.如果这个列是主键,复制值生成时可能导致错误.定义成TEXT也称作MEMO)或CHAR(也称作有具体长度的TEXT(n))的字段中的字符被储存在Unicode表示格式.Unicode字符一律需要两个字节存储每一字符.对于现有的主要包含字符数据的MicrosoftJet数据库,这可能意味着数据库文件被转换成MicrosoftJet4.0格式时字长会增加将近一倍.然而,从前由单字节字符群(SBCS)指示的众多字符群的Unicode表示可以很容易地被压缩成一个单字节.有关的详细信息,参见CREATETABLE.如果用COMPRESSION属性定义CHAR列,数据存储时会自动被压缩,提取时解压缩.
请参阅等效的ANSISQL数据类型MicrosoftJet数据库引擎SQL的保留字
ODBC标量函数
MicrosoftJetSQL支持使用由ODBC为标量函数定义的语法.例如这一查询:SELECTDAILYCLOSE,DAILYCHANGEFROMDAILYQUOTEWHERE{fnABS(DAILYCHANGE)}>5凡是一种股票价格变化的绝对值大于5的列会返回.ODBC定义的标量函数的子集受支持.下表列出了受支持的函数.关于使函数包含于SQL语句的变元的描述和逸出语法的详尽解释,请看ODBC文献.
字符串函数ASCIICHARCONCATLCASELEFTLENGTHLOCATELTRIMRIGHTRTRIMSPACESUBSTRINGUCASE
数字函数ABSATANCEILINGCOSEXPFLOORLOGPOWERRANDSIGNSINSQRTTANMOD
时间和日期函数CURDATECURTIMENOWDAYOFYEARYEARHOURMONTHWEEKQUARTER
DAYOFMONTHDAYOFWEEK
MINUTESECOND
MONTHNAMEDAYNAME
数据类型变换CONVERT字符串文字能被转换成下列数据类型:SQL_FLOAT,SQL_DOUBLE,SQL_NUMERIC,SQL_INTEGER,SQL_REAL,SQL_SMALLINT,SQL_VARCHAR和SQL_DATETIME.
请参阅为ODBC访问配置MicrosoftJet数据库引擎
MicrosoftJet数据库引擎SQL和ANSISQL的比较
MicrosoftJet数据库引擎SQL通常属于ANSI-89Level1.然而,ANSISQL的某些功能在MicrosoftJetSQL中没有实现.随着MicrosoftJet4.X版的发行,可以看出MicrosoftOLEDBProviderforJet使用了更多的ANSI-92SQL语法.相反地,在ANSISQL中也不支持MicrosoftJetSQL所包含的某些保留字和性能.
主要的差异
__
MicrosoftJetSQL和ANSISQL都有不同的保留字和数据类型.欲知更多信息请看MicrosoftJet数据库引擎SQL保留字s和等效的ANSISQL数据类型.将MicrosoftOLEDBProviderforJet与Jet4.X协同使用,会有额外的保留字.Between...And的构造应用了不同的规则,语法如下:
expr1[NOT]Betweenvalue1Andvalue2
在MicrosoftJetSQL中,value1可以大于value2;而在ANSISQL中,value1则必须等于或小于value2.
_
MicrosoftJetSQL支持ANSISQL通配符和MicrosoftJet-specific通配符与Like运算符一起使用.ANSI或MicrosoftJet通配符是互相排斥的.你只能用其中一组,不能同时使用.仅当使用Jet4.X和MicrosoftOLEDBProviderforJet时,ANSISQL通配符才可用.若尝试通过MicrosoftAccess或DAO使用ANSISQL通配符,则会将其解释为原义字符.当使用MicrosoftOLEDBProviderforJet和Jet4.X时,情形恰好相反.
符合字符任何单一字符零个或多个字符
MicrosoftJetSQL?*
ANSISQL_(下划线)%
__
MicrosoftJetSQL通常限制的比较少.例如,它允许在表达式中进行分组和排序.MicrosoftJetSQL提供了更强有力的表达式.MicrosoftJetSQL的加强功能MicrosoftJetSQL提供了下列加强功能:TRANSFORM语句支持连接查询
_
附加合计函数s,如StDev和VarPPARAMETERS说明语句定义参数查询
MicrosoftMicrosoftJetSQL不支持的ANSISQL功能MicrosoftJetSQL不支持下列ANSISQL的功能:
__
DISTINCT合计函数引用.例如,MicrosoftJetSQL不允许SUM(DISTINCT字段名).用来限制查询返回行数的LIMITTOnnROWS子句.你可以只用WHERE子句限定查询的范围.请参阅等效的ANSISQL数据类型Like运算符(MicrosoftJetSQL)MicrosoftJet数据库引擎SQL的数据类型MicrosoftJet数据库引擎SQL的保留字SQL合计函数(SQL)在字符串比较中使用通配符
等效的ANSISQL数据类型
下列表列出了ANSISQL数据类型和等效的MicrosoftJet数据库引擎SQL数据类型还有它们的有效同义字.并且列出了等效的MicrosoftSQL服务器数据类型.
ANSISQL的数据类型BIT,BITVARYING
MicrosoftJetSQL的数据类型BINARY(请参阅注意)
同义字VARBINARY,BINARYVARYINGBITVARYINGBOOLEAN,LOGICAL,LOGICAL1,YESNO
MicrosoftSQL服务器数据类型BINARY,VARBINARY
不支持
BIT(请参阅注意)
BIT
不支持不支持不支持DATE,TIME,TIMESTAMP不支持DECIMALREAL
TINYINTCOUNTER(参见注意)MONEYDATETIME
INTEGER2,SMALLINTAUTOINCREMENTCURRENCY
TINYINT(参见注意)MONEY
DATE,TIME(参见注意)DATETIME
UNIQUEIDENTIFIERDECIMALREAL
GUIDNUMERIC,DECSINGLE,FLOAT4,IEEESINGLE
UNIQUEIDENTIFIERDECIMALREAL
DOUBLEPRECISION,FLOATFLOAT
DOUBLE,FLOAT8,FLOATIEEEDOUBLE,NUMBER(参见注意)SHORT,INTEGER2LONG,INT,INTEGER4SMALLINTINTEGER不支持LONGBINARY,GENERAL,OLEOBJECTIMAGE
SMALLINTINTEGERINTERVAL不支持
SMALLINTINTEGER不支持IMAGE
不支持
TEXT(参见注意)
TEXTLONGTEXT,LONGCHAR,MEMO,NOTE,NTEXT(参见注意)TEXT(n),ALPHANUMERIC,CHAR,VARCHAR,NCHAR,CHARACTER,STRING,NVARCHARVARCHAR,CHARACTERVARYING,NCHAR,NATIONALCHARACTER,NATIONALCHAR,NATIONALCHARACTERVARYING,NATIONALCHARVARYING(参见注意)
CHARACTER,CHAR(参见注意)CHARACTERVARYING,NATIONALCHARACTER,NATIONALCHARACTERVARYING
注意
_____
ANSISQLBIT数据类型与theMicrosoftJetSQLBIT数据类型不对应.而与BINARY数据类型对应.ANSISQL并没有等效于MicrosoftJetSQL的BIT的数据类型.TIMESTAMP不再作为DATETIME的同义字被支持.NUMERIC不再作为FLOAT或DOUBLE的同义字被支持.NUMERIC现在被用作DECIMAL的同义字.LONGTEXT字段总被储存于Unicode表示格式.如果数据类型名TEXT被使用而未说明任选长度,例如TEXT(25),LONGTEXT字段会被创建.这使得CREATETABLE语句s能被写成让数据类型同MicrosoftSQL服务器保持一致.
__
CHAR字段总被储存于Unicode表示格式,和ANSISQLNATIONALCHAR数据类型等效.如果数据类型名TEXT被使用而未说明任选长度,例如TEXT(25),则这一字段的数据类型与CHAR数据类型等效.这样既保持了对MicrosoftJet应用程序的向后兼容,又使TEXT数据类型(没有长度说明)能用MicrosoftSQL服务器定位.请参阅MicrosoftJet数据库引擎SQL的数据类型
在字符串比较中使用通配符
内含的模式匹配为字符串比较提供了一个多用途工具.下表显示了你可以通过Like运算符使用的通配符和它们匹配的数字或字符串的数目.
在样式中的字符?_(下划线)*or%#[charlist][!charlist]
在表达式中的匹配任何单一字符零个或多个字符任何单一数字(0—9)任何在字符表中的单一字符任何不在字符表中的单一字符
可用括在括号([])中的一组字符字符表)(来匹配表达式中任何的单一字符,字符表中几乎可以包含ANSI而且字符集中的任何字符,包括数字.事实上,特殊字符,如左括号([),问号(?),井字号(#)和星号(*),当它们括在括号内时,可以直接和它们自己匹配.一组字符内的右括号(])不能匹配它自己,但是如果它是一组之外的单一字符,就能用来匹配.除了括在括号内的字符的简单表列,字符表可以指定一字符范围,用连字符号(-)来隔开范围的上下界.例如,在样式中使用[A-Z],可在包含从A到Z的任何大写字母的表达式内,找出相应的字符位置.可以在括号之中包含多个范围且不需要在范围间划上界线.例如,[a-zA-Z0-9]指任何符合文数值的字符.一定要注意,仅当使用MicrosoftJet4.X版和MicrosoftOLEDBProviderforJet时,ANSISQL通配符(%)和(_)才可用.若使用MicrosoftAccess或DAO,则将其视为原义字符.样式匹配的重要的规则还有:
__
在字符表开头的惊叹号(!),意味着在表达式中寻找那些不包括在字符表中的字符.若惊叹号(!)在括号之外,它只匹配它自己.如果连字符(-)在字符表的开头(如果有惊叹号,则紧跟在惊叹号之后),或在字符表的末尾,则它匹配连字符(-)自己.否则它被视为ANSI字符范围的标识.
__
当您指定一个字符范围时,首尾字符必须以升序的顺序出现(A-Z或0-100).例如,[A-Z]是有效的,而[Z-A]则无效.字符顺序[]忽略不计,被看作零长度字符串("").请参阅Like运算符SQL表达式s
CREATETABLE语句
创建新表.
注意:注意:对于非微软数据库,MicrosoftJet数据库引擎不支持CREATETABLE或DDL语句的使用.而使用DAO创建方法.
语法CREATE[TEMPORARY]TABLE表(字段1类型[(字长)][NOTNULL][WITHCOMPRESSION|WITHCOMP][索引1][,字段2类型[(字长)][NOTNULL][索引2][,...]][,CONSTRAINTmultifieldindex[,...]])CREATETABLE语句分为以下几个部分:
部分
说明欲创建的表的名称.在新表中欲创建的字段的名称.至少必须创建一个字段.在新表中的字段的数据类型.字段的字符长度(文本及二进制字段).子句定义多重字段索引的CONSTRAINT.欲了解有关如何建立此索引的更多信息,请看CONSTRAINT子句.子句定义多重字段索引的CONSTRAINT.欲了解有关如何建立此索引的更多信息,请看CONSTRAINT子句.
tablefield1,field2typesizeindex1,index2
multifieldindex
说明使用CREATETABLE语句来定义新表及它的字段以及字段条件.如果将一字段指定为NOTNULL,则新记录的该
字段值必须是有效的数据.CONSTRAINT子句在字段上可创建不同的限制,并可用来建立主键.可以使用CREATEINDEX语句在当前表上建立一个主键或附加索引.可以在单一字段上使用NOTNULL,或在用于单一字段或多重字段(名为CONSTRAINT)的CONSTRAINT子句中使用NOTNULL.但是,一个字段只能使用一次NOTNULL限制.尝试多次应用此限制将导致运行错误.建立TEMPORARY表时,只能在建表的会话期间看见它.会话期终止时它就被自动删除.Temporary表能被不止一个用户访问.WITHCOMPRESSION属性只能和CHARACTER及MEMO(也被称作TEXT)数据类型和它们的同义字一起使用.WITHCOMPRESSION属性被加入CHARACTER列是因为单码字符表示格式的变化.Unicode字符一律需要两个字节.对于现有的主要包含字符数据的MicrosoftJet数据库,这可能意味着数据库文件被转换成MicrosoftJet4.0格式时字长会增加将近一倍.然而,从前由单字节字符群(SBCS)指示的众多字符群的Unicode表示可以很容易地被压缩成一个单字节.如果你用这一属性定义一个CHARACTER列,数据被储存时会自动压缩,从列中恢复时会自动解压缩.MEMO列也能被定义用来把数据存储成压缩格式.然而有个局限.只有在压缩时能达到最多4096字节的事例才可被压缩.所有其他事例则不会被压缩.这就是说,在一个给定的表中,一个给定的MEMO列中有的数据会被压缩,有的则不会.
请参阅ADDUSER语句ALTERUSER或DATABASE语句ALTERTABLE语句CONSTRAINT子句CREATEINDEX语句CREATEPROCEDURE语句CREATEUSER或GROUP语句CREATEVIEW语句DROP语句DROPUSER或GROUP语句GRANT语句REVOKE语句
示例CREATETABLE语句,CONSTRAINT子句示例
CREATEINDEX语句
在现有的表上创建新的索引.
数据库引擎不支持使用CREATEINDEX(除了在ODBC链注意对于非MicrosoftJET数据库,MicrosoftJet数据库引擎Microsoft接表上创建虚拟索引虚拟索引)或任何的数据定义语言(DDL)语句.而使用DAO创建DAO创建创建方法.更详细的信息,请参阅说明接表虚拟索引数据定义语言部分.
语法CREATE[UNIQUE]INDEX索引ON表(字段[ASC|DESC][,字段[ASC|DESC],...])[WITH{PRIMARY|DISALLOWNULL|IGNORENULL}]CREATEINDEX语句可分为以下几个部分:
部分
说明欲创建的索引的名称.将包含该索引的现存表的名称.欲被索引的字段的名称.要创建单一字段索引,在表名称后面的括号中列出字段名.要创建多重字段索引,列出包括在索引中的每一个字段的名称.如果索引为递减排序,使用DESC保留字;否则,索引总是递增排序.
indextablefield
说明在不同记录的索引字段之中不允许有重复值时,请使用UNIQUE保留字.在可选的WITH子句中,可以强制数据有效性规则:你可以:
___
通过使用DISALLOWNULL选项来禁止在新记录的索引字段中使用Null项.通过使用IGNORENULL选项,避免在索引中包含索引字段为Null值的记录.使用PRIMARY保留字指定带索引的字段为主键.这里隐喻此键是唯一的,所以可以省略UNIQUE保留字.可以使用CREATEINDEX把虚拟索引建立在连接表上,此表位于ODBC数据源中,例如未建立索引的SQL服务器.不需要权限或访问远程服务器来创建虚拟索引,且远程数据库并不会察觉到虚拟索引也不受虚拟索引的影响.对于由外部链接之表和数据库内部之表皆可使用相同的语法.在一个通常为"只读"状态的表格上创建虚拟索引将尤为有用.您也可以使用ALTERTABLE语句在表中添加单一或多重字段索引,也可以使用ALTERTABLE语句或DROP语句删除用ALTERTABLE或CREATEINDEX创建的索引.
注意在已经具有主键的表上创建新索引时,不得使用PRIMARY保留字;否则,会发生错误.
请参阅
ADDUSER语句ALTERUSER或DATABASE语句ALTERTABLE语句CONSTRAINT子句CREATEPROCEDURE语句CREATETABLE语句
CREATEUSER或GROUP语句CREATEVIEW语句DROP语句DROPUSER或GROUP语句GRANT语句REVOKE语句
示例CREATEINDEX语句示例
CREATEINDEX语句
创建一个存储过程.
注意:注意:对于非微软数据库,MicrosoftJet数据库引擎不支持CREATEPROCEDURE或DDL语句的使用.
语法CREATEPROCEDURE过程PROCEDUREname[param1datatype[,param2datatype[,...]]ASsql语句CREATEINDEX语句可分为以下几个部分:
部分
说明过程的名称.它应遵循标准命名公约.从1到255个字段名或参量.例如:PROCEDURESales_By_Country[BeginningDate]DateTime,[EndingDate]DateTime;欲了解有关参量的更多信息,请看PARAMETERS.
过程param1,param2
datatype
基本MicrosoftJetSQL数据类型或其同义字之一.
sqlstatement
SQL语句例如SELECT,UPDATE,DELETE,INSERT,CREATETABLE,DROPTABLE,andsoon.
说明由PROCEDURE子句(指定过程名称的),可选的参数定义列表和单个SQL语句组成的SQL过程.过程名不可能和当前表名一致.
请参阅ADDUSER语句ALTERUSER或DATABASE语句ALTERTABLE语句CONSTRAINT子句CREATEINDEX语句CREATETABLE语句CREATEUSER或GROUP语句CREATEVIEW语句DROP语句DROPUSER或GROUP语句GRANT语句REVOKE语句
示例CREATEPROCEDURE语句,PROCEDURE子句示例
CREATEUSER或GROUP语句
创建一个或更多的新用户或组.
语法建立一个用户:CREATEUSER用户口令pid[,用户口令pid,匽建立一个组:CREATEGROUP组pid[,组pid,匽
CREATEINDEX语句可分为以下几个部分:
部分
说明被加到工作组信息文件的用户名.被加到工作组信息文件的组名.与特定用户名或组名关联的口令.个人id.
用户组口令pid
说明用户和组不会有相同的名称.建立用户或组,口令是必须的.
请参阅ADDUSER语句ALTERUSER或DATABASE语句ALTERTABLE语句CONSTRAINT子句CREATEINDEX语句CREATEPROCEDURE语句CREATETABLE语句CREATEVIEW语句DROP语句DROPUSER或GROUP语句GRANT语句REVOKE语句
CREATEVIEW语句
创建新视图.
注意对于非微软数据库,MicrosoftJet数据库引擎不支持CREATEVIEW或DDL语句的使用.
语法INSERTINTOtarget[(field1[,field2[,...]])]AS选择语句t
CREATEINDEX语句可分为以下几个部分:
部分
说明欲创建的索引的名称.
viewfield1,field2selectstatement
选择语句中标明的相应字段名.
SQLSELECT语句.欲知更多信息请看SELECT语句.
说明定义查看的SELECT语句不会是SELECTINTO语句.定义查看的SELECT语句不会包含任何参量.查看名不会和当前表名相同.如果SELECT语句定义的查询可更新,则查看也可更新.否则查看为只读的.如果SELECT语句定义的两个字段名相同,视图定义应包括一个标明查询中各字段名的字段表.
请参阅ADDUSER语句ALTERUSER或DATABASE语句ALTERTABLE语句CONSTRAINT子句CREATEINDEX语句CREATEPROCEDURE语句CREATEUSER或GROUP语句CREATETABLE语句DROP语句DROPUSER或GROUP语句GRANT语句REVOKE语句
ADDUSER语句
在一个当前组中添加一个或更多当前用户.
语法
ADDUSER用户[,用户,匽TO组
UPDATE语句可分为以下几个部分:
部分
说明被加到工作组信息文件的用户名.被加到工作组信息文件的组名.
用户组
说明一旦一个用户被添加到组中,这个用户就具有了组所具有的权限.
请参阅ALTERUSER或DATABASE语句ALTERTABLE语句CONSTRAINT子句CREATEINDEX语句CREATEPROCEDURE语句CREATETABLE语句CREATEUSER或GROUP语句CREATEVIEW语句DROP语句DROPUSER或GROUP语句GRANT语句REVOKE语句
DROPUSER或GROUP语句
删除一个或更多当前用户或组,或从一个当前组中清除一个或更多用户.
语法删除一个或更多用户或从一个组中清除一个或更多用户.DROPUSER用户[,用户,匽[FROM组]删除一个或更多组:
DROPGROUP组[,组,匽
DROPUSER或GROUP语句有下列部分:
部分
说明从工作组信息文件中清除的用户的名称.从工作组信息文件中清除的组的名称.
用户组
说明如果FROM关键词被用于DROPUSER语句,语句中列出的每一个用户会被从FROM关键词下面标明的组中清除.但用户本身不被删除.TheDROPGROUP语句会删除标明的组.作为组的成员的用户不会受影响,但也不再是已删除的组的成员了.
请参阅ADDUSER语句ALTERUSER或DATABASE语句ALTERTABLE语句CONSTRAINT子句CREATEINDEX语句CREATEPROCEDURE语句CREATETABLE语句CREATEUSER或GROUP语句CREATEVIEW语句DROP语句GRANT语句REVOKE语句
ALTERTABLE语句
修改已用CREATETABLE语句创建好的表设计.
注意对于非微软数据库,MicrosoftJet数据库引擎不支持ALTERTABLE,或数据定义语言(DDL)语句的使用.而使用DAO创建方法.而DAO创建方法.创建方法
语法
ALTERTABLE表{ADDADD{COLUMN字段类型[(字长)][NOTNULL]ALTERCOLUMN字段类型[(字长)]|CONSTRAINT多重字段索引}|DROPDROP{COLUMN字段ICONSTRAINT索引名}}ALTERTABLE语句分为以下几个部分:
[CONSTRAINT索引]|
部分
说明欲修改的表之名称.欲在表内增加或删除的字段的名称.或表内欲被替换的字段名称.
tablefieldtypesizeindexmultifieldindex
字段的数据类型.
字段的字符长度(文本及二进制字段).
字段索引.欲了解更多有关如何构造本索引的信息,请看CONSTRAINT子句CONSTRAINT子句子句.
欲增加至表中的多重字段索引的定义.欲了解更多有关如何构造本索引的信息,请看CONSTRAINT子句子句.CONSTRAINT子句欲删除的多重字段索引的名称.
indexname
说明使用ALTERTABLE语句,可用多种不同方法更改当前已存在的表:你可以:
_
使用ADDCOLUMN在表中添加新的字段.需要指定字段名,数据类型,还可以(对文本和二进制字段)指定长度.例如,下列语句在员工表中增加一25个字符的,名为Notes的文本字段:ALTERTABLEEmployeesADDCOLUMNNotesTEXT(25)也可以定义此字段的索引.关于单一字段索引的详细信息,请参阅CONSTRAINT子句CONSTRAINT子句主题.如果对一字段指定NOTNULL,则在这字段中添加的新记录必须有有效的数据.
_使用ALTERCOLUMN改变一个当前字段的数据类型,需要指定字段名,新数据类型,还可以(对文本和二进制字段)指定长度.例如,下列语句把雇员表中一个字段的数据类型,被称为ZipCode(最初被定义为整数),改变成一个10字符文本字段:ALTERTABLEEmployeesALTERCOLUMNZipCodeTEXT(10)
___
使用ADDCONSTRAINT添加多重字段索引.关于多重字段索引的详细信息,请参阅CONSTRAINT子句子句主题.使用DROPCOLUMN删除字段.只要指定欲删除的字段名即可.使用DROPCONSTRAINT删除多重字段索引.只要在CONSTRAINT保留字后面指定索引名即可.注意
__
不能同时添加或删除一个以上的字段或索引.你可以使用CREATEINDEX语句在一个表中增加一个单字段或多重字段,你还可以使用ALTERTABLE或DROP语句删除一个由ALTERTABLE或CREATEINDEX建立的索引.
_
可以在单一字段上使用NOTNULL,或在用于单一字段或多重字段(名为CONSTRAINT)的CONSTRAINT子句中使用NOTNULL.但是,一个字段只能使用一次NOTNULL限制.尝试多次应用此限制将导致运行错误.
请参阅ADDUSER语句ALTERUSER或DATABASE语句CONSTRAINT子句CREATEINDEX语句CREATEPROCEDURE语句CREATETABLE语句CREATEUSER或GROUP语句CREATEVIEW语句DROP语句DROPUSER或GROUP语句GRANT语句REVOKE语句
示例ALTERTABLE语句示例
ALTERUSER或DATABASE语句
改变当前用户或数据库的口令.
语法ALTERDATABASEPASSWORD新口令旧口令ALTERUSER用户PASSWORD新口令旧口令
CREATEINDEX语句可分为以下几个部分:
部分
说明被加到工作组信息文件的用户名.与特定用户名或组名关联的口令.与特定用户名或组名关联的口令.
用户新口令旧口令
请参阅
ADDUSER语句ALTERTABLE语句CONSTRAINT子句CREATEINDEX语句CREATEPROCEDURE语句CREATETABLE语句
CREATEUSER或GROUP语句CREATEVIEW语句DROP语句DROPUSER或GROUP语句GRANT语句REVOKE语句
CONSTRAINT子句
限制和索引相似,虽然限制也能被用于建立和另一个表的关联.用ALTERTABLE和CREATETABLE语句中的CONSTRAINT子句来建立或删除条件.CONSTRAINT子句可分为两种类型:第一种是在单一字段上创建条件;第二种是在一个以上的字段上创建条件.
数据库引擎并不支持使用CONSTRAINT,或任何非MicrosoftJET数据库的数据定义语注意MicrosoftJet数据库引擎言(DDL)语句.而使用DAO创建方法.
语法单一字段条件:CONSTRAINT名{PRIMARYKEY|UNIQUE|NOTNULL|REFERENCES外部表[(外部字段1,外部字段2)][ONUPDATECASCADE|SETNULL][ONDELETECASCADE|SETNULL]}多重字段条件:CONSTRAINT名CONSTRAINTname{PRIMARYKEY(primary1[,primary2[,...]])||UNIQUE(unique1[,unique2[,...]])||NOTNULL(notnull1[,notnull2[,...]])|FOREIGNKEY[NOINDEX](ref1[,ref2[,...]])REFERENCESforeigntable[(foreignfield1[,foreignfield2[,...]])]}
[ONUPDATECASCADE|SETNULL][ONDELETECASCADE|SETNULL]}子句可分为以下几个部分:
部分
说明欲创建的条件的名称.被指定为主键.的字段名.欲设计成为唯一键的一个或多个字段之名称.被限制为非Null值的字段的名称.涉及到另一个表中的字段的外部键字段名包含由外部字段注明的字段的外部表名.由ref1,ref2指定的foreigntable中的字段的名称.如果引用的字段是foreigntable的主键,则可省略此子句.
nameprimary1,primary2unique1,unique2notnull1,notnull2ref1,ref2foreigntableforeignfield1,foreignfield2
说明紧接在字段的数据类型规格之后,在ALTERTABLE或CREATETABLE语句的字段定义子句中,使用单一字段条件之语法.只要在ALTERTABLE或CREATETABLE语句的字段定义子句之外使用保留字CONSTRAINT,就可以使用多重字段条件之语法.使用CONSTRAINT,可以将字段设计为如下的条件类型之一:
__
可以使用UNIQUE保留字将字段设计为唯一键.这意味着在同一个表中没有两个记录的这个字段的值是相同的.可以强制任何字段或字段列表为唯一的.如果多重字段条件被设计成唯一键,在索引之中的所有字段的组合值必须也是唯一的,即使在这些字段之中有两个或两个以上的记录有相同的值.可以用PRIMARYKEY保留字,将表中的字段或一组字段设计为主键.在主键之中所有的值必须是唯一的,且不可为NullNull,一个表只能有一个主键.注意在一个已经设有主键的表中,不能再设置PRIMARYKEY条件,否则会发生错误.
_
您可以使用FOREIGNKEY保留字将一个字段设置为外部键.如果外部表的主键是由一个以上的字段所组成,则必须使用多重字段条件定义,列出全部的引用字段,外部表名,以及以列出引用字段相同的顺序在外部表中列出引用字段的名称.若所引用的字段是外部表的主键,则无须指定所引用的字段.根据默认,数据库引擎在认为外部表的主键是所引用字段的情况下执行操作.外部键条件限定具体的活动在一个相应的主键值被改变时来执行:
_
你可以指定外部表上执行的活动,此活动基于一个在定义了CONSTRAINT的表中主键上执行的相应的活动.例如,考虑以下对"客户"表的定义CREATETABLECustomers(CustIdINTEGERPRIMARYKEY,CLstNmNCHARVARYING(50))
考虑表的以下定义,定义外部键与Customers表的主键关系的顺序为:CREATETABLEOrders(OrderIdINTEGERPRIMARYKEY,CustIdINTEGER,OrderNotesNCHARVARYING(255),CONSTRAINTFKOrdersCustIdFOREIGNKEY(CustId)REFERENCESCustomersONUPDATECASCADEONDELETECASCADEONUPDATECASCADE和ONDELETECASCADE子句都定义于外部键上.ONUPDATECASCADE子句的含义是:如果用户的标识符(CustId)在用户表中更新,此更新将通过顺序表级联.各个含有相应用户标识符值的顺序随着新值自动更新.ONDELETECASCADE子句的含义是:如果一个用户被从用户表中删除,顺序表中所有包含同样用户标识符值的位序也会被删除.考虑到表中下列不同的定义,用SETNULL活动代替CASCADE活动的顺序为:CREATETABLEOrders(OrderIdINTEGERPRIMARYKEY,CustIdINTEGER,OrderNotesNCHARVARYING(255),CONSTRAINTFKOrdersCustIdFOREIGNKEY(CustId)REFERENCESCustomersONUPDATESETNULLONDELETESETNULLONUPDATESETNULL子句的含义是:如果用户的标识符(CustId)在用户表中更新,顺序表中相应的外部键值将会被自动设为NULL.相似地,ONDELETESETNULL子句的含义是:如果一个用户被从用户表中删除,顺序表中所有相应的外部键将会被自动设为NULL.为阻止外部键索引的自动生成,可使用变址器NOINDEX.这一形式的外部键定义仅用于经常要复制形成索引值的情况.在外部键索引中的数值经常被复制的场合,使用索引不如直接进行表搜索有效.对这种索引和表中插入和删除的行列的维护会降低性能,没有任何好处.
请参阅ADDUSER语句ALTERUSER或DATABASE语句ALTERTABLE语句CREATEINDEX语句CREATEPROCEDURE语句CREATETABLE语句CREATEUSER或GROUP语句CREATEVIEW语句DROP语句DROPUSER或GROUP语句GRANT语句REVOKE语句
示例CREATETABLE语句,CONSTRAINT子句示例
DROP语句
从数据库中删除已存在的表,或从表中删除已存在的索引.
注意对于非微软数据库,MicrosoftJet数据库引擎不支持DROP或DDL语句的使用.应采用DAODelete方法..
语法DROP{TABLE表|INDEX索引ON表|PROCEDUREprocedure|VIEWview}这DROP语句分为以下几个部分:
部分
说明欲删除的表的名称,或欲删除的索引所在的表的名称.欲创建的表的名称.欲创建的表的名称.欲从表中删除的索引的名称.
table过程viewindex
说明必须先关闭表,然后才能删除此表或此表中的索引.也可以使用ALTERTABLE语句来删除表中的索引.也可以用CREATEINDEX或ALTERTABLE建立一个索引.使用ALTERTABLE你可以用CREATETABLE建立一个表,修改表.
请参阅ADDUSER语句ALTERUSER或DATABASE语句ALTERTABLE语句CONSTRAINT子句CREATEINDEX语句CREATEPROCEDURE语句CREATEUSER或GROUP语句CREATETABLE语句CREATEVIEW语句DROPUSER或GROUP语句GRANT语句REVOKE语句
示例DROP语句示例
GRANT语句
赋予当前用户或组特权.
语法GRANT{特权[,特权,匽}ON{TABLE表|OBJECT对象|CONTAINER}TO{特许名称[,特许名称,匽}
这DROP语句分为以下几个部分:
部分
说明赋予的特权.用下列关键词标明特权:SELECT,DELETE,INSERT,UPDATE,DROP,SELECTSECURITY,UPDATESECURITY,DBPASSWORD,UPDATEIDENTITY,CREATE,SELECTSCHEMA,SCHEMA和UPDATEOWNER.
特权
表名对象包容器特许名称
任何有效的表名.它可以包括任何非表对象.已存储的查询(表或过程)就是一个例子.有效包容器的名称.用户名或组名
请参阅ADDUSER语句ALTERUSER或DATABASE语句ALTERTABLE语句CONSTRAINT子句CREATEINDEX语句CREATETABLE语句CREATEUSER或GROUP语句CREATEVIEW语句DROP语句DROPUSER或GROUP语句
CREATEPROCEDURE语句
REVOKE语句
REVOKE语句
从当前用户或组中取消.特权.
语法REVOKE{特权[,特权,匽}ON{TABLE表|OBJECT对象|CONTAINER}FROM{特许名称[,特许名称,匽}
UPDATE语句可分为以下几个部分:
部分
说明被取消的特权.用下列关键词标明特权:SELECT,DELETE,INSERT,UPDATE,DROP,SELECTSECURITY,UPDATESECURITY,DBPASSWORD,UPDATEIDENTITY,CREATE,SELECTSCHEMA,SCHEMA和UPDATEOWNER.
特权
tableobject包容器特许名称
任何有效的表名.它可以包括任何非表对象.已存储的查询(表或过程)就是一个例子.有效包容器的名称.用户名或组名
请参阅ADDUSER语句ALTERUSER或DATABASE语句ALTERTABLE语句CONSTRAINT子句CREATEINDEX语句CREATETABLE语句CREATEUSER或GROUP语句CREATEVIEW语句DROP语句DROPUSER或GROUP语句
CREATEPROCEDURE语句
GRANT语句
SELECT语句
命令MicrosoftJet数据库引擎从数据库里返回信息,作为一组记录.
语法SELECT[predicate]{*|table.*|[table.]field1[ASalias1][,[table.]field2[ASalias2][,...]]}FROMtableexpression[,...][IN外部数据库][WHERE...]][GROUPBY...]][HAVING...]][ORDERBY...]][WITHOWNERACCESSOPTION]SELECT语句具有以下几个部分:
部分
说明下列谓词之一:ALL,DISTINCT,DISTINCTROW,或TOP.您可用谓词来限制返回的记录数量.如果没有指定谓词,则默认值为ALL.从特定的表中指定全部字段.表的名称,此表中包含已被选择的记录的字段.字段的名称,该字段包含了您要获取的数据.如果数据包含多个字段,则按列举顺序依次获取它们.名称,用来作列标头,以代替table.中原有的列名.表的名称,这些表包含要获取的数据.数据库的名称,该数据库包含tableexpression中的表,如果这些表不在当前数据库中的话.
predicate
*tablefield1,field2
alias1,alias2tableexpressionExternaldatabase
说明
为完成此运算,MicrosoftJet数据库引擎会搜索指定的表,抽出所选择的列,并选择满足条件的行,并按指定的顺序对选出的行排序,或将它们分组.SELECT语句不会更改数据库的中的数据.SELECT通常是SQL语句.大部分SQL语句或者是SELECT语句,或者是SELECT...INTO语句.SELECT语句的最短的语法是:SELECTfieldsFROMtable可以用一个星号(*)选取表中所有字段.下例选择了雇员表中的全部字段:SELECT*FROMEmployees;如果FROM子句中有多个表包含字段名,则字段之前为表名称和.(点)操作符.在以下示例中,「部门」字段将出现在雇员表及超级用户表中.SQL语句将从雇员表和超级用户表来选择部门:SELECTEmployees.Department,Supervisors.SupvNameFROMEmployeesINNERJOINSupervisorsWHEREEmployees.Department=Supervisors.Department;当Recordset对象被创建时,MicrosoftJet数据库引擎把表的字段名作为Recordset对象中的Field对象命名.如果想要一个不同的字段名,或想要一个不是由生成字段的表达式导出的名,则使用AS保留字.在下例所得到的Recordset对象中用Birth标题将返回的Field对象命名:SELECTBirthDateASBirthFROMEmployees;无论何时使用合计函数或查询,而且该查询返回含糊的或重复的Field对象名称,都必须用AS子句来提供Field对象的替代名称.在以下示例所得到的Recordset对象中用HeadCount标题将返回的Field对象命Recordset名:SELECTCOUNT(EmployeeID)ASHeadCountFROMEmployees;可使用SELECT语句中的其它子句进一步限制和组织已返回的数据.若需更多信息,参见所用子句的主题帮助.
请参阅ALL,DISTINCT,DISTINCTROW,TOP谓词DELETE语句(MicrosoftJetSQL)FROM子句(MicrosoftJetSQL)GROUPBY子句(MicrosoftJetSQL)HAVING子句(MicrosoftJetSQL)IN子句(MicrosoftJetSQL)INSERTINTO语句(MicrosoftJetSQL)ORDERBY子句(MicrosoftJetSQL)SELECT...INTO语句(MicrosoftJetSQL)SQL合计函数(SQL)UNION运算(MicrosoftJetSQL)UPDATE语句(MicrosoftJetSQL)WHERE子句(MicrosoftJetSQL)WITHOWNERACCESSOPTION声明(MicrosoftJetSQL)
示例
SELECT语句,FROM子句示例
SELECT...INTO语句
创建制表检索.
语法SELECTfield1[,field2[,...]]INTO新表[IN外部数据库]FROM源SELECT...INTO语句可分为以下几个部分:
部分
说明欲复制至新表的字段的名称.欲创建的表的名称.它应遵循标准命名公约.如果NewTable的名称与现存表的名称相同时,将会发生可以捕捉到的错误.进入外部数据库的路径.有关路径的描述,请参阅IN子句.从其中选择记录的现存表的名称.它可以是单一表或多重表或一个查询.
field1,field2NewTable
Externaldatabasesource
说明可以使用生成表查询来存档记录,生成表的复制备份,或生成输出至另一个数据库的表的副本,或用作定期显示数据的报表的依据.例如,可以每月运行一次同样的生成表查询,生成地区的销售月报.
注意
___
或许你想要为新表定义一个主键.创建新表时,新表中的字段将继承查询基本表中每一个字段的数据类型及大小,但不传递其他的字段或表属性.使用INSERTINTO语句而不用创建追加检索来把数据加入当前表中.在运行生成表查询之前,若要知道会选择哪些记录,可以先看一看使用相同选择条件的SELECT语句的结果.
请参阅ALL,DISTINCT,DISTINCTROW,TOP谓词(MicrosoftSELECT语句(MicrosoftJetSQL)JetSQL)
FROM子句(MicrosoftJetSQL)IN子句(MicrosoftJetSQL)INSERTINTO语句(MicrosoftJetSQL)
UNION运算(MicrosoftJetSQL)WHERE子句(MicrosoftJetSQL)
示例SELECT...INTO语句示例
INSERTINTO语句
添加一个或多个记录至一个表.这叫作追加查询.
语法多重记录追加查询:INSERTINTOtarget[(field1[,field2[,...]])][IN外部数据库]SELECTfield1[,field2[,...]]FROMtableexpression单一记录追加查询:INSERTINTOtarget[(field1[,field2[,...]])]VALUES(value1[,value2[,...])INSERTINTO语句可分为以下几个部分:
部分
说明欲追加记录的表或查询的名称.如果后面跟的是target参数,则为要追加数据的字段名;如果后面跟的是source参数,则为从其中获得数据的字段名.进入外部数据库的路径.有关路径的描述,请参阅IN子句.复制记录的来源表或查询的名称.从其中得到要插入的记录的表名.这个变元可能是一个单一的表名,也可能是一个由
targetfield1,field2
Externaldatabasesourcetableexpression
INNERJOIN,LEFTJOIN或RIGHTJOIN运算组成的复合体,或是一个储存的查询.
value1,value2
欲插入新记录的特定字段的值.每一个值将依照它在列表中的位置,顺序插入相关字段:value1将被插入至追加记录的field1之中,value2插入至field2,依此类推.必须使用逗点将这些值分隔,并且将文本字段用引号('')括起来.
说明可以使用INSERTINTO语句来添加一个单一记录至一个表中,如以上所示使用单一记录追加查询语法.在这个例子中,代码指定了该记录每一字段的名称和值.必须指定追加数值的记录的每一个字段和那个字段的值.如果您没有指定每一个字段时,缺省值或Null值将被插入至没有数据的字段之中.这些记录将被添加至表的尾部.通过使用SELECT...FROM子句如以上所示的多重记录追加查询语法,也可以从另一表或查询使用INSERTINTO追加一组记录.在这个示例中,SELECT子句将指定追加字段至指定的target表.
source或target表可以指定一个表或查询.如果查询被指定,MicrosoftJet数据库引擎会把记录追加到由该查询指定的所有表中.
INSERTINTO是可选的,但当使用时,请置於SELECT语句之前.如果你的目标表包含一个主键,,你一定要把唯一的非Null值追加到主键字段中,否则MicrosoftJet数据库引擎不会追加记录.如果你要把把记录追加到带有AutoNumber字段的表中,还想重编追加的记录,请不要在你的查询中包含AutoNumber字段.如果您要保持字段中的原始值,请将自动编号加在您的查询之中.使用IN子句,可追加记录至另一个数据库中的表.要创建新表请用SELECT...INTO语句代替制表查询的创建.若要在运行追加查询之前找出哪些记录是被追加的,首先执行和查阅一个使用相同的选择条件之选定查询所获得的结果.追加查询为从一个或多个表中复制记录至另一个表.您追加的表包含记录将不会被追加查询所影响.除了从另一表中来追加现存的记录,可以指定在单一追加记录之中使用VALUES子句来指定对每一字段的值.如果您省略字段列表,VALUES子句在表之中必须包含每一字段的值;否则,INSERT运算将会失败.使用额外的INSERTINTO语句与一个VALUES子句来创建您要的每一个额外的记录.
请参阅FROM子句(MicrosoftJetSQL)IN子句(MicrosoftJetSQL)INNERJOIN运算(MicrosoftJetSQL)LEFTJOIN,RIGHTJOIN运算(MicrosoftJetSELECT语句(MicrosoftJetSQL)SELECT...INTO语句(MicrosoftJetSQL)WHERE子句(MicrosoftJetSQL)
SQL)
示例INSERTINTO语句示例
UPDATE语句
创建更新查询来改变基于特定准则的指定表中的字段值.
语法UPDATE表SET新值WHERE准则;UPDATE语句可分为以下几个部分:
部分
说明表的名称,其中包含要更改的数据.表达式,用来计算要插入更新记录中特定字段的值.表达式,用来计算被更新的记录.只有符合表达式的记录才会被更新.
tablenewvaluecriteria
说明当需要更改多个记录,或要更改的记录在多重表中时,UPDATE特别有用.可以同时更改多个字段.下列示例为对联合王国的一家公司增加10%的OrderAmount(订货量)和3%的Freight(货运):UPDATEOrdersSETOrderAmount=OrderAmount*1.1,Freight=Freight*1.03WHEREShipCountry='UK';重点
__
UPDATE不生成结果集.而且当使用更新查询更新记录之后,不能取消这次操作.如果想知道哪些记录被更新,先看一下使用相同的条件的选定查询的结果,然后运行更新查询.随时注意维护数据的复制备份.如果更新了错误记录,可从备份副本中恢复这些数据.
请参阅SELECT语句(MicrosoftJetSQL)WHERE子句(MicrosoftJetSQL)
示例UPDATE语句示例
DELETE语句
创建一个删除查询把记录从FROM子句列出并符合WHERE子句的一个或更多的表中清除.
语法DELETE[表.*]FROM表WHERE标准DELETE语句可分为以下几个部分:
部分
说明从其中删除记录的表的可选名称.从其中删除记录的表的名称.确定删除哪个记录的表达式.
tabletablecriteria
说明可以使用DELETE删除多个记录.可以用Execute方法和DROP语句从数据库中删除整个表.不过,若用这种方法删除表,将会失去表的结构.不同的是当使用DELETE,只有数据会被删除;表的结构以及表的所有属性仍然保留,例如字段属性及索引.可以用DELETE从与其他表有着一对多关系的表中清除记录.若在一个查询中删除了关系中'一'的一方的表的相应记录,级联删除操作将删除关系中'多'的一方的表的记录.例如,在客户表与订单表之间的关系中,客户表是'一'方,而订单表是'多'方.如果指定使用级联删除,从客户数据中删除一个记录,相对应之订单记录也会被删除.删除查询不只删除指定字段之中的数据,它会删除全部的记录.如果要删除指定字段值,可创建更新查询使该
值变为NullNull.
重点
__
当使用删除查询删除记录之后,不能取消此操作.如果想要知道哪些记录已被删除,首先验证使用相同条件的选定查询的结果,然后运行删除查询.随时注意维护数据的复制备份.如果您误删除记录,可以从备份副本中将数据恢复.
请参阅DROP语句(MicrosoftJetSQL)FROM子句(MicrosoftJetSQL)IN子句(MicrosoftJetSQL)INNERJOIN运算(MicrosoftJetSQL)SELECT语句(MicrosoftJetSQL)UPDATE语句(MicrosoftJetSQL)WHERE语句(MicrosoftJetSQL)
示例DELETE语句示例
EXECUTE语句
用于激活PROCEDURE.
语法EXECUTE过程[参数1[,参数2[,...]]UPDATE语句可分为以下几个部分:
部分
说明要执行的过程名由该过程定义的参数s值
过程param1,param2
请参阅
PARAMETERS声明(MicrosoftJetSQL)
PROCEDURE子句(MicrosoftJetSQL)
示例CREATEPROCEDURE语句,PROCEDURE子句示例
TRANSACTION语句
用于启动和结束显式事务.
语法启动新事务.BEGINTRANSACTION通过提交事务期间进行的所有工作来结束事务.COMMIT[TRANSACTION|WORK]通过回滚事务期进行的所有工作来结束事务.ROLLBACK[TRANSACTION|WORK]
说明事务不会自启动.要启动事务,必须使用BEGINTRANSACTION来启动.事务可嵌套多达5层.要启动嵌套事务,使用当前事务中的BEGINTRANSACTION.连接表不支持事务.
TRANSFORM语句
创建连接查询.
语法TRANSFORM合计函数
selectstatementTRANSFORMaggfunctionselectstatementPIVOTpivotfield[IN(value1[,value2[,...]])]
TRANSFORM语句可分为以下几个部分:
部分
说明运算所选数据的SQL合计函数SELECT语句.在查询结果集中用来创建列标题的字段或表达式.用来创建列标题的固定值.
aggfunctionselectstatementpivotfieldvalue1,value2
说明使用交叉表查询来摘要数据时,从指定的字段或表达式中选定值作为列标题,这样,可以用比选定查询更紧凑的格式来观察数据.TRANSFORM是可选的,但当被包含时为SQL字符串的第一句.它出现在SELECT语句(指定作为行标题的字段的)之前,还出现在GROUPBY子句(指定行分组的)之前.可以有选择地包含其它子句,例如WHERE子句,它指定附加的选择或排序条件.也可以将子查询当作谓词,特别是在叉表查询的WHERE子句中.
pivotfield返回的值被用作查询结果集中的列标题.例如,在交叉表查询中,将根据销售图表按销售月份创建12个列.可以限制pivotfield用列在可选的IN子句中的固定值(value1,value2)来创建标题.也可以用
没有数据存在的固定值来创建附加的列.
请参阅FROM子句(MicrosoftJetSQL)GROUPBY子句(MicrosoftJetSQL)INNERJOIN运算(MicrosoftJetSQL)ORDERBY子句(MicrosoftJetSQL)SELECT语句(MicrosoftJetSQL)SQL合计函数(SQL)SQL子查询WHERE子句(MicrosoftJetSQL)
示例TRANSFORM语句示例
INNERJOIN运算
组合两个表中的记录,只要在公共字段之中有相符的值.
语法FROMtable1INNERJOINtable2ONtable1.field1compoprtable2.field2INNERJOIN运算可分为以下几个部分:
部分
说明记录被组合的表的名称.被联接的字段的名称.若它们不是由数字构成的,则这些字段必须为相同的数据类型并包含同类数据,但它们无须具有相同的名称.任何的关系比较运算子:"=,""<,"">,""<=,"">=,"或"<>."
table1,table2field1,field2
compopr
说明可以在FROM子句中使用INNERJOIN运算..这是最普通的联接类型.只要在这两个表的公共字段之中有相符值,内部联接将组合两个表中的记录.可以使用INNERJOIN与部门表及员工表选择每一个部门中的全部员工.反之,可以使用LEFTJOIN或RIGHTJOIN运算创建outerjoin,从而选择所有部门(即使有些并没有员工)或所有员工(即使有些尚未分配到部门).若试图联接包含Memo或OLEObject数据的字段,会导致错误.可以联接任何两个相同类型的数值字段.例如,可以联接AutoNumber和Long字段,因为它们类型相似.但不能联接Single和Double类型的字段.下列示例显示如何在类标识符字段联接类表及产品表:SELECTCategoryName,ProductNameFROMCategoriesINNERJOINProductsONCategories.CategoryID=Products.CategoryID;在上面的示例中,类标识符是已被联接的字段,但是它并不包含在查询输出中,因它并非被包含在SELECT语句之中.在这个示例中,若要包含联接字段,将字段名包含在SELECT语句中,Categories.CategoryID.也可以使用下列语法,在一个JOIN语句中链接多个ON子句:SELECTfieldsFROMtable1INNERJOINtable2
ONtable1.field1compoprtable2.field1ANDONtable1.field2compoprtable2.field2)ORONtable1.field3compoprtable2.field3)];也可以使用下列语法,嵌套JOIN语句:SELECTfieldsFROMtable1INNERJOIN(table2INNERJOIN[(]table3[INNERJOIN[(]tablex[INNERJOIN...)]ONtable3.field3compoprtablex.fieldx)]ONtable2.field2compoprtable3.field3)ONtable1.field1compoprtable2.field2;在一个INNERJOIN之中,可以嵌套LEFTJOIN或RIGHTJOIN,但是在LEFTJOIN或RIGHTJOIN中不能嵌套INNERJOIN.
请参阅FROM子句(MicrosoftJetSQL)LEFTJOIN,RIGHTJOIN运算(MicrosoftJetSQL)SELECT语句(MicrosoftJetSQL)TRANSFORM语句(MicrosoftJetSQL)UNION运算(MicrosoftJetSQL)
示例INNERJOIN运算示例
LEFTJOIN和RIGHTJOIN运算
用于FROM子句时,把源表记录组合起来.
语法FROM表1[LEFT|RIGHT]JOIN表2ON表1.字段1compopr表2.字段2LEFTJOIN及RIGHTJOIN运算可分为以下几个部分:
部分
说明
table1,table2field1,field2
记录被组合的表的名称.被联接的字段的名称.且这些字段必须有相同的数据类型及包含相同类型的数据,但它们不需要有相同的名称.任何的关系比较运算子:"=,""<,"">,""<=,"">=,"或"<>."
compopr
说明用LEFTJOIN运算创建左边外部联接.左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即使在第二个(右边)表中并没有相符值的记录.用RIGHTJOIN运算创建右边外部联接.右边外部联接将包含了从第二个(右边)开始的两个表中的全部记录,即使在第一个(左边)表中并没有匹配值的记录.例如,可以使用LEFTJOIN与部门(左边)及员工(右边)表来选择所有的部门,包含了没有分配到员工的部门.可以使用RIGHTJOIN选择所有的员工,包含了没有分配到部门的员工.下列示例显示如何在类标识符字段中联接类表及产品表.查询将会列出所有种类的列表,包含那些没有产品在其中的种类:SELECTCategoryName,ProductNameFROMCategoriesLEFTJOINProductsONCategories.CategoryID=Products.CategoryID;在本例中,CategoryID是联接的字段,但由于它不包含在SELECT语句中,因此,也不包含在查询结果中.要包含联接的字段,请在SELECT语句中输入字段名—在这个示例中为Categories.CategoryID.
注意欲创建只包含联接字段中数据相同的记录的查询,请用INNERJOIN运算.
__
在INNERJOIN之中可以写一个嵌套的LEFTJOIN或一个RIGHTJOIN,但是在一个LEFTJOIN或一个RIGHTJOIN之中不能写嵌套的INNERJOIN.请参阅INNERJOIN主题中有关使用嵌套的讨论,从其中可获知如何在其它联接中编写嵌套联接的信息.可以链接多个ON子句.若需更多信息,请参阅在INNERJOIN主题中的子句链接的讨论.若试图联接包含Memo或OLEObject数据的字段,会导致错误.
请参阅FROM子句(MicrosoftJetSQL)INNERJOIN运算(MicrosoftJetSQL)UNION运算(MicrosoftJetSQL)
示例LEFTJOIN和RIGHTJOIN运算示例
UNION运算
创建一个联合查询,它组合了两个或更多的独立查询或表的结果.
语法[TABLE]query1UNION[ALL][TABLE]query2[UNION[ALL][TABLE]queryn[...]]UNION运算可分为以下几个部分:
部分
说明SELECT语句,已存储的查询的名称,或冠以TABLE关键字的存储表的名称.
query1-n
说明可以在任何组合中,单一UNION运算中,合并两个或多个查询,表,及SELECT语句的结果.下列示例将名为NewAccounts的现存表和一个SELECT语句合并:TABLE[NewAccounts]UNIONALLSELECT*FROMCustomersWHEREOrderAmount>1000;按照缺省规定,使用UNION运算时不返回重复的记录;然而,可以包含ALL谓词来确保返回所有的记录.这样,运行查询的速度也会快些.一次UNION运算中的所有查询必须要求相同的字段数量;但是,字段无须具有相同的大小或数据类型.只能在第一个SELECT语句中使用别名,因为它们在其他语句中已被省略.在ORDERBY子句中,可引用在第一个SELECT语句中被调用的字段名.
注意
__
可以在各个查询变元中使用GROUPBY或HAVING子句来为返回的数据分组.要想以指定的顺序来显示返回的数据,可以在最后一个query参数的末尾使用ORDERBY子句.
请参阅ALL,DISTINCT,DISTINCTROW,TOP谓词(MicrosoftORDERBY子句(MicrosoftJetSQL)JetSQL)
GROUPBY子句(MicrosoftJetSQL)HAVING子句(MicrosoftJetSQL)INNERJOIN运算(MicrosoftJetSQL)LEFTJOIN,RIGHTJOIN运算(MicrosoftJetSQL)
SELECT语句(MicrosoftJetSQL)SQL子查询WHERE子句(MicrosoftJetSQL)
示例UNION运算示例
PARAMETERS声明
把参数的名称和数据类型在参数查询中说明.
语法PARAMETERSnamedatatype[,namedatatype[,...]]PARAMETERS声明有这些部分:
部分
说明参数的名称.具有NameName特性(此特性属于ParameterParameter对象),并被用于在ParametersParameters中标NameParameters识此参数.当应用程序运行查询时,可用name作为字符串显示在对话框中.包含空格或标点符号的文本应用方括号([])括起来.例如,[Lowprice]及[Beginreportwithwhichmonth?]都是有效的name参数.基本MicrosoftJetSQL数据类型或其同义字之一.
name
datatype
说明对于有规则运行的查询,可用PARAMETERS声明创建一个参数查询.参数查询便于自动更改查询准则.对于参数查询,代码必须提供每次查询运行时使用的参数.PARAMETERS声明是可选的,但是当使用时,须置於任何其他语句之前,包括SELECT语句.如果声明包含一个以上的参数,用逗点将它们分隔.下列示例中声明了两个参数:PARAMETERS[Lowprice]Currency,[Beginningdate]DateTime;
在WHERE或HAVING子句中可以使用name,但不能用数据类型.下列示例中要提供两个参数,然后使用这个条件来查询Orders表中的记录.PARAMETERS[Lowprice]Currency,[Beginningdate]DateTime;SELECTOrderID,OrderAmountFROMOrdersWHEREOrderAmount>[Lowprice]ANDOrderDate>=[Beginningdate];请参阅EXECUTE语句(MicrosoftJetSQL)HAVING子句(MicrosoftJetSQL)MicrosoftJet数据库引擎SQL的数据类型SELECT语句(MicrosoftJetSQL)WHERE子句(MicrosoftJetSQL)
示例PARAMETERS声明示例
WITHOWNERACCESSOPTION声明
在具有安全工作组的多用户环境中,使用该声明和查询给运行该查询的用户与查询所有者相同的权限.
语法
sqlstatement
WITHOWNERACCESSOPTION;
说明WITHOWNERACCESSOPTION声明是可选的.下列示例使用户能够查看工资信息(即使用户没有权限查看工资表),提供查询主人拥有的权限:SELECTLastName,FirstName,SalaryFROMEmployeesORDERBYLastNameWITHOWNERACCESSOPTION;如果用户无法创建表或添加,可使用WITHOWNERACCESSOPTION来运行制表或追加查询.如果要强制工作组安全性设置及用户的权限,不要包含WITHOWNERACCESSOPTION声明.
此选项要求您必须访问与该数据库相关的System.mdw文件.它只在安全的多用户实现中才真正有用.
请参阅SELECT语句(MicrosoftJetSQL)
PROCEDURE子句
给查询定义一个名称和可选参数s.
注意:语句取代.注意:PROCEDURE子句已被PROCEDURE语句取代.尽管PROCEDURE子句仍受支持,但PROCEDURE语句会提供PROCEDURE子句容量的超集,而且语句也是推荐语法.
语法PROCEDUREname[param1datatype[,param2datatype[,...]]PROCEDURE子句可分为以下几个部分:
部分
说明过程的名称.它应遵循标准命名公约.一个或更多的字段名或参数.例如:PROCEDURESales_By_Country[BeginningDate]DateTime,[EndingDate]DateTime;欲知更多参数信息,请看参数.
nameparam1,param2
datatype
基本MicrosoftJetSQL数据类型或其同义字之一.
说明由PROCEDURE子句(指定过程名称的),可选的参数定义列表和单个SQL语句组成的SQL过程.例如,过程Get_Part_Number可以运行一个检索指定部分的号码的查询.
注意
__
如果子句包含一个以上的字段定义(即,param-datatype对),用逗点将它们分隔.PROCEDURE子句应后接SQL语句(如SELECT或UPDATE语句).
请参阅DELETE语句(MicrosoftJetSQL)EXECUTE语句(MicrosoftJetSQL)MicrosoftJet数据库引擎SQL的数据类型PARAMETERS声明(MicrosoftJetSQL)SELECT语句(MicrosoftJetSQL)UPDATE语句(MicrosoftJetSQL)
示例CREATEPROCEDURE语句,PROCEDURE子句示例
SQL子查询
子查询是一个SELECT语句,它嵌套在一个SELECT,SELECT...INTO语句,INSERT...INTO语句,DELETE语句,或UPDATE语句或嵌套在另一子查询中.
语法可用三种语法来创建子查询:
comparison[ANY|ALL|SOME](sqlstatement)expression[NOT]IN(sqlstatement)
[NOT]EXISTS(sqlstatement)子查询可分为以下几个部分:
部分
说明一个表达式及一个比较运算符,将表达式与子查询的结果作比较.用以搜寻子查询结果集的表达式.SELECT语句,遵从与其他SELECT语句相同的格式及规则.它必须括在括号之中.
comparisonexpressionsqlstatement
说明可以拿子查询代替表达式用于SELECT语句字段表或WHERE或HAVING子句.在子查询之中,在WHERE或
HAVING子句的表达式中,用于计算的特定值是由SELECT语句提供的.使用ANY或SOME谓词,它们是同义字,来检索主查询中的记录,这些记录要满足在子查询中检索的任何记录的比较条件.下列示例将返回全部单价比任何以25%或更高的折扣卖出的产品高的产品:SELECT*FROMProductsWHEREUnitPrice>ANY(SELECTUnitPriceFROMOrderDetailsWHEREDiscount>=.25);使用ALL谓词只检索主查询中的这些记录,它们满足在子查询中检索的所有记录的比较条件.如果将前一个示例中的ANY改为ALL,查询只会返回单价比全部以25%或更高的折扣卖出的产品高的产品.这是更多的限制.用IN谓词,只能在主查询检索那些记录,在子查询中的某些记录也包含和它们相同的值.下列示例返回有25%或更高的折扣的所有产品:SELECT*FROMProductsWHEREProductIDIN(SELECTProductIDFROMOrderDetailsWHEREDiscount>=.25);相反,可用NOTIN在主查询中检索那样的记录,在子查询中没有包含与它们的值相同的记录.在true/false比较中使用EXISTS谓词(与可选的NOT保留字一道)来决定子查询是否会返回任何记录.还可用子查询中的表名别名来查询子查询外的FROM子句的列表.下列示例返回工资等于或高于所有职位相同员工的平均工资的员工.这张员工表的别名为"T1":SELECTLastName,FirstName,Title,SalaryFROMEmployeesAST1WHERESalary>=(SELECTAvg(Salary)FROMEmployeesWHERET1.Title=Employees.Title)OrderbyTitle;上例中AS保留词可选.某些子查询在交叉表查询中是允许的,特别是谓词(那些在WHERE子句中的).将子查询作为输出(那些列在SELECT中的)在交叉表查询中是不允许的.
请参阅ALL,DISTINCT,DISTINCTROW,TOP谓词(MicrosoftSELECT语句(MicrosoftJetSQL)JetSQL)DELETE语句(MicrosoftJetSQL)HAVING子句(MicrosoftJetSQL)INNERJOIN运算(MicrosoftJetSQL)INSERTINTO语句(MicrosoftJetSQL)LEFTJOIN,RIGHTJOIN运算(MicrosoftJetSQL)SELECTINTO语句(MicrosoftJetSQL)UNION运算(MicrosoftJetSQL)UPDATE语句(MicrosoftJetSQL)WHERE子句(MicrosoftJetSQL)
示例SQL子查询示例
定制MicrosoftJet的Windows注册表设置
注意如果应用程序使用MicrosoftJet数据库引擎数据库引擎的缺省功能而不能正常工作,可能必须更改Windows注册表的设置来满足需要.Windows注册表也可用来调整可安装ISAM和ODBC驱动程序的操作.
有三种方式可以用来修改Windows注册表的设置.使用Regedit.exe来改写默认设置在应用程序的注册表树中创建一个部分来管理设置从DAO中使用SetOption方法使用MicrosoftOLEDBProviderforJet中的连接属性
也可以编辑Windows注册表来指定下列各项:
_____
用来和MicrosoftFoxPro,MicrosoftExcel,Lotus,Paradox,和dBASE数据库作交互的设置.参看初始化Paradox数据库驱动程序初始化MicrosoftExcel驱动程序,初始化Lotus驱动程序,and初始化dBASE数据库驱动程序.MicrosoftODBC用来和SQL数据库交互的设置.参看初始化MicrosoftODBC数据库驱动程序.影响MicrosoftJet数据库引擎读入和保存数据的设置.参看初始化MicrosoftJet2.5数据库引擎驱动程序,初始化MicrosoftJet3.5数据库引擎驱动程序和初始化MicrosoftJet4.0数据库引擎驱动程序.用来控制MicrosoftJet数据库引擎如何和Internet与MicrosoftExchange交互的设置.参看初始化Text和HTMLDataSource驱动程序和初始化MicrosoftExchangeDataSource驱动程序.用来控制MicrosoftJet数据库引擎如何和导入成常规文本的数据交互的设置.参看初始化Text和HTMLDataSource驱动程序.请参阅初始化dBase数据库驱动程序初始化Lotus驱动程序为ODBC访问配置MicrosoftJet数据库引擎初始化Paradox数据库的驱动程序
初始化MicrosoftJet2,5数据库引擎的驱动程初始化Text和HTMLDataSource驱动程序序初始化MicrosoftJet3.5数据库引擎驱动程序初始化MicrosoftExchangeDataSource驱动程序
初始化MicrosoftJet4.0数据库引擎驱动程序初始化MicrosoftExcel驱动程序
初始化dBASE数据库的驱动程序
当安装dBASE数据库的驱动程序时,设置程序会在引擎的Windows注册表和ISAM格式子键写入一些缺省值.不要直接修改这些设置;请使用应用程序的设置程序来添加,删除,或更改这些设置.下列的部分描述dBASE数据库驱动程序的初始化和ISAM格式设置.Paradox数据库驱动程序在两种模式中的哪一种下工作取决于是否安装了Borland数据库引擎(BDE).Paradox数据在BDE存在时才是可维护的.BDE不存在时,Paradox数据可能被读,导出或连接到只读方式.
dBASE初始化设置Jet\3.5\Engines\Xbase文件夹包含用来访问外部dBASE数据源的Msxbse35.dll驱动程序的初始化设置.文件夹中项目的典型设置显示於下列示例.win32=
\msxbde40.dllNetworkAccess=OnPageTimeout=600INFPath=C:\DBASE\SYSTEMCollatingSequence=ASCIIDataCodePage=OEMDeleted=OnDbcsStr=OnCentury=OffDate=MDYMark=47Exact=OffTheMicrosoftJet数据库引擎使用如下的Xbase文件夹项目.
项目win32
说明Msxbse35.dll的位置.这个完整路径在安装时就已确定.在Windows95和WindowsNT4.0中的值是字符串类型,而在WindowsNT3.51中是REG_SZ类型.文件锁定首选项的二进制指示器.如果NetworkAccess设为00,表将被打开为独占访问,不管OpenDatabase和OpenRecordset方法中exclusive参数的设置是多OpenDatabase少.缺省值是01.在Windows95和WindowsNT4.0中的值是二进制类型,而在WindowsNT3.51中是REG_BINARY类型.从数据放在内部高速缓冲时起,到它变为无效之间的时间长度.此数值以100毫秒为单位.缺省值是600个单位或60秒.在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.到.inf文件目录的完整路径.MicrosoftJet数据库引擎首先在包含该表的目录中查找.inf文件.如果.inf文件不在数据库目录中,它会在INFPath中查找.如果没有INFPath,它会使用在数据库目录中找出的任意索引文件(.cdx或.mdx).在Windows95和WindowsNT4.0中的值是字符串类型,而在WindowsNT3.51中是REG_SZ类型.
NetworkAccess
PageTimeout
INFPath
此项目没有被安装过程写入.CollatingSequence该设置只用于BDE不存在时.使用MicrosoftJet数据库引擎创建或打开的所有dBASE表的排序序列.可能的值为ASCII和International.缺省值是ASCII.在Windows95和WindowsNT4.0中的值是字符串类型,而在WindowsNT3.51中是REG_SZ类型.DataCodePage该设置只用于BDE不存在时.如何存储文本页的指示器.可能的设置是:OEM:OEM-执行OemToAnsi和AnsiToOem转换.ANSI:ANSI—不执行OemToAnsi和AnsiToOem转换.OEM为缺省值.Windows95和WindowsNT4.0中的值是字符串类型,在而在WindowsNT3.51中是REG_SZ类型.Deleted用以决定MicrosoftJet数据库引擎如何处理已标记为删除的记录的二进制指示器.01值对应dBASE的SETDELETEDON命令,且指示MicrosoftJet不再检索或定位已删除的记录.00值对应dBASE的SETDELETEDOFF命令,且指示MicrosoftJet对待一个删除的记录像对待任何其它的记录一样.缺省值是00.缺省值是00.在Windows95和WindowsNT4.0中的值是二进制类型,而在WindowsNT3.51中是REG_BINARY类型.决定字符串函数如何处理FarEast字符集数据的二进制指示器.01的值对应dBase命令SETKANJISTRINGON并显示字符串应作为一个dbcs字符.00的值表示字符串应作为一个简单的字节流.在date-to-string函数被使用在索引表达式的情况下,格式化日期的世纪部件(century)的二进制指示器.01的值对应dBASE的SETCENTURYON命令,而00的值对应dBASE的SETCENTURYOFF命令.缺省值是00.在Windows95和WindowsNT4.0中的值是二进制类型,而在WindowsNT3.51中是REG_BINARY类型.在索引表达式中使用date-to-string函数的情, 况下,使用的日期格式化样式.此对应dBASE的SETDATE命令的项目,可能值为American,ANSI,British,French,DMY,German,Italian,Japan,MDY,USA,和YMD.缺省值是MDY.在Windows95和WindowsNT4.0中的值是字符串类型,而在WindowsNT3.51中是REG_SZ类型.用来分隔日期的ASCII字符的十进制值.缺省值取决于Date设置.如下列:"/"(American,MDY)"."(ANSI)"/"(British,French,DMY)"."(German)"-"(Italian)"/"(Japan,YMD)"-"(USA)
DbcsStr
Century
Date
Mark
0值指示系统应该使用通常与被选择的日期格式相关联的分隔符.缺省值是0.在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.Exact字符串比较的二进制指示器.01值对应dBASE的SETEXACTON命令.00值对应dBASE的SETEXACTOFF命令.缺省值是00.在Windows95和WindowsNT4.0中的值是二进制类型,而在WindowsNT3.51中是REG_BINARY类型.
dBASEISAM格式Jet\3.5\ISAMFormats\dBASEIII文件夹包含下列项目.
项目EngineExportFilterImportFilterCanLinkOneTablePerFileIsamTypeIndexDialogIndexFilterCreateDBOnExportResultTextImport
WindowsNT3.51类Windows95andWindows型NT4.0类型值REG_SZREG_SZREG_SZREG_BINARYREG_BINARYREG_DWORDREG_BINARYREG_SZREG_BINARYREG_SZStringStringStringBinaryBinaryDWORDBinaryStringBinaryStringXbasedBASEIII(*.dbf)dBASEIII(*.dbf)0101001dBASE索引(*.ndx)00从外部文件将数据导入当前数据库.对当前数据库中数据的更改将不会更改外部文件中的数据.在链接到外部文件的当前数据库中创建一个表.更改当前数据库中的数据时将会更改外部文件中的数据.从当前数据库将数据导入dBASEIII的文件.如果导入已存在的文件,这次处理将改写已存在的数据.00
ResultTextLink
REG_SZ
String
ResultTextExport
REG_SZ
String
SupportsLongNames
REG_BINARY
Binary
Jet\3.5\ISAMFormats\dBASEIV文件夹包含下列项目.
项目EngineExportFilterImportFilterCanLinkOneTablePerFileIsamTypeIndexDialogIndexFilterCreateDBOnExportResultTextImport
WindowsNT3.51类Windows95andWindows型NT4.0类型值REG_SZREG_SZREG_SZREG_BINARYREG_BINARYREG_DWORDREG_BINARYREG_SZREG_BINARYREG_SZStringStringStringBinaryBinaryDWORDBinaryStringBinaryStringXbasedBASEIV(*.dbf)dBASEIV(*.dbf)0101001dBASE索引(*.ndx;*.mdx)00从外部文件将数据导入当前数据库.对当前数据库中数据的更改将不会更改外部文件中的数据.在链接到外部文件的当前数据库中创建一个表.更改当前数据库中的数据时将会更改外部文件中的数据.从当前数据库将数据导入dBASEIV的文件.如果导入已存在的文件,这次处理将改写已存在的数据.00
ResultTextLink
REG_SZ
String
ResultTextExport
REG_SZ
String
SupportsLongNames
REG_BINARY
Binary
Jet\3.5\ISAMFormats\dBASE5.x文件夹包含下列项目.
项目EngineExportFilter
WindowsWindowsNT3.51类Windows95andWindows型NT4.0类型值REG_SZREG_SZStringStringXbasedBASE5(*.dbf)
ImportFilterCanLinkOneTablePerFileIsamTypeIndexDialogIndexFilterCreateDBOnExportResultTextImport
REG_SZREG_BINARYREG_BINARYREG_DWORDREG_BINARYREG_SZREG_BINARYREG_SZ
StringBinaryBinaryDWORDBinaryStringBinaryString
dBASE5(*.dbf)0101001dBASE索引(*.ndx;*.mdx)00从外部文件将数据导入当前数据库.对当前数据库中数据的更改将不会更改外部文件中的数据.在链接到外部文件的当前数据库中创建一个表.更改当前数据库中的数据时将会更改外部文件中的数据.从当前数据库将数据导入dBASE5的文件.如果导入已存在的文件,这次处理将改写已存在的数据.00
ResultTextLink
REG_SZ
String
ResultTextExport
REG_SZ
String
SupportsLongNames
REG_BINARY
Binary
注意当更改Windows注册表设置时,要使新设置生效,必须先退出,然后重新激活数据库引擎.
请参阅定制MicrosoftJet的Windows注册环境
初始化Lotus驱动程序
当安装Lotus数据库的驱动程序时,设置程序会在引擎的Windows注册表和ISAM格式子键写入一些缺省值.不要直接修改这些设置;请使用应用程序的设置程序来添加,删除,或更改这些设置.下面部分描述Lotus数据库驱动程序的初始化和ISAMFormat设置.
Lotus初始化设置
Jet\3.5\Engines\Lotus文件夹包含用来访问外部Lotus电子数据表的Msltus35.dll驱动程序的初始化设置.这个标题下项目的典型设置显示於下列示例.win32=\msltus40.dllTypeGuessRows=8ImportMixedTypes=TextAppendBlankRows=4FirstRowHasNames=YesMicrosoftJet数据库引擎使用如下的Lotus文件夹项目.
项目win32
说明Msltus35.dll的位置.这个完整路径在安装时就已确定.在Windows95和WindowsNT4.0中的值是字符串类型,而在WindowsNT3.51中是REG_SZ类型.被检查数据类型的行数.根据在选择中最常被发现的数据类型来决定数据类型.如果有限制,将由下列顺序来决定数据类型:Number,Currency,Date,Text,LongText.如果遇到的数据不符合字段的推测的数据类型时,它会作为Null值返回.在导入时,如果一个字段有混合数据类型,整个字段将根据ImportMixedTypes设置来转换.被检查的行数缺省值是8.在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.
TypeGuessRows
ImportMixedTypes
AppendBlankRows
FirstRowHasNames
可以被设置成MajorityType或是Text.如果设置成MajorityType,混合数据类型的字段将会在导入时改变成占主导地位的数据类型.如果设置成Text,混合数据类型的字段将在导入时改变成Text的数据类型.缺省值是Text.在Windows95和WindowsNT4.0中的值是字符串类型,而在WindowsNT3.51中是REG_SZ类型.在增加新数据前,添加至WK1工作表末端的空白行数.例如,如果AppendBlankRows设置成4,MicrosoftJet将在增加包含数据的行之前添加4行空白至工作表末端.此设置的整型值范围从0到16;缺省值是01(追加一附加行).在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.指示表的第一行是否包含字段名的二进制值.的值指示在导入期间将从第一行01取得字段名.00的值指示在第一行中没有字段名;字段名显示为F1,F2,F3等等.缺省值是1.在Windows95和WindowsNT4.0中的值是二进制类型,而在WindowsNT3.51中是REG_BINARY类型.
LotusISAM格式Jet\3.5\ISAMFormats\LotusWK1文件夹包含下列项目.
项目EngineExportFilterImportFilter
WindowsWindowsNT3.51类Windows95andWindows型NT4.0类型值REG_SZREG_SZREG_SZStringStringStringLotusLotus1-2-3WK1(*.wk1)Lotus1-2-3(*.wk*)
CanLinkOneTablePerFileIsamTypeIndexDialogCreateDBOnExportResultTextImport
REG_BINARYREG_BINARYREG_DWORDREG_BINARYREG_BINARYREG_SZ
BinaryBinaryDWORDBinaryBinaryString
000010001从外部文件将数据导入当前数据库.对当前数据库中数据的更改将不会更改外部文件中的数据.从当前数据库将数据导入Lotus1-2-3Version2的文件.如果导入已存在的文件,这次处理将改写已存在的数据.01
ResultTextExport
REG_SZ
String
SupportsLongNames
REG_BINARY
Binary
Jet\3.5\ISAMFormats\LotusWK3文件夹包含下列项目.
项目EngineExportFilterCanLinkOneTablePerFileIsamTypeIndexDialogCreateDBOnExportResultTextExport
WindowsNT3.51类Windows95andWindows型NT4.0类型值REG_SZREG_SZREG_BINARYREG_BINARYREG_DWORDREG_BINARYREG_BINARYREG_SZStringStringBinaryBinaryDWORDBinaryBinaryStringLotusLotus1-2-3WK3(*.wk3)000010001从当前数据库将数据导入Lotus1-2-3Version3的文件.如果导入已存在的文件,这次处理将改写已存在的数据.01
SupportsLongNames
REG_BINARY
Binary
Jet\3.5\ISAMFormats\LotusWK4文件夹包含下列项目.
项目EngineCanLinkOneTablePerFileIsamTypeIndexDialogCreateDBOnExportSupportsLongNames
WindowsNT3.51类Windows95andWindowsNT4.0类型型值REG_SZREG_BINARYREG_BINARYREG_DWORDREG_BINARYREG_BINARYREG_BINARYStringBinaryBinaryDWORDBinaryBinaryBinaryLotus00001000101
Jet\3.5\ISAMFormats\LotusWK4文件夹包含下列项目.
项目EngineExportFilterImportFilterCanLinkOneTablePerFileIsamTypeIndexDialogCreateDBOnExportResultTextExport
WindowsNT3.51类Windows95andWindows型NT4.0类型值REG_SZREG_SZREG_SZREG_BINARYREG_BINARYREG_DWORDREG_BINARYREG_BINARYREG_SZStringStringStringBinaryBinaryDWORDBinaryBinaryStringLotusLotus1-2-3WJ2(*.wj2)Lotus1-2-3/DOS(*.wj*)000010001从当前数据库将数据导入Lotus1-2-3Version2的文件.如果导入已存在的文件,这次处理将改写已存在的数据.01
SupportsLongNames
REG_BINARY
Binary
Jet\3.5\ISAMFormats\LotusWK4文件夹包含下列项目.
项目EngineCanLinkOneTablePerFileIsamTypeIndexDialogCreateDBOnExportSupportsLongNames
WindowsNT3.51类Windows95andWindowsNT4.0类型型值REG_SZREG_BINARYREG_BINARYREG_DWORDREG_BINARYREG_BINARYREG_BINARYStringBinaryBinaryDWORDBinaryBinaryBinaryLotus00001000101
注册表设置时,要使新设置生效,必须先退出,然后重新激活数据库引擎.注意当更改Windows注册表设置时,要使新设置生效,必须先退出,然后重新激活数据库引擎.
请参阅定制MicrosoftJet的Windows注册环境
初始化MicrosoftExcel驱动程序
当安装MicrosoftExcel数据库的驱动程序时,设置程序会在引擎的Windows注册表和ISAM格式子键写入一些缺省值.不要直接修改这些设置;请使用应用程序的设置程序来添加,删除,或更改这些设置.下列部分描述MicrosoftExcel数据库驱动程序的初始化和ISAMFormats设置.
MicrosoftExcel初始化设置Jet\3.5\Engines\Excel文件夹包含用来访问外部MicrosoftExcel工作表的Msexcl35.dll驱动程序的初始化设置.文件夹中项目的典型设置显示於下列示例.win32=\msexcl40.dllTypeGuessRows=8ImportMixedTypes=TextAppendBlankRows=1FirstRowHasNames=YesMicrosoftJet数据库引擎使用的Excel文件夹项目如下.
项目win32
说明Msexcl35.dll的位置.这个完整路径在安装时就已确定.在Windows95和
WindowsNT4.0中的值是字符串类型,而在WindowsNT3.51中是REG_SZ类型.TypeGuessRows被检查数据类型的行数.根据在选择中最常被发现的数据类型来决定数据类型.如果有限制,将由下列顺序来决定数据类型:Number,Currency,Date,Text,LongText.如果遇到的数据不符合字段的推测的数据类型时,它会作为Null值返回.在导入时,如果一个字段有混合数据类型,整个字段将根据ImportMixedTypes设置来转换.被检查的行数缺省值是8.在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.ImportMixedTypes可以被设置成MajorityType或是Text.如果设置成MajorityType,混合数据类型的字段将会在导入时改变成占主导地位的数据类型.如果设置成Text,混合数据类型的字段将在导入时改变成Text的数据类型.缺省值是Text.在Windows95和WindowsNT4.0中的值是字符串类型,而在WindowsNT3.51中是REG_SZ类型.在增加新数据前,添加至3.5版或4.0版工作表末端的空白行数.例如,如果AppendBlankRows设置成4,MicrosoftJet将在增加包含数据的行之前添加4行空白至工作表末端.此设置的整型值范围从0到16;缺省值是01(追加一附加行).在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.指示表的第一行是否包含字段名的二进制值.的值指示在导入期间将从第一行01取得字段名.00的值指示在第一行中没有字段名;字段名显示为F1,F2,F3等等.缺省值是1.在Windows95和WindowsNT4.0中的值是二进制类型,而在WindowsNT3.51中是REG_BINARY类型.
AppendBlankRows
FirstRowHasNames
MicrosoftExcelISAM格式Jet\3.5\ISAMFormats\Excel3,0文件夹包含下列项目.
项目EngineExportFilterCanLinkOneTablePerFileIsamTypeIndexDialogCreateDBOnExportResultTextExport
WindowsNT类型REG_SZREG_SZREG_BINARYREG_BINARYREG_DWORDREG_BINARYREG_BINARYREG_SZ
Windows95andWindowsNT4.0类型值StringStringBinaryBinaryDWORDBinaryBinaryStringExcelMicrosoftExcel3(*.xls)010010001从当前数据库将数据导入MicrosoftExcel3,0的文件.如果导入已存在的文件,这次处
理将改写已存在的数据.SupportsLongNamesREG_BINARYBinary01
Jet\3.5\ISAMFormats\Excel4.0文件夹包含下列项目.
项目EngineExportFilterCanLinkOneTablePerFileIsamTypeIndexDialogCreateDBOnExportResultTextExport
WindowsNT3.51类Windows95andWindows型NT4.0类型值REG_SZREG_SZREG_BINARYREG_BINARYREG_DWORDREG_BINARYREG_BINARYREG_SZStringStringBinaryBinaryDWORDBinaryBinaryStringExcelMicrosoftExcel4(*.xls)010010001从当前数据库将数据导入MicrosoftExcel4.0的文件.如果导入已存在的文件,这次处理将改写已存在的数据.01
SupportsLongNames
REG_BINARY
Binary
Jet\3.5\ISAMFormats\Excel5.0文件夹包含下列项目,它们应用于MicrosoftExcel5.0和7.0版.
项目EngineExportFilterImportFilterCanLinkOneTablePerFileIsamTypeIndexDialog
WindowsNT3.51类Windows95andWindows型NT4.0类型值REG_SZREG_SZREG_SZREG_BINARYREG_BINARYREG_DWORDREG_BINARYStringStringStringBinaryBinaryDWORDBinaryExcelMicrosoftExcel5-7(*.xls)MicrosoftExcel(*.xls)0100100
CreateDBOnExportResultTextImport
REG_BINARYREG_SZ
BinaryString
01从外部文件将数据导入当前数据库.对当前数据库中数据的更改将不会更改外部文件中的数据.在链接到外部文件的当前数据库中创建一个表.更改当前数据库中的数据时将会更改外部文件中的数据.从当前数据库将数据导入MicrosoftExcel5,0的文件.如果导入已存在的文件,这次处理将改写已存在的数据.01
ResultTextLink
REG_SZ
String
ResultTextExport
REG_SZ
String
SupportsLongNames
REG_BINARY
Binary
Jet\3.5\ISAMFormats\Excel8.0文件夹包含下列项目,它们应用于MicrosoftExcel97.
项目EngineExportFilter
WindowsNT3.51类Windows95andWindows型NT4.0类型值REG_SZREG_SZStringStringExcelMicrosoftExcel97-2000(*.xls)010010001从当前数据库将数据导入MicrosoftExcel97的文件.如果导入已存在的文件,这次处理将改写已存在的数据.01
CanLinkOneTablePerFileIsamTypeIndexDialogCreateDBOnExportResultTextExport
REG_BINARYREG_BINARYREG_DWORDREG_BINARYREG_BINARYREG_SZ
BinaryBinaryDWORDBinaryBinaryString
SupportsLongNames
REG_BINARY
Binary
注册表设置时,要使新设置生效,必须先退出,然后重新激活数据库引擎.注意当更改Windows注册表设置时,要使新设置生效,必须先退出,然后重新激活数据库引擎.
请参阅定制MicrosoftJet的Windows注册环境
初始化MicrosoftExchangeDataSource驱动程序
当安装MicrosoftExchangeDataSource数据库的驱动程序时,设置程序会在引擎的Windows注册表和ISAMFormats子键中写入一些缺省值.不要直接修改这些设置;请使用应用程序的设置程序来添加,删除,或更改这些设置.下列部分描述MicrosoftExchangeDataSource数据库驱动程序的初始化和ISAMFormats设置.
MicrosoftExchangeDataSource初始化设置Jet\3.5\Engines\Exchange文件夹包含了Mstext35.dll驱动程序的初始化设置,这个Mstext35.dll驱动程序是用来外部访问MicrosoftExchange文件夹的.在这个文件夹中的项目的典型设置显示於下列示例.win32=\msexch40.dllMicrosoftJet数据库引擎使用Exchange文件夹来指示Msexch35.dll的位置.这个完整路径在安装时就已确定.在Windows95和WindowsNT4.0中的值是字符串类型,而在WindowsNT3.51中是REG_SZ类型.使用OutloodISAM格式和使用ExchangeclientISAM格式的结果是相似的.唯一的区别是对相同的列使用不同的列名.二者都是为了MicrosoftJet能返回用户需要的特殊形式的列名.
MicrosoftOutlookClientISAMFormatsJet\3.5\ISAMFormats\Exchange9,0文件夹包含下列项目.
项目EngineImportFilterCanLinkOneTablePerFileIsamTypeIndexDialogCreateDBOnExportSupportsLongNames
WindowsNT3.51类Windows95andWindows型NT4.0类型值REG_SZREG_SZREG_BINARYREG_BINARYREG_DWORDREG_BINARYREG_BINARYREG_BINARYStringStringBinaryBinaryDWORDBinaryBinaryBinaryExchangeOutlook()01003000001
注意当更改Windows注册表设置时,要使新设置生效,必须先退出,然后重新激活数据库引擎.
MicrosoftExchangeISAM格式Jet\3.5\ISAMFormats\Exchange4.0文件夹包含下列项目.
项目EngineImportFilterCanLinkOneTablePerFileIsamTypeIndexDialogCreateDBOnExportSupportsLongNames
WindowsNT3.51类Windows95andWindows型NT4.0类型值REG_SZREG_SZREG_BINARYREG_BINARYREG_DWORDREG_BINARYREG_BINARYREG_BINARYStringStringBinaryBinaryDWORDBinaryBinaryBinaryExchangeExchange()01003000001
注意当更改Windows注册表设置时,要使新设置生效,必须先退出,然后重新激活数据库引擎.
Outlook定制Outlook和Exchange数据的Schema.ini文件Schema.ini文件在Outlook和ExchangeISAM中的使用和TextISAM中一致.Schema.ini包含文本数据源的特性:数据格式化方式和要被访问的列名.在Outlood和Exchange读,导入或导出数据之前不必修改Schema.ini文件.Outlook和Exchange的Schema.ini文件中的许多设置是MAPI需要的内部标签所特有的.这些标签值不应被修改.
请参阅定制MicrosoftJet的Windows注册环境
初始化MicrosoftJet4,0数据库引擎的驱动程序
当安装MicrosoftJet4,0引擎数据库的驱动程序时,设置程序会在引擎的Windows注册表和ISAMFormats子键写入一些缺省值.不应直接修改这些设置;而应使用应用程序的设置程序来添加,删除,或更改这些设置.下列部分描述MicrosoftJet2.5引擎数据库驱动程序的初始化和ISAMFormats设置.
MicrosoftJet引擎初始化设置Jet\3.5\Engines\Excel文件夹包含用来访问外部MicrosoftExcel工作表的Msexcl35.dll驱动程序的初始化设置.文件夹中项目的典型设置显示於下列示例.SystemDB=\System.mdbCompactBYPkey=1PrevFormatCompactWithUNICODECompression=1MicrosoftJet数据库引擎使用下列项目.
项目SystemDB
说明指定工作组信息文件的完整路径和文件名.缺省值是适当路径后面跟随着文件名System.mdb.在Windows95和WindowsNT4.0中的值是字符串类型,而在WindowsNT3.51中是REG_SZ类型.指定当压缩以主键顺序复制而成的表时,在表上是否存在主键.如果没有主键存在表上,表就以基本表的顺序复制.0值指示应该以基本表的顺序压缩;非零值指示如果主键存在,表应该以主键顺序压缩.缺省值是非零值.在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.注意此设置只应用于压缩MicrosoftJet数据库引擎3.0或之后的版本所创建的数据库;当您压缩由2.x版MicrosoftJet数据库引擎所创建的数据库,数据总是以基本表的顺序复制.
CompactByPKey
PrevFormatCompactWithUNICMicrosoftJet4.0数据库使用Unicode字符设置存储文本数据.压缩Unicode数据ODECompression降低了对页的读写操作,因此极大地提高了数据库的性能.该键决定数据库是由MicrosoftJet数据库引擎3.x版本创建还是应预先由压缩了的Unicode或未经压缩的Unicode创建.注意:该设置不适用于压缩了的MicrosoftJet4.0数据库.MicrosoftJet4.0数据库会默认保持其创建时的压缩设置.
Jet\4.0\Engines\Jet4.0文件夹包含用来访问MicrosoftAccess2000工作表的msjet40.dll驱动程序的初始化设置.文件夹中项目的典型设置显示於下列示例.FlushTransactionTimeout=500LockDelay=100LockRetry=20MaxBufferSize=0MaxLocksPerFile=9500PageTimeout=5000Threads=3UserCommitSync=YesImplicitCommitSync=NoExclusiveAsyncDelay=2000SharedAsyncDelay=0RecycleLVs=0PagesLockedToTableLock=0
MicrosoftJet数据库引擎使用下列项目.
项目PageTimeout
说明非读入锁定的数据从放入内部高速缓冲起到它变为无效之间的时间长度,以毫秒为单位.缺省值是5000毫秒或5秒.在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.此项目禁止ExclusiveAsyncDelay和SharedAsyncDelay注册表项.若要使这两项目有效,必须输入零值.FlushTransactionTimeout更改MicrosoftJet数据库引擎往数据库文件中异步写入的方法.从前,MicrosoftJet数据库引擎使用ExclusiveAsyncDelay或SharedAsyncDelay来决定在强制异步写入前,要等待多久.然而,现在FlushTransactionTimeout改变了这种情况,因为FlushTransactionTimeout有一个值,它只在指定的时间量被超出之后,并且没有页添加至高速缓冲的条件下,会启动异步写入.唯一的例外是,如果高速缓冲超出了MaxBufferSize,在那一点上高速缓冲会启动异步写入,而不管时间是否已经超过.因此MicrosoftJet3.5数据库引擎在启动异步写入前将非活动地等待500毫秒,或等到高速缓冲大小已被超出.此设置可和LockRetry设置联合工作,它会使每一个LockRetry在发出另一个锁定请求前等待100毫秒.添加LockDelay设置是为了防止某些网络操作系统会发生的"激增"现象.此设置防止MicrosoftJet的处理超出指定值.如果处理中的锁定企图超出此值,处理将分裂成两个或更多个部分且部分地交付.添加该设置来防止当超出指定的Netware锁定限制时,Netware3.1服务器会发生的毁损,及改善Netware和NT的性能.在返回锁定冲突消息之前,重复尝试访问一锁定页的次数.缺省值是20.在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.此设置为有效时将使MicrosoftJet循环利用long值(LV)页(Memo,LongBinary[OLE对象],和Binary数据类型).在最后一个用户关闭数据库之前,MicrosoftJet3.0不循环利用这些类型的页.如果RecyleLVs设置为有效,当追加数据库时(即,当添加几个页的组时),MicrosoftJet3.5将开始循环利用大部分的LV页.注意使用此特性时,用户会注意到处理long值数据时的性能下降.MicrosoftAccess97在操作模块,窗体以及报告时会自动启动和禁止该特性,因此在修改这些对象时不需要打开此项目.缺省值是0.在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.
FlushTransactionTimeout
LockDelay
MaxLocksPerFile
LockRetry
RecycleLVs
MaxBufferSize
数据库引擎内部高速缓存的大小,以一千字节(K)为单位.MaxBufferSize必须是大于等于512的整型值.缺省值根据下列公式:((TotalRAMinMB-12MB)/4)+512KB例如,在有32MBRAM的系统上,缺省缓冲区大小是((32MB-12MB)/4)+512KB或5632KB.若要将值设为缺省值,请设置注册键为MaxBufferSize=
在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.ThreadsMicrosoftJet数据库引擎可用的背景线程数.缺省值是3.在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.指定系统是否等待交付完成.值为Yes,命令系统等待;而No则命令系统执行异步交付.缺省值为Yes.在Windows95和WindowsNT4.0中的值是字符串类型,而在WindowsNT3.51中是REG_SZ类型.指定系统是否等待交付完成.No,命令系统不要等待交付完成而继续;Yes则命令系统等待交付完成.缺省值是512.在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.指定延迟独占数据库的异步刷新的时间长度,以毫秒为单位.缺省值是2000或2秒.在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.指定延迟共享数据库的异步刷新的时间长度,以毫秒为单位.缺省值是0.在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.在访问表的大量操作中更有效的是锁住整个表而不是锁定表中每一页.该设置定义了在锁页转为锁表前任何一个事务中,MicrosofrJet所允许的被锁的页数.缺省值0表示不要将锁页自动转为锁表.注意:小心使用该设置.若需要多用户访问数据库,则锁住整表会导致其他用户的锁定冲突.这一点在设置值较小时特别严重.设置值较大时,例如25或50,其他用户的操作也会变得不可预知.
UserCommitSync
ImplicitCommitSync
ExclusiveAsyncDelay
SharedAsyncDelay
PagesLockedToTableLock
MicrosoftJet引擎初始化设置Jet\4.0\Transproter键包括由JetSynchronizer设置的JetReplication同步的初始值.该设置确定由Synchtonizer同步信号尝试具体的传输.有效值为0-100.0表示不允许传输.所有非零值的传输类型都会按递增的键值顺序被尝试,直到有一个成功地实现了同步或所有的都失败.文件夹中项目的典型设置显示於下列示例.Priority_FS=1Priority_Internet=2Priority_direct=3MicrosoftJet数据库引擎使用下列优先级输入项.
项目Priority_FS
说明文件系统(间接)同步化取决于副本间的一系列的消息转换.管理各个副本的同步装置把转换收集成"信息文件"(*.msg),然后"信息文件"被复制到一个可共享的文件夹——叫做"下拉框",可供其他同步装置使用并且可通过文件系统访问.Internet(间接)同步化取决于副本间的一系列的消息转换.只有由Internet服务器上的同步装置管理的副本有下拉框,可通过HTTP或FTP连接访问.
Priority_Internet
Priority_direct
Direct同步化是交换一个副本集中两个成员间的数据和设计变化的程序,副本集可以是在单机上也可以是在网络上直接相连的.两个数据库都由同步装置打开.
注意当更改Windows注册表设置时,要使新设置生效,必须先退出,然后重新激活数据库引擎.
请参阅定制MicrosoftJet的Windows注册环境
初始化MicrosoftJet3.5数据库引擎的驱动程序
当安装MicrosoftJet3,5引擎数据库的驱动程序时,设置程序会在引擎的Windows注册表和ISAMFormats子键写入一些缺省值.不应直接修改这些设置;而应使用应用程序的设置程序来添加,删除,或更改这些设置.下列部分描述MicrosoftJet2.5引擎数据库驱动程序的初始化和ISAMFormats设置.
MicrosoftJet引擎初始化设置Jet\4.0\Engines\Jet3.x文件夹包含msrd3x40.dll驱动程序的初始化设置,用来访问MicrosoftAccess97工作表.文件夹中项目的典型设置显示於下列示例.win32=\msrd3x40.dllFlushTransactionTimeout=500LockDelay=100LockRetry=20MaxBufferSize=0MaxLocksPerFile=9500PageTimeout=5000Threads=3UserCommitSync=YesImplicitCommitSync=NoExclusiveAsyncDelay=2000SharedAsyncDelay=0RecycleLVs=0SortMemorySource=0MicrosoftJet数据库引擎使用下列项目.
项目win32
说明数据库引擎驱动程序(dll)的位置.完整路径在安装时就已确定.在Windows95和WindowsNT4.0中的值是字符串类型,而在WindowsNT3.51中是REG_SZ类型.非读入锁定的数据从放入内部高速缓冲起到它变为无效之间的时间长度,以毫秒为单位.缺省值是5000毫秒或5秒.在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.此项目禁止ExclusiveAsyncDelay和SharedAsyncDelay注册表项.若要使这
PageTimeout
FlushTransactionTimeout
两项目有效,必须输入零值.FlushTransactionTimeout更改MicrosoftJet数据库引擎往数据库文件中异步写入的方法.从前,MicrosoftJet数据库引擎使用ExclusiveAsyncDelay或SharedAsyncDelay来决定在强制异步写入前,要等待多久.然而,现在FlushTransactionTimeout改变了这种情况,因为FlushTransactionTimeout有一个值,它只在指定的时间量被超出之后,并且没有页添加至高速缓冲的条件下,会启动异步写入.唯一的例外是,如果高速缓冲超出了MaxBufferSize,在那一点上高速缓冲会启动异步写入,而不管时间是否已经超过.因此MicrosoftJet3.5数据库引擎在启动异步写入前将非活动地等待500毫秒,或等到高速缓冲大小已被超出.LockDelay此设置可和LockRetry设置联合工作,它会使每一个LockRetry在发出另一个锁定请求前等待100毫秒.添加LockDelay设置是为了防止某些网络操作系统会发生的"激增"现象.此设置防止MicrosoftJet的处理超出指定值.如果处理中的锁定企图超出此值,处理将分裂成两个或更多个部分且部分地交付.添加该设置来防止当超出指定的Netware锁定限制时,Netware3.1服务器会发生的毁损,及改善Netware和NT的性能.在返回锁定冲突消息之前,重复尝试访问一锁定页的次数.缺省值是20.在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.此设置为有效时将使MicrosoftJet循环利用long值(LV)页(Memo,LongBinary[OLE对象],和Binary数据类型).在最后一个用户关闭数据库之前,MicrosoftJet3.0不循环利用这些类型的页.如果RecyleLVs设置为有效,当追加数据库时(即,当添加几个页的组时),MicrosoftJet3.5将开始循环利用大部分的LV页.注意使用此特性时,用户会注意到处理long值数据时的性能下降.MicrosoftAccess97在操作模块,窗体以及报告时会自动启动和禁止该特性,因此在修改这些对象时不需要打开此项目.缺省值是0.在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.MaxBufferSize数据库引擎内部高速缓存的大小,以一千字节(K)为单位.MaxBufferSize必须是大于等于512的整型值.缺省值根据下列公式:((TotalRAMinMB-12MB)/4)+512KB例如,在有32MBRAM的系统上,缺省缓冲区大小是((32MB-12MB)/4)+512KB或5632KB.若要将值设为缺省值,请设置注册键为MaxBufferSize=在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.ThreadsMicrosoftJet数据库引擎可用的背景线程数.缺省值是3.在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.指定系统是否等待交付完成.值为Yes,命令系统等待;而No则命令系统执行异步交付.缺省值为Yes.在Windows95和WindowsNT4.0中的值是字符串类型,而在WindowsNT3.51中是REG_SZ类型.指定系统是否等待交付完成.No,命令系统不要等待交付完成而继续;Yes则命
MaxLocksPerFile
LockRetry
RecycleLVs
UserCommitSync
ImplicitCommitSync
ExclusiveAsyncDelay
SharedAsyncDelay
SortMemorySource
令系统等待交付完成.缺省值是512.在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.指定延迟独占数据库的异步刷新的时间长度,以毫秒为单位.缺省值是2000或2秒.在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.指定延迟共享数据库的异步刷新的时间长度,以毫秒为单位.缺省值是0.在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.说明MicrosoftJet如何获得排序使用的内存.0表示内存取自于堆.1表示内存可通过malloc函数取自总内存.
MicrosoftJet引擎ISAM格式Jet\3.5\ISAMFormats\Paradox3.x文件夹包含下列项目.
项目EngineOneTablePerFileIndexDialogCreateDBOnExportIsamType
WindowsNT3.51类型REG_SZREG_BINARYREG_BINARYREG_BINARYREG_DWORD
Windows95andWindowsNT4.0类型值StringBinaryBinaryBinaryDWORDJet3.x0000000
注意当更改Windows注册表设置时,要使新设置生效,必须先退出,然后重新激活数据库引擎.
请参阅定制MicrosoftJet的Windows注册环境
初始化MicrosoftJet2,5数据库引擎的驱动程序
当安装MicrosoftJet2.5引擎数据库的驱动程序时,设置程序会在引擎的Windows注册表和ISAMFormats子键写入一些缺省值.不应直接修改这些设置;而应使用应用程序的设置程序来添加,删除,或更改这些设置.下列部分描述MicrosoftJet2.5引擎数据库驱动程序的初始化和ISAMFormats设置.
MicrosoftJet引擎初始化设置Jet\4.0\Engines\Jet2.x文件夹包含msrd2x40.dll驱动程序的初始化设置,用来访问MicrosoftAccess2.0
工作表.文件夹中项目的典型设置显示於下列示例.win32=\msrd2x40.dllPageTimeout=5LockedPageTimeout=5CursorTimeout=5LockRetry=20CommitLockRetry=20MaxBufferSize=512ReadAheadPages=16IdleFrequency=10ForceOsFlush=0下列项目用来配置MicrosoftJet数据库引擎.
项目win32
说明数据库引擎驱动程序(dll)的位置.完整路径在安装时就已确定.在Windows95和WindowsNT4.0中的值是字符串类型,而在WindowsNT3.51中是REG_SZ类型.非读入锁定的数据从放入内部高速缓冲起到它变为无效之间的时间长度,100毫以秒为单位.缺省值是5个单位(或0.5秒).在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.读入锁定的数据从放入内部高速缓冲起到它变为无效之间的时间长度,100毫秒以为单位.缺省值是5个单位(或0.5秒).在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.对于页的引用保留在该页上的时间长度,以100毫秒为单位.缺省值是5个单位(或0.5秒).此设置只应用在MicrosoftJet数据库引擎1.x版创建的数据库上.在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.在返回锁定冲突消息之前,重复尝试访问一锁定页的次数.缺省值是20次;LockRetry和CommitLockRetry有关.在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.MicrosoftJet数据库引擎为了交付对于数据的更改而尝试获得那个数据的锁定的次数.如果MicrosoftJet数据库引擎不能获得交付锁定,对于那个数据的更改将会失败.MicrosoftJet数据库引擎尝试获得交付锁定的次数和LockRetry值直接有关.对于获得交付锁定的每一次尝试,MicrosoftJet数据库引擎将做LockRetry值所指定的次数的获得锁定的尝试.例如,如果CommitLockRetry设成20且LockRetry设成20,则MicrosoftJet数据库引擎将为获得交付锁定做20次尝试;在每一次尝试中,MicrosoftJet数据库引擎为获得锁定又要做20次尝试,总共尝试400次.CommitLockRetry的缺省值是20.在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.
PageTimeout
LockedPageTimeout
CursorTimeout
LockRetry
CommitLockRetry
MaxBufferSize
ReadAheadPages
数据库引擎内部高速缓存的大小,以一千字节(K)为单位.MaxBufferSize必须是大于等于9小于等于4096的整型值.缺省值是512.在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.执行循序扫描时预先读入的页数.缺省值是16.在Windows95和WindowsNT4.0
ForceOSFlush
IdleFrequency
中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.0以外的任何设置,表示一个交付或写入,强制刷新操作系统高速缓冲至磁盘.0(缺省值)的设置表示没有强制刷新发生.在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.在释放一个读入锁定之前,MicrosoftJet将等待的时间,以100毫秒为单位.缺省值是10个单位或一秒.在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.
MicrosoftJet引擎ISAM格式Jet\3.5\ISAMFormats\Paradox2.x文件夹包含下列项目.
项目EngineOneTablePerFileIndexDialogCreateDBOnExportIsamType
WindowsNT3.51类型REG_SZREG_BINARYREG_BINARYREG_BINARYREG_DWORD
Windows95andWindowsNT4.0类型值StringBinaryBinaryBinaryDWORDJet2.x0000000
注意当更改Windows注册表设置时,要使新设置生效,必须先退出,然后重新激活数据库引擎.
请参阅定制MicrosoftJet的Windows注册环境
初始化Paradox数据库的驱动程序
当安装Paradox数据库的驱动程序时,设置程序会在引擎的Windows注册表和ISAMFormats子键写入一些缺省值.不应直接修改这些设置(除非必要);而应使用应用程序的设置程序来添加,删除,或更改这些设置.下列部分描述Paradox数据库驱动程序的初始化和ISAMFormats设置.Paradox数据库驱动程序在两种模式中的哪一种下工作取决于是否安装了Borland数据库引擎(BDE).Paradox数据在BDE存在时才是可维护的.BDE不存在时,Paradox数据可能被读,导出或连接到只读方式.
Paradox初始化设置Jet\3.5\Engines\Paradox文件夹包含用来访问外部Paradox数据的Mspdox35.dll驱动程序的初始化设置.
文件夹中项目的典型设置显示於下列示例.win32=\mspbde40.dllPageTimeout=600CollatingSequence=ASCIIDataCodePage=OEMParadoxUserName=KimberlyParadoxNetPath=P:\PDOXDBParadoxNetStyle=4.XMicrosoftJet数据库引擎使用如下的Paradox文件夹项目.
项目win32
说明mspbde40.dll的位置.这个完整路径在安装时就已确定.在Windows95和WindowsNT4.0中的值是字符串类型,而在WindowsNT3.51中是REG_SZ类型.从数据放在内部高速缓冲时起,到它变为无效之间的时间长度.此数值以100毫秒为单位.缺省值是600个单位或60秒.在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.该设置只用于BDE不存在时.所有使用MicrosoftJet数据库引擎创建或打开的Paradox表的排序序列.可能的值为ASCII,International,Norwegian-Danish,和Swedish-Finnish.CollatingSequence项目必须符合Paradox表创建时使用的排序序列.缺省值是ASCII.在Windows95和WindowsNT4.0中的值是字符串类型,而在WindowsNT3.51中是REG_SZ类型.
PageTimeout
CollatingSequence
DataCodePage
该设置只用于BDE不存在时.如何存储文本页的指示器.可能的设置是:OEM:OEM-执行OemToAnsi和AnsiToOem转换.ANSI:ANSI—不执行OemToAnsi和AnsiToOem转换.OEM为缺省值.Windows95和WindowsNT4.0中的值是字符串类型,在而在WindowsNT3.51中是REG_SZ类型.
ParadoxUserName
如果一个表被ParadoxISAM锁定,并且访问Paradox(不是ISAM)数据的交互用户企图放置不兼容的锁定时,Paradox将显示的名称.在安装程序中没有入口.须自己创建.在Windows95和WindowsNT4.0中的值是字符串类型,而在WindowsNT3.51中是REG_SZ类型.注意如果指示ParadoxUserName,必须同时指定ParadoxNetPath和ParadoxNetStyle,否则当您试图访问外部Paradox数据时将收到一个错误.如果在网络上以多用户方式访问Paradox数据库,则必须用手工添加或修改这个注册表项.
ParadoxNetPath
包含PARADOX.NET文件(Paradox3.x版)或PDOXUSRS.NET文件(Paradox4.x版)的目录的完整路径.在安装程序中没有入口.须自己创建.对所有共享一个特定数据库(目录)的用户来说,完整的ParadoxNetPath(包括驱动器字母)必须一致.在Windows95和WindowsNT4.0中的值是字符串类型,而在WindowsNT3.51中是REG_SZ类型.注意如果指示ParadoxNetPath,必须同时指定ParadoxUserName和ParadoxNetStyle,否则当您试图访问外部Paradox数据时将收到一个错误.如果
在网络上以多用户方式访问Paradox数据库,则必须用手工添加或修改这个注册表项.ParadoxNetStyle当访问Paradox数据时所使用的网络访问形式.可能的值为:3.x4.x注意Paradox3.x的用户不能将此设置为4.x否则驱动程序将使用错误的锁定方法.Paradox5.0的用户必须使用4.xParadoxNetStyle的设置来确定适当的锁定行为.在安装程序中没有入口.须自己创建.此项目应该对应组中的用户所使用的Paradox版本.对所有共享一个特定数据库(目录)的用户来说,它必须一致.缺省值是4.x.在Windows95和WindowsNT4.0中的值是字符串类型,而在WindowsNT3.51中是REG_SZ类型.注意如果指示ParadoxNetStyle,必须同时指定ParadoxNetPath和ParadoxUserName,否则当您试图访问外部Paradox数据时将收到一个错误.
ParadoxISAMFormatsJet\3.5\ISAMFormats\Paradox3.x文件夹包含下列项目.
项目EngineExportFilterImportFilterCanLinkOneTablePerFileIsamTypeIndexDialogCreateDBOnExportResultTextImport
WindowsNT3.51类Windows95andWindowsNT4.0类型型值REG_SZREG_SZREG_SZREG_BINARYREG_BINARYREG_DWORDREG_BINARYREG_BINARYREG_SZStringStringStringBinaryBinaryDWORDBinaryBinaryStringParadoxParadox3(*.db)Paradox(*.db)010100000从外部文件将数据导入当前数据库.对当前数据库中数据的更改将不会更改外部文件中的数据.在链接到外部文件的当前数据库
ResultTextLink
REG_SZ
String
中创建一个表.更改当前数据库中的数据时将会更改外部文件中的数据.ResultTextExportREG_SZString从当前数据库将数据导入Paradox3版的文件.如果导入已存在的文件,这次处理将改写已存在的数据.00
SupportsLongNames
REG_BINARY
Binary
Jet\3.5\ISAMFormats\Paradox4.x文件夹包含下列项目.
项目EngineExportFilterCanLinkOneTablePerFileIsamTypeIndexDialogCreateDBOnExportResultTextExport
WindowsNT3.51类Windows95andWindowsNT4.0类型型值REG_SZREG_SZREG_BINARYREG_BINARYREG_DWORDREG_BINARYREG_BINARYREG_SZStringStringBinaryBinaryDWORDBinaryBinaryStringParadoxParadox4(*.db)010100000从当前数据库将数据导入Paradox4版的文件.如果导入已存在的文件,这次处理将改写已存在的数据.00
SupportsLongNames
REG_BINARY
Binary
Jet\3.5\ISAMFormats\Paradox5.x文件夹包含下列项目.
项目EngineExportFilterCanLink
WindowsNT3.51类Windows95andWindows型NT4.0类型值REG_SZREG_SZREG_BINARYStringStringBinaryParadoxParadox5(*.db)01
OneTablePerFileIsamTypeIndexDialogCreateDBOnExportResultTextExport
REG_BINARYREG_DWORDREG_BINARYREG_BINARYREG_SZ
BinaryDWORDBinaryBinaryString
0100000从当前数据库将数据导入Paradox5版的文件.如果导入已存在的文件,这次处理将改写已存在的数据.00
SupportsLongNames
REG_BINARY
Binary
Jet\3.5\ISAMFormats\Paradox7.x文件夹包含下列项目.
项目EngineExportFilterCanLinkOneTablePerFileIsamTypeIndexDialogCreateDBOnExportResultTextExport
WindowsNT3.51类Windows95andWindows型NT4.0类型值REG_SZREG_SZREG_BINARYREG_BINARYREG_DWORDREG_BINARYREG_BINARYREG_SZStringStringBinaryBinaryDWORDBinaryBinaryStringParadoxParadox7(*.db)010100000从当前数据库将数据导入Paradox7版的文件.如果导入已存在的文件,这次处理将改写已存在的数据.00
SupportsLongNames
REG_BINARY
Binary
注意当更改Windows注册表设置时,要使新设置生效,必须先退出,然后重新激活数据库引擎.
请参阅定制MicrosoftJet的Windows注册环境
初始化Text和初始化Text和HTMLDataSource驱动程序Text
TextData源和HTML数据源使用同一个数据库驱动程序.当安装TextDataSource数据库驱动程序时,设置程序会在引擎的Windows注册表和ISAMFormats子键中写入一些缺省值.不要直接修改这些设置;请使用应用程序的设置程序来添加,删除,或更改这些设置.下列部分描述TextDataSource数据库驱动程序的初始化和ISAMFormats设置.
TextDataSource的初始化设置Jet\3.5\Engines\Text文件夹包含用来外部访问文本数据文件的Mstext35.dll驱动程序的初始化设置.文件夹中项目的典型设置显示於下列示例.win32=\mstext40.dllMaxScanRows=25FirstRowHasNames=TrueCharacterSet=ANSIFormat=CSVDelimitedExtensions=txt,csv,tab,ascExportCurrencySymbols=YesMicrosoftJet数据库引擎使用如下的文本文件夹项目.
项目win32
说明Mstext35.dll的位置.这个完整路径在安装时就已确定.在Windows95和WindowsNT4.0中的值是字符串类型,而在WindowsNT3.51中是REG_SZ类型.当猜测字段类型时被扫描的行数.如果设成0,整个文件将被搜寻.缺省值是25.在Windows95和WindowsNT4.0中的值是DWORD类型,而在WindowsNT3.51中是REG_DWORD类型.指示表的第一行是否包含字段名的二进制值.的值指示在导入期间将从第一行取01得字段名.00值指示在第一行中没有字段名.缺省值是1.在Windows95和WindowsNT4.0中的值是二进制类型,而在WindowsNT3.51中是REG_BINARY类型.如何存储文本页的指示器.可能的设置是:ANSI:ANSI代码页.AnsiToUnicode和UnicodeToAnsi的转换完成.OEM:OEM代码页.OemToUnicode和UnicodeToOem的转换完成.Unicode代码页的转换未执行.:特殊字符集的代码页号.与Unicode的互相转换即将完成.OEM为缺省值.Windows95和WindowsNT4.0中的值是字符串类型,在而在WindowsNT3.51中是REG_SZ类型.
MaxScanRows
FirstRowHasNames
CharacterSet
Format
Extensions
ExportCurrencySymbols
可为下列任一值:TabDelimited,CSVDelimited,Delimited(<单一字符>).在Delimited格式下的单一字符分隔符可以是除了双引号以外(")的任何单一字符.缺省值是CSVDelimited.在Windows95和WindowsNT4.0中的值是字符串类型,而在WindowsNT3.51中是REG_SZ类型.当要找寻基于文本的数据时,供浏览的文件的扩展名.缺省值是txt,csv,tab和asc.在Windows95和WindowsNT4.0中的值是字符串类型,而在WindowsNT3.51中是REG_SZ类型.指示当货币字段导出时是否包含相应的货币符号的二进制值.的值指示将包含符01号.00的值指示只导出数值数据.缺省值是1.在Windows95和WindowsNT4.0中的值是二进制类型,而在WindowsNT3.51中是REG_BINARY类型.
TextDataSourceISAM格式Jet\4.0\ISAMFormats\Text文件夹包含下列项目.
项目EngineExportFilter
WindowsNT3.51类Windows95andWindows型NT4.0类型值REG_SZREG_SZStringStringTextTextFiles*.txt;(*.csv;*.tab;*.asc)TextFiles*.txt;(*.csv;*.tab;*.asc)010120000从外部文件将数据导入当前数据库.对当前数据库中数据的更改将不会更改外部文件中的数据.在链接到外部文件的当前数据库中创建一个表.更改当前数据库中的数据时将会更改外部文件中的数据.从当前数据库将数据导入正文文件.如果导入已存在的文件,这次处理将改写已存在的数据.01
ImportFilter
REG_SZ
String
CanLinkOneTablePerFileIsamTypeIndexDialogCreateDBOnExportResultTextImport
REG_BINARYREG_BINARYREG_DWORDREG_BINARYREG_BINARYREG_SZ
BinaryBinaryDWORDBinaryBinaryString
ResultTextLink
REG_SZ
String
ResultTextExport
REG_SZ
String
SupportsLongNames
REG_BINARY
Binary
注意当更改Windows注册表设置时,要使新设置生效,必须先退出,然后重新激活数据库引擎.
HTML导入ISAM格式Jet\3.5\ISAMFormats\HTMLImport文件夹包含下列项目.
项目EngineImportFilterCanLinkOneTablePerFileIsamTypeIndexDialogCreateDBOnExportResultTextImport
WindowsNT3.51类Windows95andWindows型NT4.0类型值REG_SZREG_SZREG_BINARYREG_BINARYREG_DWORDREG_BINARYREG_BINARYREG_SZStringStringBinaryBinaryDWORDBinaryBinaryStringTextHTML文件(*.ht*)010020000从外部文件将数据导入当前数据库.对当前数据库中数据的更改将不会更改外部文件中的数据.在链接到外部文件的当前数据库中创建一个表.更改当前数据库中的数据时将会更改外部文件中的数据.01
ResultTextLink
REG_SZ
String
SupportsLongNames
REG_BINARY
Binary
注意当更改Windows注册表设置时,要使新设置生效,必须先退出,然后重新激活数据库引擎.
HTML导出ISAM格式Jet\3.5\ISAMFormats\HTMLExport文件夹包含下列项目.
项目
WindowsNT3.51类Windows95andWindows型NT4.0类型值
EngineExportFilterCanLinkOneTablePerFileIsamTypeIndexDialogCreateDBOnExportResultTextExport
REG_SZREG_SZREG_BINARYREG_BINARYREG_DWORDREG_BINARYREG_BINARYREG_SZ
StringStringBinaryBinaryDWORDBinaryBinaryString
TextHTML文件(*.htm)000120000从当前数据库将数据导入正文文件.如果导入已存在的文件,这次处理将改写已存在的数据.01
SupportsLongNames
REG_BINARY
Binary
注意当更改Windows注册表设置时,要使新设置生效,必须先退出,然后重新激活数据库引擎.
数据的Schema.ini定制Text和HTML数据的Schema.ini文件若要读入,导入,或导出文本数据,.ini文件中除了包含文本ISAM信息以外,在还需要创建一个Schema.ini文件.Schema.ini包含文本数据源的特性:正文文件如何格式化,在导入时如何读入,和文件的缺省导出格式.下列示例显示定宽文件Filename.txt的版面设计.[Filename.txt]ColNameHeader=FalseFormat=FixedLengthFixedFormat=RaggedEdgeMaxScanRows=25CharacterSet=OEMCol1=columnnameCharWidth24Col2=columnname2DateWidth9Col3=columnname7FloatWidth10Col4=columnname8IntegerWidth10Col5=columnname9LongCharWidth10类似地,分隔文件的格式指定如下:[Delimit.txt]ColNameHeader=TrueFormat=Delimited()MaxScanRows=0CharacterSet=OEMCol1=usernamecharwidth50Col2=dateofbirthDatewidth9如果将数据导入分隔的正文文件,该文件的格式同样指定为:[Export:MySpecialExport]ColNameHeader=TrueFormat=TabDelimitedMaxScanRows=25CharacterSet=OEM
DateTimeFormat=mm.dd.yy.hh.mm.ssCurrencySymbol=DmCurrencyPosFormat=0CurrencyDigits=2CurrencyNegFormat=0CurrencyThousandSymbol=,CurrencyDecimalSymbol=.DecimalSymbol=,NumberDigits=2NumberLeadingZeros=0TextDelimeter="MySpecialExport示例引用了一个特定的导出选项;可以在连接时指定导出选项的任何变化.最后一个示例也对应于一个数据源名(DSN),这个数据源名(DSN)可在连接时有选择地传送.所有三种格式部分均可包含在一个.ini文件中.MicrosoftJet数据库引擎使用如下的Schema.ini项目.
项目ColNameHeaderFormat
说明可设置为True(表示数据的第一个记录为字段名)或FalseFalse.可为下列任一值:TabDelimited,CSVDelimited,Delimited(<单一字符>).在Delimited格式下的单一字符分隔符可以是除了双引号以外(")的任何单一字符.只用于Format是FixedLength,可设置为以下值之一:RaggedEdge或TrueFixedLength.RaggedEdge允许以一个CarriageReturn字符作为行的终止.TrueFixedLength要求每一行是一个精确的字符数,任何一个不在行边界的CarriageReturn字符被视为是插入在一个字段里的.若无该设置,缺省值为RaggedEdge.
FixedFormat
MaxScanRowsCharacterSetDateTimeFormat
CurrencySymbolCurrencyPosFormat
当猜测字段类型时被扫描的行数.如果设成0,整个文件将被搜寻.可设为OEM或ANSI或UNICODE,或一个有效代码页的十进制值,显示源文件的字符集.可设置为指示日期和时间的格式字符串.如果在导入/导出中所有的日期/时间字段使用同样的格式来处理,就应当指定此项.除了AM和PM外,所有MicrosoftJet数据库引擎格式都被支持.格式字符串不存在时,就使用Windows"控制面板"的短日期图片和时间选项.指示正文文件中货币值使用的的货币符号.示例中包含的美元符号($)和Dm.如果此项目不存在,将使用Windows"控制面板"的缺省值.可设置为下列任一值:货币符号在前且没有分隔($1)货币符号在后且没有分隔(1$)货币符号在前且有一分隔符($1)货币符号在后且有一分隔符(1$)如果此项目不存在,将使用Windows"控制面板"的缺省值.
CurrencyDigitsCurrencyNegFormat
指定用来作货币量小数部分的十进制数.如果此项目不存在,将使用Windows"控制面板"的缺省值.可设置为下列值之一:($1)–$1$–1$1–(1$)–1$1–$1$––1$–$11$–$1–$–11–$($1)(1$)此示例的目的为显示美元符号,但是在实际程序之中,它应被相应的CurrencySymbol值取代.如果此项目不存在,将使用Windows"控制面板"的缺省值.
CurrencyThousandSymbol指示在正文文件中使用哪一个字符符号来分隔货币值的千位.如果此项目不存在,将使用Windows"控制面板"的缺省值.CurrencyDecimalSymbol可以设置任一字符来分隔货币量的整数与小数部分.如果此项目不存在,将使用Windows"控制面板"的缺省值.DecimalSymbol可以设置任一字符来分隔一个数的整数与小数部分.如果此项目不存在,将使用Windows"控制面板"的缺省值.NumberDigits指示一个数的小数部分的十进制数.如果此项目不存在,将使用Windows"控制面板"的缺省值.NumberLeadingZeros指定一个小于1而且大于-1的十进制数是否应该包含前导零;此值可为False(没有前导零)或True.
Col1,Col2,...
列出正文文件中被读入的字段.此项的格式为:Coln=columnNametype[Width#]columnName:嵌有空格的字段名应括在括号中.Type:可以是Bit,Byte,Short,Long,Decimal,Currency,Single,Double,DateTime.Binary,OLE,Text,orMemo.除此之外,还支持下列ODBC文本驱动程序类型:Char(同Text)Float(同Double)Integer(同Short)LongChar(同Memo)Date日期格式在Memo类型中,一个附加的格式标记[AttributeHyperlink]可用于指明Access中激活的URL's列.在十进制类型中应使用附加格式标记[Scale#]Precision#]shouldbeused.
TextDelimiter
可设置为单个的字符用来限定包含其他特殊字符的字符串.E.g."abc","xyz,pqr","hij"若无入口,缺省值为两次引用.入口为"none"字符串则无定界符.
注意当更改Windows注册表设置时,要使新设置生效,必须先退出,然后重新激活数据库引擎.
请参阅定制MicrosoftJet的Windows注册环境
为ODBC访问配置MicrosoftJet数据库引擎
下列内容将介绍MicrosoftJet数据库引擎为了与ODBC数据库进行连接而配置的MicrosoftWindows注册表设置.
与MicrosoftJet连接的ODBC数据库的初始化设置\HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\Engines\ODBC文件夹包含MicrosoftJet数据库引擎的初始化设置.
Jet\3.5\Engines\文件夹中项目的典型设置示於下列示例.注意Jet\3.5\Engines\ODBC文件夹中项目的典型设置示於下列示例.LoginTimeout=20QueryTimeout=60ConnectionTimeout=600AsyncRetryInterval=500AttachCaseSensitive=0AttachableObjects='TABLE','VIEW','SYSTEMTABLE','ALIAS','SYNONYM'SnapshotOnly=0TraceSQLMode=0TraceODBCAPI=0DisableAsync=1TryJetAuth=1PreparedInsert=0PreparedUpdate=0FastRequery=0FatBlastRows=-1FatBlastTimeout=3ODBCISAMAttach=0MicrosoftJet数据库引擎使用如下的ODBC文件夹项目.
项目LoginTimeoutQueryTimeout
说明在超时前登录的尝试可以继续的秒数.缺省值是20(值是REG_DWORD类型).在超时前,一个查询可以运行的秒数(总的处理时间)如果DisableAsync=0(缺.省值),则QueryTimeout为在轮询查询完成之间等待来自服务器的响应的秒数.缺省值是60(值是REG_DWORD类型).在超时前,高速缓存的连接可以保持闲置的秒数.缺省值是600值是REG_DWORD类(型).判断服务器是否正在执行查询的轮询之间的毫秒数.此项目只用于异步处理.缺省值是500(值是REG_DWORD类型).在链接时是否准确符合表名称的指示器.值为0(链接到符合指定名称的第一个表,不区分大小写)和1(只有当名称完全符合时才链接表).缺省值是0(值是REG_DWORD类型).允许链接的服务器对象类型的列表.缺省值是:'TABLE','VIEW','SYSTEMTABLE','ALIAS','SYNONYM'(值为REG_SZ类型).指示是否强制Recordset对象为快照类型.值是0(允许为动态集)和1(强制为快照).缺省值是0(值是REG_DWORD类型).指示MicrosoftJet数据库引擎是否跟踪送至在SQLOUT.txt中的ODBC数据源的SQL语句.值是0(否)和1(是).缺省值是0(值是REG_DWORD类型).此项目可和SQLTraceMode交互改变的.指示是否跟踪ODBCAPI.txt中的ODBCAPI调用.值是0(否)和1(是).缺省值是0(值是REG_DWORD类型).指示是否强制执行同步查询.值是0(如果可能则执行异步查询)和1(强制执行同步查询).缺省值是1(值是REG_DWORD类型).
ConnectionTimeout
AsyncRetryInterval
AttachCaseSensitive
AttachableObjects
SnapshotOnly
TraceSQLMode
TraceODBCAPI
DisableAsync
TryJetAuth
指示在出现提示之前是否试着使用MicrosoftAccess用户名称和密码来登录服务器.值是0(否)和1(是).缺省值是1(值是REG_DWORD类型).指示是否使用预先准备的可在所有列中插入数据的INSERT语句.值是0(使用只插入非Null值的自定义的INSERT语句)和1(使用预先准备的INSERT语句).缺省值是0(值是REG_DWORD类型).使用预先准备的INSERT语句可能使Nulls改写服务器缺省值,且可能在没有准确插入的列上触发执行.
PreparedInsert
PreparedUpdate
指示是否使用预先准备的UPDATE语句更新所有列的数据.值是0(使用只设置已经改变的列的自定义UPDATE语句)和1(使用预先准备的UPDATE语句).缺省值是0(值是REG_DWORD类型).使用预先准备的UPDATE语句可能会在没有更改的列上触发执行.
FastRequeryFatBlastRowsFatBlastTimeoutODBCISAMAttach
指示是否使用预先准备的参数化查询的SELECT语句.值是0(否)和1(是).缺省值是0(值是REG_DWORD类型).
注意当更改Windows注册表设置时,要使新设置生效,必须先退出,然后重新激活数据库引擎.
请参阅定制MicrosoftJet的Windows注册环境
新增功能的概述
MicrosoftJet4.x版有许多新增功能,其中包括额外的SQL保留字,SQL数据类型和ODBC标量函数.目前,有更多对SQL与ANSISQL进行比较的信息,以及有关等效ANSISQL数据类型的信息.仅当使用Jet4.x和MicrosoftOLEDBProviderforJet时,百分号(%)和下划线字符(_)这两个ANSISQL通配符才可用.有关这些新功能的详细信息,参见:
SQL保留字SQL数据类型ODBC标量函数
MicrosoftJetSQL与ANSISQL的比较信息等效的ANSISQL数据类型在字符串比较中使用通配符
MicrosoftJet4.x有新的数据定义语言语句,新的数据操作语言语句,用于定制MicrosoftWindows注册表设置的额外方法以及用于初始化数据库引擎驱动程序的额外设置.有关这些新功能的详细信息,参见:
数据定义语言的新增功能数据操作语言的新增功能
Windows注册表设置的新增功能
数据定义语言的新增功能
MicrosoftJet4.x版有用于数据定义语言的新增和增强语句.有关这些语句的详细信息,参见:
ALTERTABLE语句CONSTRAINT子句CREATEPROCEDURE语句CREATETABLE语句CREATEVIEW语句DROP语句
CREATEUSER或GROUP语句ADDUSER语句DROPUSER或GROUP语句ALTERUSER或DATABASE语句GRANT语句REVOKE语句
请参阅新增功能的概述数据操作语言的新增功能Windows注册表设置的新增功能
数据操作语言的新增功能
Microsoft4.x版有用于数据操作语言的新增和增强语句.有关这些语句的详细信息,参见:
EXECUTE语句PROCEDURE子句
TRANSACTION语句
请参阅
新增功能的概述数据定义语言的新增功能
Windows注册表设置的新增功能
Windows注册表设置的新增功能
MicrosoftJet4.x版提供四种修改MicrosoftWindows注册表设置的方法.除使用Regedit.exe来改写默认设置,或在应用程序注册表树中创建一个部分来管理设置外,您还可以从DAO中使用SetOption方法或使用MicrosoftOLEDBProviderforJet中的连接属性来修改注册表设置.为Jet数据库引擎的初始化设置提供了详细的信息和示例.这些设置用于访问MicrosoftAccess数据库.还提供了关于MicrosoftJet复制设置的信息.有关这些方法和设置的详细信息,参见:
定制MicrosoftJet的Windows注册表设置
初始化MicrosoftJet4.0数据库引擎驱动程序
请参阅新增功能的概述数据定义语言的新增功能数据操作语言的新增功能