(仅限 AIR)
flash.data
public class SQLConnection
继承SQLConnection Inheritance EventDispatcher Inheritance Object

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

SQLConnection 实例用于管理本地 SQL 数据库文件(本地数据库)的创建和连接过程。

SQLConnection 类的功能分为以下几个类别:

SQLConnection 实例可在异步和同步这两种完全不同的执行模式之一中运行。若要使用同步执行模式,请使用 open() 方法连接到 SQLConnection 实例的主数据库。若要使用异步执行模式,请使用 openAsync() 方法连接该实例的主数据库。

在使用异步执行模式时,可以使用事件侦听器或 Responder 实例来确定操作何时完成或失败。由于操作是在后台而不是在主应用程序线程中运行,因此即使数据库操作正在执行,应用程序也可以继续运行并响应用户交互。

在异步执行模式中,可以通过调用相应的方法来开始特定操作,并可以通过对相应的事件注册侦听器来检测操作的完成(或失败)。每个操作都有一个相关联的事件,操作成功完成时将调度该事件;例如,当一个 openAsync() 方法调用成功完成时(数据库连接打开时),将会调度 open 事件。当任何操作失败时,将调度 error 事件。SQLErrorEvent 对象的 error 属性中的 SQLError 实例包含有关特定错误的信息,包括尝试的操作和操作失败的原因。

在使用同步执行模式时,不必注册事件侦听器即可以确定操作何时完成或失败。若要识别错误,请将引发错误的语句括在 try..catch 块中。由于同步操作是在主执行线程中执行的,因此执行数据库操作时,所有应用程序功能(包括刷新屏幕和允许鼠标和键盘互操作)都暂停。对于长时间运行的操作,这会导致应用程序中出现明显的暂停。

另请参见

flash.data.SQLStatement
flash.events.SQLEvent
flash.events.SQLErrorEvent
flash.errors.SQLError


公共属性
 属性定义方
  AIR-only autoCompact : Boolean
[只读 (read-only)] 指示在最初创建当前数据库时是否启用自动压缩(为创建该数据库的 open() 或 openAsync() 调用中的 autoCompact 参数指定的值)。
SQLConnection
  AIR-only cacheSize : uint
提供对此连接的缓存大小的访问,缓存大小表示在内存中一次容纳的最大数据库磁盘页数。
SQLConnection
  AIR-only columnNameStyle : String
指示在 SELECT 语句结果中报告列名称的方式。
SQLConnection
  AIR-only connected : Boolean
[只读 (read-only)] 指示 SQLConnection 实例是否具有到数据库文件的打开连接。
SQLConnection
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  AIR-only inTransaction : Boolean
[只读 (read-only)] 指示事务中当前是否涉及此连接。
SQLConnection
  AIR-only lastInsertRowID : Number
[只读 (read-only)] 上次生成的行标识符(由 SQL INSERT 语句创建)。
SQLConnection
  AIR-only pageSize : uint
[只读 (read-only)] 指示在最初创建当前数据库时指定的数据库页大小,以字节为单位(为创建该数据库的 open() 或 openAsync() 调用中的 pageSize 参数指定的值)。
SQLConnection
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
  AIR-only totalChanges : Number
[只读 (read-only)] 包含在打开数据库连接后所做的数据更改的总数。
SQLConnection
公共方法
 方法定义方
  
创建 SQLConnection 实例。
SQLConnection
  
AIR-only addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
SQLConnection
  
AIR-only analyze(resourceName:String = null, responder:Responder = null):void
收集有关数据库索引的统计信息,并将其存储在数据库中。
SQLConnection
  
AIR-only attach(name:String, reference:Object = null, responder:Responder = null, encryptionKey:ByteArray = null):void
将另一个数据库添加到 SQLConnection 实例中,并将新数据库命名为指定的名称。
SQLConnection
  
AIR-only begin(option:String = null, responder:Responder = null):void
开始一个事务,其中将对针对连接的一个或多个数据库执行的所有 SQL 语句进行分组。
SQLConnection
  
AIR-only cancel(responder:Responder = null):void
终止当前对连接到 SQLConnection 实例的数据库执行的所有 SQL 语句。
SQLConnection
  
AIR-only close(responder:Responder = null):void
断开当前数据库连接。
SQLConnection
  
AIR-only commit(responder:Responder = null):void
提交一个现有事务,从而导致将该事务的语句执行的任何动作永久应用于数据库。
SQLConnection
  
AIR-only compact(responder:Responder = null):void
回收数据库中所有未使用的空间。
SQLConnection
  
AIR-only deanalyze(responder:Responder = null):void
删除通过调用 analyze() 方法创建的所有统计信息。
SQLConnection
  
AIR-only detach(name:String, responder:Responder = null):void
断开另一个以前使用 attach() 方法连接到 SQLConnection 实例的数据库。
SQLConnection
 Inherited
将事件调度到事件流中。
EventDispatcher
  
提供对 loadSchema() 方法调用结果的访问。
SQLConnection
 Inherited
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
EventDispatcher
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
  
AIR-only loadSchema(type:Class = null, name:String = null, database:String = "main", includeColumnSchema:Boolean = true, responder:Responder = null):void
从连接的数据库或任何附加的数据库中加载架构信息。
SQLConnection
  
AIR-only open(reference:Object = null, openMode:String = "create", autoCompact:Boolean = false, pageSize:int = 1024, encryptionKey:ByteArray = null):void
打开到位于文件系统中的指定位置的数据库文件的连接,或者在该位置创建并打开新的数据库文件,或者创建并打开内存中的数据库。
SQLConnection
  
AIR-only openAsync(reference:Object = null, openMode:String = "create", responder:Responder = null, autoCompact:Boolean = false, pageSize:int = 1024, encryptionKey:ByteArray = null):void
打开到位于文件系统中的指定位置的数据库文件的连接,或者在该位置创建并打开新的数据库文件,或者创建并打开内存中的数据库。
SQLConnection
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
  
AIR-only reencrypt(newEncryptionKey:ByteArray, responder:Responder = null):void
更改加密数据库的加密密钥。
SQLConnection
  
AIR-only removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。
SQLConnection
  
AIR-only rollback(responder:Responder = null):void
回滚使用 begin() 方法创建的现有事务,这意味着放弃事务中的任何 SQL 语句所做的所有更改。
SQLConnection
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
返回指定对象的字符串表示形式。
Object
 Inherited
返回指定对象的原始值。
Object
 Inherited
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
EventDispatcher
事件
 事件 摘要 定义方
 Inherited[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。EventDispatcher
  在 analyze() 操作成功完成时调度。SQLConnection
  在 attach() 方法调用操作成功完成时调度。SQLConnection
  在 begin() 方法调用操作成功完成时调度。SQLConnection
  在 cancel() 方法调用操作成功完成时调度。SQLConnection
  在 close() 方法调用操作成功完成时调度。SQLConnection
  在 commit() 方法调用操作成功完成时调度。SQLConnection
  在 compact() 方法调用操作成功完成时调度。SQLConnection
 Inherited[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。EventDispatcher
  在 deanalyze() 方法调用操作成功完成时调度。SQLConnection
  在任何连接的数据库的任何表中的数据由于 SQL DELETE 命令而发生更改时调度。SQLConnection
  在 detach() 方法调用操作成功完成时调度。SQLConnection
  任何 SQLConnection 对象的异步操作导致错误时调度。SQLConnection
  在任何连接的数据库的任何表中的数据由于 SQL INSERT 命令而发生更改时调度。SQLConnection
  在 openAsync() 方法调用操作成功完成时调度。SQLConnection
  调用 reencrypt() 方法的操作成功完成时将调度此事件。SQLConnection
  在 rollback() 方法调用操作成功完成时调度。SQLConnection
  在 loadSchema() 方法调用操作成功完成并且架构结果准备就绪时调度。SQLConnection
  在任何连接的数据库的任何表中的数据由于 SQL UPDATE 命令而发生更改时调度。SQLConnection
属性详细信息
AIR-only autoCompact属性
autoCompact:Boolean  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

指示在最初创建当前数据库时是否启用自动压缩(为创建该数据库的 open()openAsync() 调用中的 autoCompact 参数指定的值)。如果此属性为 true,则每次写入操作后从数据库文件中自动删除未使用的空间,使数据库文件保持更小。如果该属性为 false,则由删除的数据先前占用的空间保留在数据库文件中,需要时可重新使用。即使 autoCompactfalse,也可以通过调用 compact() 方法强制数据库回收未使用的空间。

如果 connected 属性为 false,则此属性设置为 false



实现
    public function get autoCompact():Boolean

另请参见

AIR-only cacheSize属性 
cacheSize:uint  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

提供对此连接的缓存大小的访问,缓存大小表示在内存中一次容纳的最大数据库磁盘页数。每个页面使用约 1.5 KB 内存(具体取决于为用于创建数据库的 open()openAsync() 方法调用的 pageSize 参数指定的值)。默认缓存大小为 2000。如果某一应用程序正在执行更改数据库许多行的 UPDATEDELETE 操作,则提高缓存大小可提高速度,但会以提高内存使用量为代价。



实现
    public function get cacheSize():uint
    public function set cacheSize(value:uint):void

引发
IllegalOperationError — 在 SQLConnection 实例未连接到数据库(connected 属性为 false)的情况下尝试设置此属性时;或如果某一事务当前处于打开状态(inTransaction 属性为 true)。

另请参见

AIR-only columnNameStyle属性 
columnNameStyle:String  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

指示在 SELECT 语句结果中报告列名称的方式。

SQLColumnNameStyle 类中定义的常数表示此属性的可能值:



实现
    public function get columnNameStyle():String
    public function set columnNameStyle(value:String):void

引发
IllegalOperationError — 在 SQLConnection 实例未连接到数据库(connected 属性为 false)的情况下尝试设置此属性时。

另请参见

AIR-only connected属性 
connected:Boolean  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

指示 SQLConnection 实例是否具有到数据库文件的打开连接。



实现
    public function get connected():Boolean

另请参见

AIR-only inTransaction属性 
inTransaction:Boolean  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

指示事务中当前是否涉及此连接。



实现
    public function get inTransaction():Boolean

另请参见

AIR-only lastInsertRowID属性 
lastInsertRowID:Number  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

上次生成的行标识符(由 SQL INSERT 语句创建)。行标识符用于唯一标识数据库表中的行。该值通常由数据库生成。

如果未连接数据库或未执行 INSERT 语句,则该值为 0。

用于单个 SQL INSERT 语句执行的行标识符可以通过由 SQLStatement 对象的 getResult() 方法返回的 SQLResult 对象的 lastInsertRowID 属性获得(在 SQLStatement 调度其 result 事件后调用时)。

有关主键和生成的行标识符的详细信息,请参阅附录“本地数据库中的 SQL 支持”中的“CREATE TABLE”和“表达式”部分。



实现
    public function get lastInsertRowID():Number

另请参见

AIR-only pageSize属性 
pageSize:uint  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

指示在最初创建当前数据库时指定的数据库页大小,以字节为单位(为创建该数据库的 open()openAsync() 调用中的 pageSize 参数指定的值)。

如果 connected 属性为 false,则此属性的值为 0。

只有在数据库中创建第一个表后,才可以更改数据库的页大小(使用 open()openAsync() 方法)。



实现
    public function get pageSize():uint

另请参见

AIR-only totalChanges属性 
totalChanges:Number  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

包含在打开数据库连接后所做的数据更改的总数。除了跟踪由 INSERTDELETEUPDATE 语句所做的更改外,此值还包括由触发器导致的更改。

数据库连接关闭时,此值重置为 0。如果 SQLConnection 实例未连接到数据库文件,则此值为 0。



实现
    public function get totalChanges():Number

另请参见

构造函数详细信息
AIR-only SQLConnection()构造函数
public function SQLConnection()

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

创建 SQLConnection 实例。


引发
SecurityError — 如果从主应用程序沙箱外的任意沙箱中调用构造函数。
方法详细信息
AIR-only addEventListener()方法
override public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。可以为特定类型的事件、阶段和优先级在显示列表的所有节点上注册事件侦听器。

AIR 运行时中的 JavaScript 代码使用此方法注册 AIR API 定义的事件的事件侦听器。对于其它 JavaScript 事件(如 DOM body 对象的 onload 事件),您可以像对浏览器中运行的内容一样使用标准事件处理技术。

成功注册一个事件侦听器后,无法通过额外调用 addEventListener() 来更改其优先级。要更改侦听器的优先级,必须首先调用 removeListener()。然后,可以使用新的优先级再次注册该侦听器。

请记住,注册该侦听器后,如果继续调用具有不同 typeuseCapture 值的 addEventListener(),则会创建单独的侦听器注册。例如,如果首先注册 useCapture 设置为 true 的侦听器,则该侦听器只在捕获阶段进行侦听。如果使用同一个侦听器对象再次调用 addEventListener(),并将 useCapture 设置为 false,那么便会拥有两个单独的侦听器:一个在捕获阶段进行侦听,另一个在目标和冒泡阶段进行侦听。

不能只为目标阶段或冒泡阶段注册事件侦听器。这些阶段在注册期间是成对出现的,因为冒泡阶段只适用于目标节点的始祖。

如果不再需要某个事件侦听器,可调用 removeEventListener() 删除它,否则会产生内存问题。由于垃圾回收器不会删除仍包含引用的对象,因此不会从内存中自动删除使用已注册事件侦听器的对象。

复制 EventDispatcher 实例时并不复制其中附加的事件侦听器。(如果新近创建的节点需要一个事件侦听器,必须在创建该节点后附加该侦听器。) 但是,如果移动 EventDispatcher 实例,则其中附加的事件侦听器也会随之移动。

如果在正在处理事件的节点上注册事件侦听器,则不会在当前阶段触发事件侦听器,但会在事件流的稍后阶段触发,如冒泡阶段。

如果从正在处理事件的节点中删除事件侦听器,则该事件侦听器仍由当前操作触发。删除事件侦听器后,决不会再次调用该事件侦听器(除非再次注册以备将来处理)。

参数

type:String — 事件的类型。
 
listener:Function — 处理事件的侦听器函数。此函数必须接受 Event 对象作为其唯一的参数,并且不能返回任何结果,如下面的示例所示:
function(evt:Event):void

函数可以有任何名称。

 
useCapture:Boolean (default = false)此参数适用于 SWF 内容所使用的 ActionScript 3.0 显示列表体系结构中的显示对象。确定侦听器是运行于捕获阶段、目标阶段还是冒泡阶段。 如果将 useCapture 设置为 true,则侦听器只在捕获阶段处理事件,而不在目标或冒泡阶段处理事件。如果 useCapturefalse,则侦听器只在目标或冒泡阶段处理事件。要在所有三个阶段都侦听事件,请调用 addEventListener 两次:一次将 useCapture 设置为 true,一次将 useCapture 设置为 false .
 
priority:int (default = 0) — 事件侦听器的优先级。优先级由一个带符号的 32 位整数指定。数字越大,优先级越高。优先级为 n 的所有侦听器会在优先级为 n -1 的侦听器之前得到处理。如果两个或更多个侦听器共享相同的优先级,则按照它们的添加顺序进行处理。默认优先级为 0。
 
useWeakReference:Boolean (default = false) — 确定对侦听器的引用是强引用,还是弱引用。强引用(默认值)可防止您的侦听器被当作垃圾回收。弱引用则没有此作用。

类级别成员函数不属于垃圾回收的对象,因此可以对类级别成员函数将 useWeakReference 设置为 true 而不会使它们受垃圾回收的影响。如果对作为嵌套内部函数的侦听器将 useWeakReference 设置为 true,则该函数将作为垃圾回收并且不再是永久函数。如果创建对该内部函数的引用(将该函数保存到另一个变量中),则该函数将不作为垃圾回收并仍将保持永久。

AIR-only analyze()方法 
public function analyze(resourceName:String = null, responder:Responder = null):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

收集有关数据库索引的统计信息,并将其存储在数据库中。查询优化程序(数据库引擎的一部分,用于确定执行每个语句的最有效方式)随后可以使用这些统计信息。在执行特定查询时,统计信息有助于查询优化程序针对要使用的索引做出更佳选择。

如果数据库定义了索引,但尚未调用 analyze() 方法,则运行时仍将使用这些索引执行语句。不过,在没有由 analyze() 方法生成的附加统计信息的情况下,运行时不能为特定查询选择最有效的索引。

当表的数据发生更改时(由于执行 INSERTUPDATEDELETE 语句),与该表相关联的索引也会更改。由 analyze() 生成的统计信息不会自动更新。因此,进行大量数据更改后,再次调用 analyze() 方法可能大有裨益。但是,再次调用 analyze() 所获得的益处将取决于多个因素,包括对表定义的索引数、表中已更改的行数和总行数之间的关系、表的索引数据有多大变化以及更改后的数据和更改前的数据之间的差异程度。

resourceName 参数指示是应该对所有附加的数据库的索引、特定数据库的索引,还是特定表的索引执行操作。

每次调用此方法时,均会清除以前创建的任何统计数据并为 resourceName 参数中指定的数据库或表(如果 resourceNamenull,则为所有连接的数据库中的所有表)重新创建统计数据。数据库连接处于打开状态时,可以随时调用此方法。analyze() 操作和其统计数据不包括在事务中;不过,当数据库具有当前事务时(inTransaction 属性为 true),最好不要调用 analyze()。这是因为 analyze() 调用不会考虑已在事务中执行但尚未提交的任何数据、表架构或索引更改,并且事务一旦提交,analyze() 数据将会过期。

若要删除用 analyze() 方法创建的统计数据,请使用 deanalyze() 方法。

参数

resourceName:String (default = null) — 要分析其索引的数据库或表的名称。如果指定的资源是一个名称在所有附加的数据库中唯一的表,则只需指定表名称。不过,指定表名称时可以使用 [database-name].[table-name] 形式以避免表名称不唯一时造成混淆。如果 resourceName 参数为 null(默认值),则分析所有附加的数据库中的所有索引。
 
responder:Responder (default = null) — 一个对象,指定操作成功或失败时要调用的方法。在异步执行模式中,如果 responder 参数为 null,则执行完成时将调度 analyzeerror 事件。


事件
analyze:SQLEvent — 在操作成功完成时调度。
 
error:SQLErrorEvent — 在异步执行模式中操作失败时调度。

引发
IllegalOperationError — 在 SQLConnection 实例未连接到数据库(connected 属性为 false)的情况下调用此方法时。
 
SQLError — 如果该操作在同步执行模式中失败。

另请参见

AIR-only attach()方法 
public function attach(name:String, reference:Object = null, responder:Responder = null, encryptionKey:ByteArray = null):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

将另一个数据库添加到 SQLConnection 实例中,并将新数据库命名为指定的名称。附加数据库允许在对此 SQLConnection 实例执行的 SQL 语句中使用该数据库。

如果已经使用指定的名称附加了数据库,则调用 attach() 将生成一个 error 事件。不过,同一个数据库可以使用唯一的名称附加多次。单个 SQLConnection 实例只能附加 10 个数据库。

在使用可对主数据库(使用 open()openAsync() 连接的数据库)执行的 attach() 连接的数据库上可以执行任何 SQL 语句。SQL 语句可以访问附加到该语句的关联 SQLConnection 实例的任何数据库中的表,包括在单个语句中访问多个数据库中的表。运行时在解析语句中的表名称时,它将按照数据库的附加顺序搜索 SQLConnection 实例的数据库,从使用 open()openAsync() 方法连接的数据库开始搜索。在语句中使用该数据库名称(在 attach() 方法的 name 参数中指定)可以显式限定表名称。

若要删除使用 attach() 方法附加的数据库,请使用 detach() 方法。在关闭 SQLConnection 实例(通过调用 close() 方法)时,会断开所有附加的数据库。

附加的数据库将使用与主数据库相同的执行模式(同步或异步),具体取决于主数据库是使用 open() 方法还是 openAsync() 方法进行连接的。

参数

name:String — 用于识别新附加的数据库的名称。在使用 [database-name].[table-name] 格式时,此名称可在 SQL 语句中用于显式指示某个表属于指定的数据库。“main”和“temp”是保留名称,不得使用。
 
reference:Object (default = null) — 对要附加的数据库文件的引用(flash.filesystem.File 实例)。如果该引用所引用的文件不存在,则将根据为用于连接主数据库的 open()openAsync() 调用中的 openMode 参数指定的值,创建一个新数据库文件或引发错误。

如果该参数的值为 null,则将在内存中创建并附加一个数据库。

 
responder:Responder (default = null) — 一个对象,指定操作成功或失败时要调用的方法。在异步执行模式中,如果 responder 参数为 null,则执行完成时将调度 attacherror 事件。
 
encryptionKey:ByteArray (default = null) — 数据库文件的加密密钥。如果调用 attach() 来创建数据库,则对该数据库进行加密,并使用指定密钥作为数据库的加密密钥。如果通过该调用附加现有的加密数据库,则该值必须与数据库的加密密钥相匹配,否则会出错。如果所附加的数据库未加密(即为了创建未加密的数据库),则该值必须为 null(默认值)。

有效的加密密钥长度为 16 个字节。无法对内存中的数据库加密,因此 reference 参数的值为 null 时此参数必须为 null

附加加密数据库时,如果所提供的加密密钥与数据库的加密密钥不匹配,则会出现异常。在同步执行模式中将引发 SQLError 异常。在异步执行模式中将调度 SQLErrorEvent,并且该事件对象的 error 属性包含一个 SQLError 实例。在任何一种情况下,SQLError 对象的 errorID 属性都为 3138(“所打开的文件不是数据库文件”)。

从 AIR 1.5 开始提供 encryptionKey 参数。


事件
attach:SQLEvent — 在操作成功完成时调度。
 
error:SQLErrorEvent — 在异步执行模式中操作失败时调度。

引发
ArgumentError name 参数为空字符串 ("") 或 null
 
ArgumentError — 为 reference 参数指定的值不是 flash.filesystem.File 实例时
 
ArgumentError encryptionKey 参数不是 null,且其 length 不是 16 个字节时
 
ArgumentError reference 参数为 null,且 encryptionKey 参数不是 null
 
IllegalOperationError — SQLConnection 实例未连接到数据库(connected 属性为 false)时;或某个事务当前处于打开状态(inTransaction 属性为 true)时。
 
SQLError — 如果该操作在同步执行模式中失败。

另请参见

AIR-only begin()方法 
public function begin(option:String = null, responder:Responder = null):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

开始一个事务,其中将对针对连接的一个或多个数据库执行的所有 SQL 语句进行分组。

默认情况下,每个 SQL 语句都是在其自己的事务内执行的,语句的执行成功或失败时,事务将结束。使用 begin() 方法创建事务将导致创建新的手动事务。从此时开始,针对 SQLConnection 实例执行的所有 SQL 语句都在该事务内发生,并可以分组提交(永久保存)或回滚(撤消)这些语句所执行的任何动作或修改。

不允许使用嵌套的事务(忽略对 begin() 的嵌套调用)。若要结束事务,请调用 commit()rollback() 方法,具体取决于是永久保存还是放弃由事务语句所做的更改。

如果当前有事务打开时数据库连接关闭,则 AIR 会自动将该事务回滚。(注意:对于 AIR 1.1 和早期版本,连接关闭时将自动提交一个打开事务。)

一个事务不限于在单个数据库中执行语句;事务可以包括对附加的不同数据库执行的语句。

参数

option:String (default = null) — 指示将由事务使用的锁定策略。此值可以是 SQLTransactionLockType 类中定义的常数之一:
  • SQLTransactionLockType.DEFERRED 指示在首次读取或写入操作之前不获取锁定。
  • SQLTransactionLockType.EXCLUSIVE 指示尽快获取锁定,且其他 SQLConnection 实例无法读取或写入该数据库。
  • SQLTransactionLockType.IMMEDIATE 指示尽快获取锁定,其他 SQLConnection 实例可以读取但不能写入该数据库。

默认值 (null) 等效于 SQLTransactionLockType.DEFERRED

 
responder:Responder (default = null) — 一个对象,指定操作成功或失败时要调用的方法。在异步执行模式中,如果 responder 参数为 null,则执行完成时将调度 beginerror 事件。


事件
begin:SQLEvent — 在操作完成时调度。
 
error:SQLErrorEvent — 在异步执行模式中操作失败时调度。

引发
IllegalOperationError — 在 SQLConnection 实例未连接到数据库(connected 属性为 false)的情况下调用此方法时。
 
ArgumentError — 如果指定的选项不是 SQLTransactionLockType 常数之一。
 
SQLError — 如果该操作在同步执行模式中失败。

另请参见

AIR-only cancel()方法 
public function cancel(responder:Responder = null):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

终止当前对连接到 SQLConnection 实例的数据库执行的所有 SQL 语句。此方法可用于停止长时间运行或失控的查询。

如果在调用 cancel() 方法时有些语句正在执行,则此方法会终止这些语句的操作,并回滚任何未完成的更新或事务。如果当前没有执行任何语句,则调用此方法会回滚已打开的事务,除此之外不执行任何操作。

参数

responder:Responder (default = null) — 一个对象,指定操作成功或失败时要调用的方法。在异步执行模式中,如果 responder 参数为 null,则执行完成时将调度 cancelerror 事件。


事件
cancel:SQLEvent — 在操作成功完成时调度。
 
error:SQLErrorEvent — 在异步执行模式中操作失败时调度。

引发
IllegalOperationError — 在 SQLConnection 实例未连接到数据库(connected 属性为 false)的情况下调用此方法时。
 
SQLError — 如果该操作在同步执行模式中失败。

另请参见

AIR-only close()方法 
public function close(responder:Responder = null):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

断开当前数据库连接。还会断开所有附加的数据库。

如果在调用 close() 时有打开的事务,则会提交该事务。在将 SQLConnection 实例当作垃圾回收时,运行时会自动调用 close(),这包括在 SQLConnection 仍然连接到数据库时 AIR 应用程序已关闭的情况。

参数

responder:Responder (default = null) — 一个对象,指定操作成功或失败时要调用的方法。在异步执行模式中,如果 responder 参数为 null,则执行完成时将调度 closeerror 事件。


事件
close:SQLEvent — 在操作成功完成时调度。
 
error:SQLErrorEvent — 在异步执行模式中操作失败时调度。

引发
SQLError — 如果该操作在同步执行模式中失败。
AIR-only commit()方法 
public function commit(responder:Responder = null):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

提交一个现有事务,从而导致将该事务的语句执行的任何动作永久应用于数据库。

参数

responder:Responder (default = null) — 一个对象,指定操作成功或失败时要调用的方法。在异步执行模式中,如果 responder 参数为 null,则执行完成时将调度 commiterror 事件。


事件
commit:SQLEvent — 在操作成功完成时调度。
 
error:SQLErrorEvent — 在操作完成并出错时调度。

引发
IllegalOperationError — 在 SQLConnection 实例未连接到数据库(connected 属性为 false)的情况下调用该方法时;或如果当前未打开任何事务(inTransaction 属性为 false)。

另请参见

AIR-only compact()方法 
public function compact(responder:Responder = null):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

回收数据库中所有未使用的空间。从数据库中删除某一对象(表、索引或触发器)时,该对象会留下空白空间。这会使数据库文件比实际需要的文件更大,但可以加速 INSERT 操作。随着时间的推移,INSERTDELETE 操作会使数据库文件结构出现碎块,从而降低数据库内容的磁盘访问速度。此方法可压缩数据库文件、消除空白页、调整表数据使其连续并清理数据库文件结构。

不能对附加的数据库文件执行 compact() 操作,只能对由 SQLConnection 实例打开的主(原始)数据库文件执行此操作。如果有活动的事务,则此操作将失败,此操作对内存中的数据库没有影响。

参数

responder:Responder (default = null) — 一个对象,指定操作成功或失败时要调用的方法。在异步执行模式中,如果 responder 参数为 null,则执行完成时将调度 compacterror 事件。


事件
compact:SQLEvent — 在操作成功完成时调度。
 
error:SQLErrorEvent — 在异步执行模式中操作失败时调度。

引发
IllegalOperationError — 如果在 SQLConnection 实例未连接到数据库(connected 属性为 false)的情况下调用该方法;或如果某一事务当前正在执行(inTransaction 属性为 true)。
 
SQLError — 如果该操作在同步执行模式中失败。
AIR-only deanalyze()方法 
public function deanalyze(responder:Responder = null):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

删除通过调用 analyze() 方法创建的所有统计信息。

由于由 analyze() 方法生成的统计信息占用数据库的空间,因此调用 deanalyze() 可以收回该空间,如在删除多个索引或表之后。

此操作不包括在活动事务中。

参数

responder:Responder (default = null) — 一个对象,指定操作成功或失败时要调用的方法。在异步执行模式中,如果 responder 参数为 null,则执行完成时将调用 deanalyzeerror 事件。


事件
deanalyze:SQLEvent — 在操作成功完成时调度。
 
error:SQLErrorEvent — 在异步执行模式中操作失败时调度。

引发
IllegalOperationError — 在 SQLConnection 实例未连接到数据库(connected 属性为 false)的情况下调用此方法时。
 
SQLError — 如果该操作在同步执行模式中失败。

另请参见

AIR-only detach()方法 
public function detach(name:String, responder:Responder = null):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

断开另一个以前使用 attach() 方法连接到 SQLConnection 实例的数据库。可以使用不同名称多次附加同一个数据库文件,在断开一个文件的连接时,其他连接保持不变。如果数据库具有打开的事务(如果 inTransaction 属性为 true),则无法断开该数据库。

参数

name:String — 要断开的数据库的给定名称.
 
responder:Responder (default = null) — 一个对象,指定操作成功或失败时要调用的方法。在异步执行模式中,如果 responder 参数为 null,则执行完成时将调度 detacherror 事件。


事件
detach:SQLEvent — 在操作成功完成时调度。
 
error:SQLErrorEvent — 在异步执行模式中操作失败时调度。

引发
ArgumentError — 如果 name 参数为 null 或包含空字符串 ("")。
 
IllegalOperationError — 如果在 SQLConnection 实例未连接到数据库(connected 属性为 false)的情况下调用此方法;或如果该 SQLConnection 实例具有一个打开的事务(inTransaction 属性为 true)。
 
SQLError — 如果该操作在同步执行模式中失败。

另请参见

AIR-only getSchemaResult()方法 
public function getSchemaResult():SQLSchemaResult

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

提供对 loadSchema() 方法调用结果的访问。getSchemaResult() 方法的行为与先进先出结果队列相同。每次 loadSchema() 方法调用完成时(每次在异步执行模式中调度 schema 事件时),都会向队列中添加一个新 SQLSchemaResult 对象。每次调用 getSchemaResult() 方法时,即会返回最早的结果(最先添加到队列中的结果)并从队列中删除该结果。当队列中不再有对象时,getSchemaResult() 将返回 null

当数据库连接关闭时,此方法返回 null

返回
SQLSchemaResult

另请参见

AIR-only loadSchema()方法 
public function loadSchema(type:Class = null, name:String = null, database:String = "main", includeColumnSchema:Boolean = true, responder:Responder = null):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

从连接的数据库或任何附加的数据库中加载架构信息。该架构指示数据库的表、列、索引和触发器的结构。

若要访问已加载的架构,请使用 SQLConnection.getSchemaResult() 方法。

在异步执行模式中,如果操作成功,则调度 schema 事件;如果操作失败,则调度 error 事件。

typename 参数值的组合确定由 loadSchema() 方法生成的架构数据的类型和随后生成的 SQLSchemaResult 实例的属性值。下表列出了有效的 typename 对以及由此生成的架构数据:

type 参数 name 参数 检索以下对象的架构数据:
null null 数据库中的所有对象(所有表、视图、触发器和索引)
SQLIndexSchema null 数据库中的所有索引
SQLIndexSchema 有效的表名称对指定表定义的所有索引
SQLIndexSchema 有效的索引名称指定的索引
SQLTableSchema null 数据库中的所有表
SQLTableSchema 有效的表名称指定的表
SQLTriggerSchema null 数据库中的所有触发器
SQLTriggerSchema 有效的表名称与指定表相关联的所有触发器
SQLTriggerSchema 有效的视图名称与指定视图相关联的所有触发器
SQLTriggerSchema 有效的触发器名称指定的触发器
SQLViewSchema null 数据库中的所有视图
SQLViewSchema 有效的视图名称指定的视图

如果 typename 参数的组合不对应于指定的组合之一,则在异步执行模式中将调度 error 事件或在同步执行模式中引发异常。例如,如果 type 参数为 SQLViewSchemaname 参数为表的名称(而不是视图的名称),则将引发一个错误,指示数据库不包含具有指定名称且属于指定类型的对象。

如果数据库为空(不包含任何表、视图、触发器或索引),则调用 loadSchema() 方法将导致错误。

参数

type:Class (default = null) — 指示要加载的架构的类型。null 值(默认值)指示应该加载所有架构信息。为此参数指定非 null 值可缩小生成的架构范围,删除结果中可能不需要的信息,并使操作更有效。该值必须是以下类之一的类名称:
  • SQLIndexSchema
  • SQLTableSchema
  • SQLTriggerSchema
  • SQLViewSchema
 
name:String (default = null) — 指示加载哪个资源的架构。此值的使用方式取决于指定的 type 参数。通常,此值是数据库对象的名称,如表名称、索引或视图名称,等等。如果指定了值,则结果中只包括具有指定名称的数据库对象的架构信息。

如果指定的值无效,则调度 error 事件(或在同步执行模式中引发错误)。type 参数值必须对应于命名对象的类型,以便使该值有效,如方法描述中所述。

如果 name 参数为 null,则包括指定类型的所有架构。如果指定的值无效,则调度 error 事件。

 
database:String (default = "main") — 加载其架构的数据库的名称。如果指定的值无效,则调度 error 事件。
 
includeColumnSchema:Boolean (default = true) — 指示结果是否包括表和视图的列的架构信息。
 
responder:Responder (default = null) — 一个对象,指定操作成功或失败时要调用的方法。在异步执行模式中,如果 responder 参数为 null,则执行完成时将调度 schemaerror 事件。


事件
schema:SQLEvent — 在操作成功完成时调度。
 
error:SQLErrorEvent — 在操作完成并出错时调度。

引发
IllegalOperationError — 在 SQLConnection 实例未连接到数据库(connected 属性为 false)的情况下调用此方法时。
 
ArgumentError — 当指定的 type 参数值不是允许的类型之一时。
 
SQLError — 在使用同步执行模式时,如果为 name 或 database 参数提供的值无效。

另请参见

AIR-only open()方法 
public function open(reference:Object = null, openMode:String = "create", autoCompact:Boolean = false, pageSize:int = 1024, encryptionKey:ByteArray = null):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

打开到位于文件系统中的指定位置的数据库文件的连接,或者在该位置创建并打开新的数据库文件,或者创建并打开内存中的数据库。

在使用此方法打开数据库时,用于创建和打开该数据库的操作,以及使用此 SQLConnection 实例执行的所有其他操作(包括语句执行和通过与此 SQLConnection 实例相关联的 SQLStatement 实例执行的其他操作)都是同步 执行的。若要异步执行这些操作,请改用 openAsync() 方法打开数据库连接。

系统会自动为使用 open() 方法连接的数据库分配数据库名称“main”;使用 [database-name].[table-name] 格式时,此名称可在 SQL 语句中用于显式指示某个表属于指定的数据库。

参数

reference:Object (default = null) — 打开的数据库文件的位置。此值必须为 flash.filesystem.File 实例。如果该参数的值为 null,则将在内存中创建并打开一个数据库。
 
openMode:String (default = "create") — 指示数据库的打开方式。此值可以是 SQLMode 类中定义的任何常数。默认值为 SQLMode.CREATE,指示如果在指定位置未找到数据库文件,则创建一个数据库文件。如果 openModeSQLMode.READ 且指定文件不存在,则调度 error 事件。当 reference 参数为 null 时,将忽略此参数。
 
autoCompact:Boolean (default = false) — 指示是否自动回收数据库中未使用的空间。仅当创建新数据库文件或打开其中尚未创建表的数据库文件时,此参数才有效。默认情况下,由删除的数据所占用的空间保留在数据库文件中,需要时可重新使用。将此参数设置为 true 会导致数据库自动回收未使用的空间。这会对性能产生负面影响,因为每次向数据库中写入数据时都需要进行更多处理,并且随着时间的推移,还会导致数据库数据产生碎片。若要强制数据库随时回收数据库文件中未使用的空间并整理数据库文件的碎片,请使用 compact() 方法。

openMode 参数为 SQLMode.READ 时,将忽略此参数。

 
pageSize:int (default = 1024) — 指示数据库的页大小(以字节表示)。仅当创建新数据库文件或打开其中尚未创建表的数据库文件时,此参数才有效。该值必须是 2 的幂数,大于等于 512 且小于等于 32768。默认值为 1024 字节。此值只能在创建表之前设置。创建表之后,试图更改此值会导致错误。
 
encryptionKey:ByteArray (default = null) — 数据库文件的加密密钥。如果调用 open() 来创建数据库,则对该数据库进行加密,并使用指定密钥作为数据库的加密密钥。如果通过该调用打开加密数据库,则该值必须与数据库的加密密钥相匹配,否则会出错。如果所打开的数据库未加密(即为了创建未加密的数据库),则该值必须为 null(默认值),否则会出错。

有效的加密密钥长度为 16 个字节。无法对内存中的数据库加密,因此 reference 参数的值为 null 时此参数必须为 null

打开加密数据库时,如果所提供的加密密钥与数据库的加密密钥不匹配,将会引发 SQLError 异常。在这种情况下,SQLError 对象的 errorID 属性为 3138(“所打开的文件不是数据库文件”)。

从 AIR 1.5 开始提供 encryptionKey 参数。


事件
open:SQLEvent — 在操作成功完成时调度。

引发
IllegalOperationError — 当 SQLConnection 实例已经具有一个到数据库的打开连接时(connected 属性为 true)。
 
SQLError — 如果操作失败。操作失败后,连接不会保持打开。
 
ArgumentError — 为 reference 参数指定的值不是 flash.filesystem.File 实例时
 
ArgumentError encryptionKey 参数不是 null,且其 length 不是 16 个字节时
 
ArgumentError reference 参数为 null,且 encryptionKey 参数不是 null
 
ArgumentError — 如果指定了无效的 pageSize 参数。这包括在模式为 SQLMode.READ 时传递页的大小。

另请参见

AIR-only openAsync()方法 
public function openAsync(reference:Object = null, openMode:String = "create", responder:Responder = null, autoCompact:Boolean = false, pageSize:int = 1024, encryptionKey:ByteArray = null):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

打开到位于文件系统中的指定位置的数据库文件的连接,或者在该位置创建并打开新的数据库文件,或者创建并打开内存中的数据库。

在使用此方法打开数据库时,用于创建和打开该数据库的操作,以及使用此 SQLConnection 实例执行的所有其他操作(包括语句执行和通过与此 SQLConnection 实例相关联的 SQLStatement 实例执行的其他操作)都是异步 执行的。若要同步执行这些操作,请改用 open() 方法打开数据库连接。

系统会自动为使用 openAsync() 方法连接的数据库分配数据库名称“main”;使用 [database-name].[table-name] 格式时,此名称可在 SQL 语句中用于显式指示某个表属于指定的数据库。

参数

reference:Object (default = null) — 打开的数据库文件的位置。此值必须为 flash.filesystem.File 实例。如果该参数的值为 null,则将在内存中创建并打开一个数据库。
 
openMode:String (default = "create") — 指示数据库的打开方式。此值可以是 SQLMode 类中定义的任何常数。默认值为 SQLMode.CREATE,指示如果在指定位置未找到数据库文件,则创建一个数据库文件。如果 openModeSQLMode.READ 且指定文件不存在,则调度 error 事件。当 reference 参数为 null 时,将忽略此参数。
 
responder:Responder (default = null) — 一个对象,指定操作成功或失败时要调用的方法。如果 responder 参数为 null,则执行完成时将调度 openerror 事件。
 
autoCompact:Boolean (default = false) — 指示是否自动回收数据库中未使用的空间。仅当创建新数据库文件或打开其中尚未创建表的数据库文件时,此参数才有效。默认情况下,由删除的数据所占用的空间保留在数据库文件中,需要时可重新使用。将此参数设置为 true 会导致数据库自动回收未使用的空间。这会对性能产生负面影响,因为每次向数据库中写入数据时都需要进行更多处理,并且随着时间的推移,还会导致数据库数据产生碎片。若要强制数据库随时回收数据库文件中未使用的空间并整理数据库文件的碎片,请使用 compact() 方法。

openMode 参数为 SQLMode.READ 时,将忽略此参数。

 
pageSize:int (default = 1024) — 指示数据库的页大小(以字节表示)。仅当创建新数据库文件或打开其中尚未创建表的数据库文件时,此参数才有效。该值必须是 2 的幂数,大于等于 512 且小于等于 32768。默认值为 1024 字节。此值只能在创建表之前设置。创建表之后,试图更改此值会导致错误。
 
encryptionKey:ByteArray (default = null) — 数据库文件的加密密钥。如果调用 openAsync() 来创建数据库,则对该数据库进行加密,并使用指定密钥作为数据库的加密密钥。如果通过该调用打开加密数据库,则该值必须与数据库的加密密钥相匹配,否则会出错。如果所打开的数据库未加密,则该值必须为 null(默认值),否则会出错。

有效的加密密钥长度为 16 个字节。无法对内存中的数据库加密,因此 reference 参数的值为 null 时此参数必须为 null

打开加密数据库时,如果所提供的加密密钥与数据库的加密密钥不匹配,将调度 SQLErrorEvent。该事件对象的 error 属性包含一个 SQLError 实例。该 SQLError 对象的 errorID 属性为 3138(“所打开的文件不是数据库文件”)。

从 AIR 1.5 开始提供 encryptionKey 参数。


事件
open:SQLEvent — 在操作成功完成时调度。
 
error:SQLErrorEvent — 在操作失败时调度。操作失败后,连接不会保持打开。

引发
IllegalOperationError — 当 SQLConnection 实例已经具有一个到数据库的打开连接时(connected 属性为 true)。
 
ArgumentError — 为 reference 参数指定的值不是 flash.filesystem.File 实例时
 
ArgumentError encryptionKey 参数不是 null,且其 length 不是 16 个字节时
 
ArgumentError reference 参数为 null,且 encryptionKey 参数不是 null
 
ArgumentError — 如果指定了无效的 pageSize 参数。这包括在模式为 SQLMode.READ 时传递页的大小。

另请参见

AIR-only reencrypt()方法 
public function reencrypt(newEncryptionKey:ByteArray, responder:Responder = null):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.5

更改加密数据库的加密密钥。此方法仅影响主数据库(使用 open()openAsync() 方法连接的数据库)的加密密钥。对创建时即加密的数据库只能调用 reencrypt()。将数据库创建为加密数据库后,就无法将其解密。同样,以后也无法对创建时未加密的数据库进行加密。

重新加密操作在其自身的事务中运行。如果重新加密的过程被中断,则数据库会将事务回滚,且不更改加密密钥。

参数

newEncryptionKey:ByteArray — 包含数据库的新加密密钥的 ByteArray。有效的加密密钥长度为 16 个字节。
 
responder:Responder (default = null) — 一个对象,指定操作成功或失败时要调用的方法。如果 responder 参数为 null,则执行完成时将调度 reencrypterror 事件。


事件
reencrypt:SQLEvent — 在操作成功完成时调度。
 
error:SQLErrorEvent — 在操作失败时调度。

引发
ArgumentError newEncryptionKey 值是 null,或其 length 不是 16 个字节时。
 
IllegalOperationError — 未打开连接时,或有打开的事务时。
 
SQLError — 如果该操作在同步执行模式中失败。

另请参见

AIR-only removeEventListener()方法 
override public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

从 EventDispatcher 对象中删除侦听器。如果没有向 EventDispatcher 对象注册任何匹配的侦听器,则对此方法的调用没有任何效果。

参数

type:String — 事件的类型。
 
listener:Function — 要删除的侦听器对象。
 
useCapture:Boolean (default = false)此参数适用于 SWF 内容所使用的 ActionScript 3.0 显示列表体系结构中的显示对象。指出是否为捕获阶段或目标阶段和冒泡阶段注册了侦听器。如果为捕获阶段以及目标和冒泡阶段注册了侦听器,则需要对 removeEventListener() 进行两次调用才能将这两个侦听器删除,一次调用将 useCapture() 设置为 true,另一次调用将 useCapture() 设置为 false

AIR-only rollback()方法 
public function rollback(responder:Responder = null):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

回滚使用 begin() 方法创建的现有事务,这意味着放弃事务中的任何 SQL 语句所做的所有更改。

参数

responder:Responder (default = null) — 一个对象,指定操作成功或失败时要调用的方法。在异步执行模式中,如果 responder 参数为 null,则执行完成时将调度 rollbackerror 事件。


事件
rollback:SQLEvent — 在操作成功完成时调度。
 
error:SQLErrorEvent — 在异步执行模式中操作失败时调度。

引发
IllegalOperationError — 在 SQLConnection 实例未连接到数据库(connected 属性为 false)的情况下调用该方法时;或如果当前未打开任何事务(inTransaction 属性为 false)。
 
SQLError — 如果该操作在同步执行模式中失败。

另请参见

事件详细信息
AIR-only analyze 事件
事件对象类型: flash.events.SQLEvent
属性 SQLEvent.type = flash.events.SQLEvent.ANALYZE

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

analyze() 操作成功完成时调度。

SQLEvent.ANALYZE 常量定义 analyze 事件对象的 type 属性值。在 SQLConnection.analyze() 方法调用成功完成时调度这种类型的事件。analyze 事件具有以下属性:
属性
bubbles false
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理事件对象的对象。
target 执行操作的 SQLConnection 对象。

另请参见

AIR-only attach 事件  
事件对象类型: flash.events.SQLEvent
属性 SQLEvent.type = flash.events.SQLEvent.ATTACH

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

attach() 方法调用操作成功完成时调度。

SQLEvent.ATTACH 常量定义 attach 事件对象的 type 属性值。在 SQLConnection.attach() 方法调用成功完成时调度这种类型的事件。attach 事件具有以下属性:
属性
bubbles false
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理事件对象的对象。
target 执行操作的 SQLConnection 对象。

另请参见

AIR-only begin 事件  
事件对象类型: flash.events.SQLEvent
属性 SQLEvent.type = flash.events.SQLEvent.BEGIN

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

begin() 方法调用操作成功完成时调度。

SQLEvent.BEGIN 常量定义 begin 事件对象的 type 属性值。在 SQLConnection.begin() 方法调用成功完成时调度这种类型的事件。begin 事件具有以下属性:
属性
bubbles false
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理事件对象的对象。
target 执行操作的 SQLConnection 对象。

另请参见

AIR-only cancel 事件  
事件对象类型: flash.events.SQLEvent
属性 SQLEvent.type = flash.events.SQLEvent.CANCEL

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

cancel() 方法调用操作成功完成时调度。

SQLEvent.CANCEL 常量定义 cancel 事件对象的 type 属性值。在 SQLConnection.cancel() 方法调用成功完成时调度这种类型的事件。cancel 事件具有以下属性:
属性
bubbles false
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理事件对象的对象。
target 执行操作的 SQLConnection 或 SQLStatement 对象。

另请参见

AIR-only close 事件  
事件对象类型: flash.events.SQLEvent
属性 SQLEvent.type = flash.events.SQLEvent.CLOSE

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

close() 方法调用操作成功完成时调度。

SQLEvent.CLOSE 常量定义 close 事件对象的 type 属性值。在 SQLConnection.close() 方法调用成功完成时调度这种类型的事件。close 事件具有以下属性:
属性
bubbles false
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理事件对象的对象。
target 执行操作的 SQLConnection 对象。

另请参见

AIR-only commit 事件  
事件对象类型: flash.events.SQLEvent
属性 SQLEvent.type = flash.events.SQLEvent.COMMIT

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

commit() 方法调用操作成功完成时调度。

SQLEvent.COMMIT 常量定义 commit 事件对象的 type 属性值。在 SQLConnection.commit() 方法调用成功完成时调度这种类型的事件。commit 事件具有以下属性:
属性
bubbles false
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理事件对象的对象。
target 执行操作的 SQLConnection 对象。

另请参见

AIR-only compact 事件  
事件对象类型: flash.events.SQLEvent
属性 SQLEvent.type = flash.events.SQLEvent.COMPACT

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

compact() 方法调用操作成功完成时调度。

SQLEvent.COMPACT 常量定义 compact 事件对象的 type 属性值。在 SQLConnection.compact() 方法调用成功完成时调度这种类型的事件。compact 事件具有以下属性:
属性
bubbles false
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理事件对象的对象。
target 执行操作的 SQLConnection 对象。

另请参见

AIR-only deanalyze 事件  
事件对象类型: flash.events.SQLEvent
属性 SQLEvent.type = flash.events.SQLEvent.DEANALYZE

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

deanalyze() 方法调用操作成功完成时调度。

SQLEvent.DEANALYZE 常量定义 deanalyze 事件对象的 type 属性值。在 SQLConnection.deanalyze() 方法调用成功完成时调度这种类型的事件。deanalyze 事件具有以下属性:
属性
bubbles false
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理事件对象的对象。
target 执行操作的 SQLConnection 对象。

另请参见

AIR-only delete 事件  
事件对象类型: flash.events.SQLUpdateEvent
属性 SQLUpdateEvent.type = flash.events.SQLUpdateEvent.DELETE

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

在任何连接的数据库的任何表中的数据由于 SQL DELETE 命令而发生更改时调度。数据更改可能是通过 SQLStatement 实例执行 DELETE 语句的直接结果,也可能是在响应语句执行时触发器触发所导致的间接结果。

SQLUpdateEvent.DELETE 常量定义 SQLConnection delete 事件的 type 属性值。delete 事件具有以下属性:
属性
bubbles false
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理事件对象的对象。
rowID 插入、删除或更新的行的唯一行标识符。
target 对其执行操作的 SQLConnection 对象。
table 发生更改的表的名称。

另请参见

AIR-only detach 事件  
事件对象类型: flash.events.SQLEvent
属性 SQLEvent.type = flash.events.SQLEvent.DETACH

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

detach() 方法调用操作成功完成时调度。

SQLEvent.DETACH 常量定义 detach 事件对象的 type 属性值。在 SQLConnection.detach() 方法调用成功完成时调度这种类型的事件。
属性
bubbles false
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理事件对象的对象。
target 执行操作的 SQLConnection 对象。

另请参见

AIR-only error 事件  
事件对象类型: flash.events.SQLErrorEvent
属性 SQLErrorEvent.type = flash.events.SQLErrorEvent.ERROR

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

任何 SQLConnection 对象的异步操作导致错误时调度。作为事件对象调度的 SQLErrorEvent 实例具有一个 error 属性,该属性包含有关尝试的操作和失败原因的信息。

SQLErrorEvent.ERROR 常量定义在 SQLConnection 方法调用或 SQLStatement 实例出错完成时调度的 error 事件的 type 属性值。error 事件具有以下属性:
属性
bubbles false
cancelable false;没有要取消的默认行为。
error 一个 SQLError 对象,其中包含有关出现的错误的类型和导致该错误的操作的信息。
currentTarget 当前正在使用某个事件侦听器处理事件对象的对象。
target 报告错误的 SQLConnection 或 SQLStatement 对象。
AIR-only insert 事件  
事件对象类型: flash.events.SQLUpdateEvent
属性 SQLUpdateEvent.type = flash.events.SQLUpdateEvent.INSERT

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

在任何连接的数据库的任何表中的数据由于 SQL INSERT 命令而发生更改时调度。数据更改可能是通过 SQLStatement 实例执行 INSERT 语句的直接结果,也可能是在响应语句执行时触发器触发所导致的间接结果。

SQLUpdateEvent.INSERT 常量定义 insert 事件的 type 属性值。insert 事件具有以下属性:
属性
bubbles false
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理事件对象的对象。
rowID 插入、删除或更新的行的唯一行标识符。
target 对其执行操作的 SQLConnection 对象。
table 发生更改的表的名称。

另请参见

AIR-only open 事件  
事件对象类型: flash.events.SQLEvent
属性 SQLEvent.type = flash.events.SQLEvent.OPEN

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

openAsync() 方法调用操作成功完成时调度。

SQLEvent.OPEN 常量定义 open 事件对象的 type 属性值。在 SQLConnection.open()SQLConnection.openAsync() 方法调用成功完成时调度这种类型的事件。open 事件具有以下属性:
属性
bubbles false
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理事件对象的对象。
target 执行操作的 SQLConnection 对象。

另请参见

AIR-only reencrypt 事件  
事件对象类型: flash.events.SQLEvent
属性 SQLEvent.type = flash.events.SQLEvent.REENCRYPT

语言版本: ActionScript 3.0
运行时版本: AIR 1.5

调用 reencrypt() 方法的操作成功完成时将调度此事件。

SQLEvent.REENCRYPT 常量定义 reencrypt 事件对象的 type 属性的值。SQLConnection.reencrypt() 方法调用成功完成时调度此类型的事件。reencrypt 事件具有以下属性:
属性
bubbles false
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理事件对象的对象。
target 执行操作的 SQLConnection 对象。

另请参见

AIR-only rollback 事件  
事件对象类型: flash.events.SQLEvent
属性 SQLEvent.type = flash.events.SQLEvent.ROLLBACK

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

rollback() 方法调用操作成功完成时调度。

SQLEvent.ROLLBACK 常量定义 rollback 事件对象的 type 属性值。在 SQLConnection.rollback() 方法调用成功完成时调度这种类型的事件。rollback 事件具有以下属性:
属性
bubbles false
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理事件对象的对象。
target 执行操作的 SQLConnection 对象。

另请参见

AIR-only schema 事件  
事件对象类型: flash.events.SQLEvent
属性 SQLEvent.type = flash.events.SQLEvent.SCHEMA

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

loadSchema() 方法调用操作成功完成并且架构结果准备就绪时调度。

SQLEvent.SCHEMA 常量定义 schema 事件对象的 type 属性值。在 SQLConnection.loadSchema() 方法成功完成时调度。调度 SQLEvent.SCHEMA 事件之后,即可调用 SQLConnection.getSchemaResult() 方法来获取架构信息。schema 事件具有以下属性:
属性
bubbles false
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理事件对象的对象。
target 执行操作的 SQLConnection 对象。

另请参见

AIR-only update 事件  
事件对象类型: flash.events.SQLUpdateEvent
属性 SQLUpdateEvent.type = flash.events.SQLUpdateEvent.UPDATE

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

在任何连接的数据库的任何表中的数据由于 SQL UPDATE 命令而发生更改时调度。数据更改可能是通过 SQLStatement 实例执行 UPDATE 语句的直接结果,也可能是在响应语句执行时触发器触发所导致的间接结果。

SQLUpdateEvent.UPDATE 常量定义 SQLConnection update 事件的 type 属性值。

update 事件具有以下属性:

属性
bubbles false
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理事件对象的对象。
rowID 插入、删除或更新的行的唯一行标识符。
target 对其执行操作的 SQLConnection 对象。
table 发生更改的表的名称。

另请参见