包 | flash.data |
类 | public class SQLConnection |
继承 | SQLConnection EventDispatcher Object |
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 |
SQLConnection 类的功能分为以下几个类别:
-
创建一个本地 SQL 数据库文件,或通过调用
open()
方法或 SQLStatement 的sqlConnection
属性的 SQLConnection 实例打开一个本地 SQL 数据库文件。 -
SQLConnection 类还提供 SQL 语句的状态,包括在事务中执行多个语句的机制。使用
begin()
、commit()
和rollback()
方法管理事务。此外,setSavepoint()
、releaseSavepoint()
和rollbackToSavepoint()
方法允许代码定义和管理保存点。这些方法用于将事务分割为几组操作。 -
通过 SQLConnection 类,可以访问所连接的数据库的数据库架构信息。数据库的架构说明数据库的表、列、索引和触发器的定义。有关详细信息,请参阅
loadSchema()
方法。 -
通过 SQLConnection 类,可以使用 AES-CCM 对数据库加密。这样为数据提供了身份验证和保密性。为了对数据库加密,创建数据库时必须指定一个 16 字节的密钥(使用 ByteArray 指定)。以后可以使用
SQLConnection.reencrypt()
方法更改此密钥。加密会降低数据库的读写性能。加密应用于磁盘上存储的数据,但不应用于内存中的临时数据缓存。对于内存中的数据库不 支持加密。 -
可以使用 SQLConnection 实例来接收数据库级别的事件通知并控制数据库各个方面的配置,其中包括缓存页大小、过程取消和语句执行选项。
SQLConnection
实例可在异步和同步这两种完全不同的执行模式之一中运行。要使用同步执行模式,请使用 open()
方法连接到 SQLConnection 实例的主数据库。要使用异步执行模式,请使用 openAsync()
方法连接该实例的主数据库。
在使用异步执行模式时,可以使用事件侦听器或 Responder 实例来确定操作何时完成或失败。由于操作是在后台而不是在主应用程序线程中运行,因此即使数据库操作正在执行,应用程序也可以继续运行并响应用户交互。每个异步 SQLConnection 实例在自己的线程中执行 SQL 语句。
在异步执行模式中,可以通过调用相应的方法来开始特定操作,并可以通过对相应的事件注册侦听器来检测操作的完成(或失败)。每个操作都有一个相关联的事件,操作成功完成时将调度该事件;例如,当一个 openAsync()
方法调用成功完成时(数据库连接打开时),将会调度 open
事件。当任何操作失败时,将调度 error
事件。SQLErrorEvent 对象的 error
属性中的 SQLError 实例包含有关特定错误的信息,包括尝试的操作和操作失败的原因。
在使用同步执行模式时,不必注册事件侦听器即可以确定操作何时完成或失败。要识别错误,请将引发错误的语句括在 try..catch
块中。由于同步操作是在主执行线程中执行的,因此执行数据库操作时,所有应用程序功能(包括刷新屏幕和允许鼠标和键盘互操作)都暂停。对于长时间运行的操作,这会导致应用程序中出现明显的暂停。
了解详细信息
快速入门:异步处理本地 SQL 数据库 (Flash)
快速入门:异步处理 SQL 数据库 (HTML)
快速入门:同步处理本地 SQL 数据库 (Flex)
快速入门:同步处理本地 SQL 数据库 (Flash)
快速入门:同步处理本地 SQL 数据库 (HTML)
相关 API 元素
属性 | 由以下参数定义 | ||
---|---|---|---|
autoCompact : Boolean [只读]
表示在最初创建当前数据库时是否启用自动压缩(为创建该数据库的 open() 或 openAsync() 调用中的 autoCompact 参数指定的值)。 | SQLConnection | ||
cacheSize : uint
提供对此连接的缓存大小的访问,缓存大小表示在内存中一次容纳的最大数据库磁盘页数。 | SQLConnection | ||
columnNameStyle : String
表示在 SELECT 语句结果中报告列名称的方式。 | SQLConnection | ||
connected : Boolean [只读]
表示 SQLConnection 实例是否具有到数据库文件的打开连接。 | SQLConnection | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
inTransaction : Boolean [只读]
表示事务中当前是否涉及此连接。 | SQLConnection | ||
isSupported : Boolean [静态] [只读]
表示当前平台上是否支持 SQLConnection 类。 | SQLConnection | ||
lastInsertRowID : Number [只读]
上次生成的行标识符(由 SQL INSERT 语句创建)。 | SQLConnection | ||
pageSize : uint [只读]
表示在最初创建当前数据库时指定的数据库页大小,以字节为单位(为创建该数据库的 open() 或 openAsync() 调用中的 pageSize 参数指定的值)。 | SQLConnection | ||
totalChanges : Number [只读]
包含在打开数据库连接后所做的数据更改的总数。 | SQLConnection |
方法 | 由以下参数定义 | ||
---|---|---|---|
创建 SQLConnection 实例。 | SQLConnection | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0.0, useWeakReference:Boolean = false):void [覆盖]
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | SQLConnection | ||
收集有关数据库索引的统计信息,并将其存储在数据库中。 | SQLConnection | ||
attach(name:String, reference:Object = null, responder:Responder = null, encryptionKey:ByteArray = null):void
将另一个数据库添加到 SQLConnection 实例中,并将新数据库命名为指定的名称。 | SQLConnection | ||
开始一个事务,其中将对针对连接的一个或多个数据库执行的所有 SQL 语句进行分组。 | SQLConnection | ||
终止当前对连接到 SQLConnection 实例的数据库执行的所有 SQL 语句。 | SQLConnection | ||
断开当前数据库连接。 | SQLConnection | ||
提交一个现有事务,从而导致将该事务的语句执行的任何动作永久应用于数据库。 | SQLConnection | ||
回收数据库中所有未使用的空间。 | SQLConnection | ||
删除通过调用 analyze() 方法创建的所有统计信息。 | SQLConnection | ||
断开另一个以前使用 attach() 方法连接到 SQLConnection 实例的数据库。 | SQLConnection | ||
将事件调度到事件流中。 | EventDispatcher | ||
提供对 loadSchema() 方法调用结果的访问。 | SQLConnection | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | ||
表示对象是否已经定义了指定的属性。 | Object | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
loadSchema(type:Class = null, name:String = null, database:String = "main", includeColumnSchema:Boolean = true, responder:Responder = null):void
从连接的数据库或任何附加的数据库中加载架构信息。 | SQLConnection | ||
open(reference:Object = null, openMode:String = "create", autoCompact:Boolean = false, pageSize:int = 1024, encryptionKey:ByteArray = null):void
打开在文件系统指定位置处的数据库文件的同步连接,或者在该位置创建并打开新的数据库文件,或者创建并打开内存数据库。 | SQLConnection | ||
openAsync(reference:Object = null, openMode:String = "create", responder:Responder = null, autoCompact:Boolean = false, pageSize:int = 1024, encryptionKey:ByteArray = null):void
打开在文件系统指定位置处的数据库文件的异步连接,或者在该位置创建并打开新的数据库文件,或者创建并打开内存数据库。 | SQLConnection | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
更改加密数据库的加密密钥。 | SQLConnection | ||
此方法提交自最新保存点或命名的保存点(如果名称已指定)起执行的所有 SQL 操作。 | SQLConnection | ||
[覆盖]
从 EventDispatcher 对象中删除侦听器。 | SQLConnection | ||
回滚使用 begin() 方法创建的现有事务,这意味着放弃事务中的任何 SQL 语句所做的所有更改。 | SQLConnection | ||
回滚自最新保存点或命名的保存点(如果名称已指定)起的所有 SQL 操作。 | SQLConnection | ||
设置循环操作动态属性的可用性。 | Object | ||
创建保存点,保存点类似于数据库事务内的书签。 | SQLConnection | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | EventDispatcher |
事件 | 摘要 | 由以下参数定义 | ||
---|---|---|---|---|
[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。 | EventDispatcher | |||
在 analyze() 操作成功完成时调度。 | SQLConnection | |||
在 attach() 方法调用操作成功完成时调度。 | SQLConnection | |||
在 begin() 方法调用操作成功完成时调度。 | SQLConnection | |||
在 cancel() 方法调用操作成功完成时调度。 | SQLConnection | |||
在 close() 方法调用操作成功完成时调度。 | SQLConnection | |||
在 commit() 方法调用操作成功完成时调度。 | SQLConnection | |||
在 compact() 方法调用操作成功完成时调度。 | SQLConnection | |||
[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。 | EventDispatcher | |||
在 deanalyze() 方法调用操作成功完成时调度。 | SQLConnection | |||
在任何连接的数据库的任何表中的数据由于 SQL DELETE 命令而发生更改时调度。 | SQLConnection | |||
在 detach() 方法调用操作成功完成时调度。 | SQLConnection | |||
任何 SQLConnection 对象的异步操作导致错误时调度。 | SQLConnection | |||
在任何连接的数据库的任何表中的数据由于 SQL INSERT 命令而发生更改时调度。 | SQLConnection | |||
在 openAsync() 方法调用操作成功完成时调度。 | SQLConnection | |||
调用 reencrypt() 方法的操作成功完成时将调度此事件。 | SQLConnection | |||
在成功完成 releaseSavepoint() 方法调用的操作时调度。 | SQLConnection | |||
在 rollback() 方法调用操作成功完成时调度。 | SQLConnection | |||
在成功完成 rollbackToSavepoint() 方法调用的操作时调度。 | SQLConnection | |||
在 loadSchema() 方法调用操作成功完成并且架构结果准备就绪时调度。 | SQLConnection | |||
在成功完成 setSavepoint() 方法调用的操作时调度。 | SQLConnection | |||
在任何连接的数据库的任何表中的数据由于 SQL UPDATE 命令而发生更改时调度。 | SQLConnection |
autoCompact | 属性 |
autoCompact:Boolean
[只读] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 |
表示在最初创建当前数据库时是否启用自动压缩(为创建该数据库的 open()
或 openAsync()
调用中的 autoCompact
参数指定的值)。如果此属性为 true
,则每次写入操作后从数据库文件中自动删除未使用的空间,使数据库文件保持更小。如果该属性为 false
,则由删除的数据先前占用的空间保留在数据库文件中,需要时可重用。即使 autoCompact
为 false,也可以通过调用
compact()
方法强制数据库回收未使用的空间。
如果 connected
属性为 false
,则此属性设置为 false
。
实现
public function get autoCompact():Boolean
相关 API 元素
cacheSize | 属性 |
cacheSize:uint
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 |
提供对此连接的缓存大小的访问,缓存大小表示在内存中一次容纳的最大数据库磁盘页数。每个页面使用约 1.5 KB 内存(具体取决于为用于创建数据库的 open()
或 openAsync()
方法调用的 pageSize
参数指定的值)。默认缓存大小为 2000。如果某一应用程序正在执行更改数据库许多行的 UPDATE
或 DELETE
操作,则提高缓存大小可提高速度,但会以提高内存使用量为代价。
实现
public function get cacheSize():uint
public function set cacheSize(value:uint):void
引发
IllegalOperationError — 在 SQLConnection 实例未连接到数据库(connected 属性为 false )的情况下尝试设置此属性时;或如果某一事务当前处于打开状态(inTransaction 属性为 true )。
|
相关 API 元素
columnNameStyle | 属性 |
columnNameStyle:String
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 |
表示在 SELECT
语句结果中报告列名称的方式。
SQLColumnNameStyle 类中定义的常数表示此属性的可能值:
SQLColumnNameStyle.LONG
表示以[table-name]_[column-name]
格式返回列名称。SQLColumnNameStyle.SHORT
指定以[column-name]
格式指定列名称。如果有多个同名的列,则只向结果对象中添加一个具有该名称的属性。SQLColumnNameStyle.DEFAULT
是默认值。使用此值时,结果列名称根据具有类似列名称的SELECT
语句中的表数来设置格式。如果SELECT
语句只包括一个表,则使用短名称格式[column-name]
;如果SELECT
语句包括连接在一起的多个表,则在由于两个列名称相同而发生命名冲突时,将对名称相同的列使用长名称格式[table-name]_[column-name]
。
实现
public function get columnNameStyle():String
public function set columnNameStyle(value:String):void
引发
IllegalOperationError — 在 SQLConnection 实例未连接到数据库(connected 属性为 false )的情况下尝试设置此属性时。
|
相关 API 元素
connected | 属性 |
inTransaction | 属性 |
isSupported | 属性 |
lastInsertRowID | 属性 |
lastInsertRowID:Number
[只读] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 |
上次生成的行标识符(由 SQL INSERT
语句创建)。行标识符用于唯一标识数据库表中的行。该值通常由数据库生成。
如果未连接数据库或未执行 INSERT
语句,则该值为 0。
用于单个 SQL INSERT
语句执行的行标识符可以通过由 SQLStatement 对象的 getResult()
方法返回的 SQLResult 对象的 lastInsertRowID
属性获得(在 SQLStatement 调度其 result
事件后调用时)。
有关主键和生成的行标识符的详细信息,请参阅“本地数据库中的 SQL 支持”中的“CREATE TABLE”和“Expressions 等章节。
实现
public function get lastInsertRowID():Number
相关 API 元素
pageSize | 属性 |
totalChanges | 属性 |
SQLConnection | () | 构造函数 |
public function SQLConnection()
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 |
创建 SQLConnection 实例。
引发
SecurityError — 如果从主应用程序沙箱外的任意沙箱中调用构造函数。
|
addEventListener | () | 方法 |
override public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0.0, useWeakReference:Boolean = false):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 |
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。可以为特定类型的事件、阶段和优先级在显示列表中的所有节点上注册事件侦听器。
成功注册一个事件侦听器后,无法通过额外调用 addEventListener()
来更改其优先级。要更改侦听器的优先级,必须首先调用 removeListener()
。然后,可以使用新的优先级再次注册该侦听器。
请记住,注册该侦听器后,如果继续调用具有不同 type
或 useCapture
值的 addEventListener()
,则会创建单独的侦听器注册。例如,如果首先注册 useCapture
设置为 true
的侦听器,则该侦听器只在捕获阶段进行侦听。如果使用同一个侦听器对象再次调用 addEventListener()
,并将 useCapture
设置为 false
,那么便会拥有两个单独的侦听器:一个在捕获阶段进行侦听,另一个在目标和冒泡阶段进行侦听。
不能只为目标阶段或冒泡阶段注册事件侦听器。这些阶段在注册期间是成对出现的,因为冒泡阶段只适用于目标节点的祖代。
如果不再需要某个事件侦听器,可调用 removeEventListener()
删除它,否则会产生内存问题。事件侦听器不会自动从内存中删除,因为只要调度对象存在,垃圾回收器就不会删除侦听器(除非 useWeakReference
参数设置为 true
)。
复制 EventDispatcher 实例时并不复制其中附加的事件侦听器。(如果新近创建的节点需要一个事件侦听器,必须在创建该节点后附加该侦听器。)但是,如果移动 EventDispatcher 实例,则其中附加的事件侦听器也会随之移动。
如果在正在处理事件的节点上注册事件侦听器,则不会在当前阶段触发事件侦听器,但会在事件流的稍后阶段触发,如冒泡阶段。
如果从正在处理事件的节点中删除事件侦听器,则该事件侦听器仍由当前操作触发。删除事件侦听器后,决不会再次调用该事件侦听器(除非再次注册以备将来处理)。
参数
type:String — 事件的类型。
| |
listener:Function — 处理事件的侦听器函数。此函数必须接受 Event 对象作为其唯一的参数,并且不能返回任何结果,如下面的示例所示:
function(evt:Event):void 函数可以有任何名称。 | |
useCapture:Boolean (default = false ) —
确定侦听器是运行于捕获阶段还是运行于目标和冒泡阶段。如果将 useCapture 设置为 true ,则侦听器只在捕获阶段处理事件,而不在目标或冒泡阶段处理事件。如果 useCapture 为 false ,则侦听器只在目标或冒泡阶段处理事件。要在所有三个阶段都侦听事件,请调用 addEventListener 两次:一次将 useCapture 设置为 true ,一次将 useCapture 设置为 false 。
| |
priority:int (default = 0.0 ) — 事件侦听器的优先级。优先级由一个带符号的 32 位整数指定。数字越大,优先级越高。优先级为 n 的所有侦听器会在优先级为 n -1 的侦听器之前得到处理。如果两个或更多个侦听器共享相同的优先级,则按照它们的添加顺序进行处理。默认优先级为 0。
| |
useWeakReference:Boolean (default = false ) — 确定对侦听器的引用是强引用,还是弱引用。强引用(默认值)可防止您的侦听器被当作垃圾回收。弱引用则没有此作用。 类级别成员函数不属于垃圾回收的对象,因此可以对类级别成员函数将 |
analyze | () | 方法 |
public function analyze(resourceName:String = null, responder:Responder = null):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 |
收集有关数据库索引的统计信息,并将其存储在数据库中。查询优化程序(数据库引擎的一部分,用于确定执行每个语句的最有效方式)随后可以使用这些统计信息。在执行特定查询时,统计信息有助于查询优化程序针对要使用的索引做出更佳选择。
如果数据库定义了索引,但尚未调用 analyze()
方法,则运行时仍将使用这些索引执行语句。不过,在没有由 analyze()
方法生成的附加统计信息的情况下,运行时不能为特定查询选择最有效的索引。
当表的数据发生更改时(由于执行 INSERT
、UPDATE
或 DELETE
语句),与该表相关联的索引也会更改。由 analyze()
生成的统计信息不会自动更新。因此,进行大量数据更改后,再次调用 analyze()
方法可能大有裨益。但是,再次调用 analyze()
所获得的益处将取决于多个因素,包括对表定义的索引数、表中已更改的行数和总行数之间的关系、表的索引数据有多大变化以及更改后的数据和更改前的数据之间的差异程度。
resourceName
参数表示是应该对所有附加的数据库的索引、特定数据库的索引,还是特定表的索引执行操作。
每次调用此方法时,均会清除以前创建的任何统计数据并为 resourceName
参数中指定的数据库或表(如果 resourceName
为 null
,则为所有连接的数据库中的所有表)重新创建统计数据。数据库连接处于打开状态时,可以随时调用此方法。analyze()
操作和其统计数据不包括在事务中;不过,当数据库具有当前事务时(inTransaction
属性为 true
),最好不要调用 analyze()
。这是因为 analyze()
调用不会考虑已在事务中执行但尚未提交的任何数据、表架构或索引更改,并且事务一旦提交,analyze()
数据将会过期。
要删除用 analyze()
方法创建的统计数据,请使用 deanalyze()
方法。
参数
resourceName:String (default = null ) — 要分析其索引的数据库或表的名称。如果指定的资源是一个名称在所有附加的数据库中唯一的表,则只需指定表名称。不过,指定表名称时可以使用 [database-name].[table-name] 形式以避免表名称不唯一时造成混淆。如果 resourceName 参数为 null (默认值),则分析所有附加的数据库中的所有索引。
| |
responder:Responder (default = null ) — 一个对象,指定操作成功或失败时要调用的方法。在异步执行模式中,如果 responder 参数为 null ,则执行完成时将调度 analyze 或 error 事件。
|
事件
analyze: — 在操作成功完成时调度。
| |
error: — 在异步执行模式中操作失败时调度。
|
引发
IllegalOperationError — 在 SQLConnection 实例未连接到数据库(connected 属性为 false )的情况下调用此方法时。
| |
SQLError — 如果该操作在同步执行模式中失败。
|
相关 API 元素
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()
会导致错误。不过,同一个数据库可以使用唯一的名称附加多次。单个 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 参数指定的值,创建一个新数据库文件或引发错误。
如果该参数的值为 | |
responder:Responder (default = null ) — 一个对象,指定操作成功或失败时要调用的方法。在异步执行模式中,如果 responder 参数为 null ,则执行完成时将调度 attach 或 error 事件。
| |
encryptionKey:ByteArray (default = null ) — 数据库文件的加密密钥。如果调用 attach() 来创建数据库,则对该数据库进行加密,并使用指定密钥作为数据库的加密密钥。如果通过该调用附加现有的加密数据库,则该值必须与数据库的加密密钥相匹配,否则会出错。如果所附加的数据库未加密(即为了创建未加密的数据库),则该值必须为 null (默认值)。
有效的加密密钥长度为 16 个字节。无法对内存中的数据库加密,因此 附加加密数据库时,如果所提供的加密密钥与数据库的加密密钥不匹配,则会出现异常。在同步执行模式中将引发 SQLError 异常。在异步执行模式中将调度 SQLErrorEvent,并且该事件对象的 从 AIR 1.5 开始提供 |
事件
attach: — 在操作成功完成时调度。
| |
error: — 在异步执行模式中操作失败时调度。
|
引发
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 — 如果该操作在同步执行模式中失败。
|
相关 API 元素
begin | () | 方法 |
public function begin(option:String = null, responder:Responder = null):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 |
开始一个事务,其中将对针对连接的一个或多个数据库执行的所有 SQL 语句进行分组。
默认情况下,每个 SQL 语句都是在其自己的事务内执行的,语句的执行成功或失败时,事务将结束。使用 begin()
方法创建事务将导致创建新的手动事务。从此时开始,针对 SQLConnection 实例执行的所有 SQL 语句都在该事务内发生,并可以分组提交(永久保存)或回滚(撤消)这些语句所执行的任何动作或修改。
要结束事务,请调用 commit()
或 rollback()
方法,具体取决于是永久保存还是放弃由事务语句所做的更改。
忽略对 begin()
的嵌套调用。可通过调用 setSavepoint()
方法创建保存点,保存点类似于事务中的书签。然后可通过调用 releaseSavepoint()
或 rollbackToSavepoint()
方法部分提交或回滚 SQL 语句。但是,如果通过调用 begin()
启动事务,则直到调用 commit()
方法才会将更改永久提交到数据库中。
如果当前有事务打开时数据库连接关闭,则 AIR 会自动将该事务回滚。(注意:对于 AIR 1.1 和早期版本,连接关闭时将自动提交一个打开事务。)
一个事务不限于在单个数据库中执行语句;事务可以包括对附加的不同数据库执行的语句。
参数
option:String (default = null ) — 表示将由事务使用的锁定策略。此值可以是 SQLTransactionLockType 类中定义的常数之一:
默认值 ( | |
responder:Responder (default = null ) — 一个对象,指定操作成功或失败时要调用的方法。在异步执行模式中,如果 responder 参数为 null ,则执行完成时将调度 begin 或 error 事件。
|
事件
begin: — 在操作完成时调度。
| |
error: — 在异步执行模式中操作失败时调度。
|
引发
IllegalOperationError — 在 SQLConnection 实例未连接到数据库(connected 属性为 false )的情况下调用此方法时。
| |
ArgumentError — 如果指定的选项不是 SQLTransactionLockType 常数之一。
| |
SQLError — 如果该操作在同步执行模式中失败。
|
相关 API 元素
rollback()
setSavepoint()
releaseSavepoint()
rollbackToSavepoint()
flash.data.SQLTransactionLockType
示例 ( 如何使用本示例 )
INSERT
语句。首先将一行添加到“employees”表中。然后检索此新插入行的主键,并使用该主键将一行添加到相关的“phoneNumbers”表中。
package { import flash.data.SQLConnection; import flash.data.SQLResult; import flash.data.SQLStatement; import flash.display.Sprite; import flash.events.SQLErrorEvent; import flash.events.SQLEvent; import flash.filesystem.File; public class MultiInsertTransactionExample extends Sprite { private var conn:SQLConnection; private var insertEmployee:SQLStatement; private var insertPhoneNumber:SQLStatement; public function MultiInsertTransactionExample():void { // define where to find the database file var appStorage:File = File.applicationStorageDirectory; var dbFile:File = appStorage.resolvePath("ExampleDatabase.db"); // open the database connection conn = new SQLConnection(); conn.addEventListener(SQLErrorEvent.ERROR, errorHandler); conn.addEventListener(SQLEvent.OPEN, openHandler); conn.openAsync(dbFile); } // Called when the database is connected private function openHandler(event:SQLEvent):void { conn.removeEventListener(SQLEvent.OPEN, openHandler); // start a transaction conn.addEventListener(SQLEvent.BEGIN, beginHandler); conn.begin(); } // Called when the transaction begins private function beginHandler(event:SQLEvent):void { conn.removeEventListener(SQLEvent.BEGIN, beginHandler); // create and execute the first SQL statement: // insert an employee record insertEmployee = new SQLStatement(); insertEmployee.sqlConnection = conn; insertEmployee.text = "INSERT INTO employees (lastName, firstName, email) " + "VALUES (:lastName, :firstName, :email, :birthday)"; insertEmployee.parameters[":lastName"] = "Smith"; insertEmployee.parameters[":firstName"] = "Bob"; insertEmployee.parameters[":email"] = "bsmith@example.com"; insertEmployee.parameters[":birthday"] = new Date(1971, 8, 12); insertEmployee.addEventListener(SQLEvent.RESULT, insertEmployeeHandler); insertEmployee.addEventListener(SQLErrorEvent.ERROR, errorHandler); insertEmployee.execute(); } // Called after the employee record is inserted private function insertEmployeeHandler(event:SQLEvent):void { insertEmployee.removeEventListener(SQLEvent.RESULT, insertEmployeeHandler); insertEmployee.removeEventListener(SQLErrorEvent.ERROR, errorHandler); // Get the employee id of the newly created employee row var result:SQLResult = insertEmployee.getResult(); var employeeId:Number = result.lastInsertRowID; // Add a phone number to the related phoneNumbers table insertPhoneNumber = new SQLStatement(); insertPhoneNumber.sqlConnection = conn; insertPhoneNumber.text = "INSERT INTO phoneNumbers (employeeId, type, number) " + "VALUES (:employeeId, :type, :number)"; insertPhoneNumber.parameters[":employeeId"] = employeeId; insertPhoneNumber.parameters[":type"] = "Home"; insertPhoneNumber.parameters[":number"] = "(555) 555-1234"; insertPhoneNumber.addEventListener(SQLEvent.RESULT, insertPhoneNumberHandler); insertPhoneNumber.addEventListener(SQLErrorEvent.ERROR, errorHandler); insertPhoneNumber.execute(); } // Called after the phone number record is inserted private function insertPhoneNumberHandler(event:SQLEvent):void { insertPhoneNumber.removeEventListener(SQLEvent.RESULT, insertPhoneNumberHandler); insertPhoneNumber.removeEventListener(SQLErrorEvent.ERROR, errorHandler); // No errors so far, so commit the transaction conn.addEventListener(SQLEvent.COMMIT, commitHandler); conn.commit(); } // Called after the transaction is committed private function commitHandler(event:SQLEvent):void { conn.removeEventListener(SQLEvent.COMMIT, commitHandler); trace("Transaction complete"); } // Called whenever an error occurs private function errorHandler(event:SQLErrorEvent):void { // If a transaction is happening, roll it back if (conn.inTransaction) { conn.addEventListener(SQLEvent.ROLLBACK, rollbackHandler); conn.rollback(); } trace(event.error.message); trace(event.error.details); } // Called when the transaction is rolled back private function rollbackHandler(event:SQLEvent):void { conn.removeEventListener(SQLEvent.ROLLBACK, rollbackHandler); // add additional error handling, close the database, etc. } } }
DELETE
语句。该事务用于删除员工记录。首先在“phoneNumbers”表中删除相关行。然后从“employee”表中删除该员工记录行。
package { import flash.data.SQLConnection; import flash.data.SQLResult; import flash.data.SQLStatement; import flash.display.Sprite; import flash.events.SQLErrorEvent; import flash.events.SQLEvent; import flash.filesystem.File; public class MultiDeleteTransactionExample extends Sprite { private var conn:SQLConnection; private var deleteEmployee:SQLStatement; private var deletePhoneNumbers:SQLStatement; private var employeeIdToDelete:Number = 25; public function MultiDeleteTransactionExample():void { // define where to find the database file var appStorage:File = File.applicationStorageDirectory; var dbFile:File = appStorage.resolvePath("ExampleDatabase.db"); // open the database connection conn = new SQLConnection(); conn.addEventListener(SQLErrorEvent.ERROR, errorHandler); conn.addEventListener(SQLEvent.OPEN, openHandler); conn.openAsync(dbFile); } // Called when the database is connected private function openHandler(event:SQLEvent):void { conn.removeEventListener(SQLEvent.OPEN, openHandler); // start a transaction conn.addEventListener(SQLEvent.BEGIN, beginHandler); conn.begin(); } // Called when the transaction begins private function beginHandler(event:SQLEvent):void { conn.removeEventListener(SQLEvent.BEGIN, beginHandler); // Create and execute the first SQL statement: // Delete an employee's phone number records deletePhoneNumbers = new SQLStatement(); deletePhoneNumbers.sqlConnection = conn; deletePhoneNumbers.text = "DELETE FROM phoneNumbers " + "WHERE employeeId = :employeeId"; deletePhoneNumbers.parameters[":employeeId"] = employeeIdToDelete; deletePhoneNumbers.addEventListener(SQLEvent.RESULT, deletePhoneNumbersHandler); deletePhoneNumbers.addEventListener(SQLErrorEvent.ERROR, errorHandler); deletePhoneNumbers.execute(); } // Called after the phone number records are deleted private function deletePhoneNumbersHandler(event:SQLEvent):void { deletePhoneNumbers.removeEventListener(SQLEvent.RESULT, deletePhoneNumbersHandler); deletePhoneNumbers.removeEventListener(SQLErrorEvent.ERROR, errorHandler); deleteEmployee = new SQLStatement(); deleteEmployee.sqlConnection = conn; deleteEmployee.text = "DELETE FROM employees " + "WHERE employeeId = :employeeId"; deleteEmployee.parameters[":employeeId"] = employeeIdToDelete; deleteEmployee.addEventListener(SQLEvent.RESULT, deleteEmployeeHandler); deleteEmployee.addEventListener(SQLErrorEvent.ERROR, errorHandler); deleteEmployee.execute(); } // Called after the employee record is deleted private function deleteEmployeeHandler(event:SQLEvent):void { deleteEmployee.removeEventListener(SQLEvent.RESULT, deleteEmployeeHandler); deleteEmployee.removeEventListener(SQLErrorEvent.ERROR, errorHandler); // No errors so far, so commit the transaction conn.addEventListener(SQLEvent.COMMIT, commitHandler); conn.commit(); } // Called after the transaction is committed private function commitHandler(event:SQLEvent):void { conn.removeEventListener(SQLEvent.COMMIT, commitHandler); trace("Transaction complete"); } // Called whenever an error occurs private function errorHandler(event:SQLErrorEvent):void { // If a transaction is happening, roll it back if (conn.inTransaction) { conn.addEventListener(SQLEvent.ROLLBACK, rollbackHandler); conn.rollback(); } trace(event.error.message); trace(event.error.details); } // Called when the transaction is rolled back private function rollbackHandler(event:SQLEvent):void { conn.removeEventListener(SQLEvent.ROLLBACK, rollbackHandler); // add additional error handling, close the database, etc. } } }
cancel | () | 方法 |
public function cancel(responder:Responder = null):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 |
终止当前对连接到 SQLConnection 实例的数据库执行的所有 SQL 语句。此方法可用于停止长时间运行或失控的查询。
如果在调用 cancel()
方法时有些语句正在执行,则此方法会终止这些语句的操作,并回滚任何未完成的更新或事务。如果当前没有执行任何语句,则调用此方法会回滚已打开的事务,除此之外不执行任何操作。
参数
responder:Responder (default = null ) — 一个对象,指定操作成功或失败时要调用的方法。在异步执行模式中,如果 responder 参数为 null ,则执行完成时将调度 cancel 或 error 事件。
|
事件
cancel: — 在操作成功完成时调度。
| |
error: — 在异步执行模式中操作失败时调度。
|
引发
IllegalOperationError — 在 SQLConnection 实例未连接到数据库(connected 属性为 false )的情况下调用此方法时。
| |
SQLError — 如果该操作在同步执行模式中失败。
|
相关 API 元素
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 ,则执行完成时将调度 close 或 error 事件。
|
事件
close: — 在操作成功完成时调度。
| |
error: — 在异步执行模式中操作失败时调度。
|
引发
SQLError — 如果该操作在同步执行模式中失败。
|
commit | () | 方法 |
public function commit(responder:Responder = null):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 |
提交一个现有事务,从而导致将该事务的语句执行的任何动作永久应用于数据库。
中间保存点类似于事务中的书签,可通过调用 setSavepoint()
方法进行创建。使用保存点,您可以通过调用 releaseSavepoint()
方法提交部分事务,或通过调用 rollbackToSavepoint()
方法回滚部分事务。但是,如果事务是使用 begin()
方法打开的,则直到通过调用 commit()
方法提交整个事务才会将更改永久保存到数据库中。
对于使用保存点的事务,当提交整个事务时不会提交任何使用 rollbackToSavepoint()
方法回滚的语句。使用 releaseSavepoint()
提交的语句,或其保存点未释放或未回滚的语句,将提交到数据库中。
参数
responder:Responder (default = null ) — 一个对象,指定操作成功或失败时要调用的方法。在异步执行模式中,如果 responder 参数为 null ,则执行完成时将调度 commit 或 error 事件。
|
事件
commit: — 在操作成功完成时调度。
| |
error: — 在操作完成并出错时调度。
|
引发
IllegalOperationError — 在 SQLConnection 实例未连接到数据库(connected 属性为 false )的情况下调用该方法时;或如果当前未打开任何事务(inTransaction 属性为 false )。
|
相关 API 元素
compact | () | 方法 |
public function compact(responder:Responder = null):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 |
回收数据库中所有未使用的空间。从数据库中删除某一对象(表、索引或触发器)时,该对象会留下空白空间。这会使数据库文件比实际需要的文件更大,但可以加速 INSERT
操作。随着时间的推移,INSERT
和 DELETE
操作会使数据库文件结构出现碎块,从而降低数据库内容的磁盘访问速度。此方法可压缩数据库文件、消除空白页、调整表数据使其连续并清理数据库文件结构。
不能对附加的数据库文件执行 compact()
操作,只能对由 SQLConnection 实例打开的主(原始)数据库文件执行此操作。如果有活动的事务,则此操作将失败,此操作对内存中的数据库没有影响。
参数
responder:Responder (default = null ) — 一个对象,指定操作成功或失败时要调用的方法。在异步执行模式中,如果 responder 参数为 null ,则执行完成时将调度 compact 或 error 事件。
|
事件
compact: — 在操作成功完成时调度。
| |
error: — 在异步执行模式中操作失败时调度。
|
引发
IllegalOperationError — 如果在 SQLConnection 实例未连接到数据库(connected 属性为 false )的情况下调用该方法;或如果某一事务当前正在执行(inTransaction 属性为 true )。
| |
SQLError — 如果该操作在同步执行模式中失败。
|
deanalyze | () | 方法 |
public function deanalyze(responder:Responder = null):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 |
删除通过调用 analyze()
方法创建的所有统计信息。
由于由 analyze()
方法生成的统计信息占用数据库的空间,因此调用 deanalyze()
可以收回该空间,如在删除多个索引或表之后。
此操作不包括在活动事务中。
参数
responder:Responder (default = null ) — 一个对象,指定操作成功或失败时要调用的方法。在异步执行模式中,如果 responder 参数为 null ,则执行完成时将调度 deanalyze 或 error 事件。
|
事件
deanalyze: — 在操作成功完成时调度。
| |
error: — 在异步执行模式中操作失败时调度。
|
引发
IllegalOperationError — 在 SQLConnection 实例未连接到数据库(connected 属性为 false )的情况下调用此方法时。
| |
SQLError — 如果该操作在同步执行模式中失败。
|
相关 API 元素
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 ,则执行完成时将调度 detach 或 error 事件。
|
事件
detach: — 在操作成功完成时调度。
| |
error: — 在异步执行模式中操作失败时调度。
|
引发
ArgumentError — 如果 name 参数为 null 或包含空字符串 ("" )。
| |
IllegalOperationError — 如果在 SQLConnection 实例未连接到数据库(connected 属性为 false )的情况下调用此方法;或如果该 SQLConnection 实例具有一个打开的事务(inTransaction 属性为 true )。
| |
SQLError — 如果该操作在同步执行模式中失败。
|
相关 API 元素
getSchemaResult | () | 方法 |
public function getSchemaResult():SQLSchemaResult
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 |
提供对 loadSchema()
方法调用结果的访问。getSchemaResult()
方法的行为与先进先出结果队列相同。每次 loadSchema()
方法调用完成时(每次在异步执行模式中调度 schema
事件时),都会向队列中添加一个新 SQLSchemaResult 对象。每次调用 getSchemaResult()
方法时,即会返回最早的结果(最先添加到队列中的结果)并从队列中删除该结果。当队列中不再有对象时,getSchemaResult()
将返回 null
。
当数据库连接关闭时,此方法返回 null
。
SQLSchemaResult |
相关 API 元素
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
事件。
type
和 name
参数值的组合确定由 loadSchema()
方法生成的架构数据的类型和随后生成的 SQLSchemaResult 实例的属性值。下表列出了有效的 type
和 name
对以及由此生成的架构数据:
type 参数 | name 参数 | 检索以下对象的架构数据: |
---|---|---|
null | null | 数据库中的所有对象(所有表、视图、触发器和索引) |
SQLIndexSchema | null | 数据库中的所有索引 |
SQLIndexSchema | 有效的表名称 | 对指定表定义的所有索引 |
SQLIndexSchema | 有效的索引名称 | 指定的索引 |
SQLTableSchema | null | 数据库中的所有表 |
SQLTableSchema | 有效的表名称 | 指定的表 |
SQLTriggerSchema | null | 数据库中的所有触发器 |
SQLTriggerSchema | 有效的表名称 | 与指定表相关联的所有触发器 |
SQLTriggerSchema | 有效的视图名称 | 与指定视图相关联的所有触发器 |
SQLTriggerSchema | 有效的触发器名称 | 指定的触发器 |
SQLViewSchema | null | 数据库中的所有视图 |
SQLViewSchema | 有效的视图名称 | 指定的视图 |
如果 type
和 name
参数的组合不对应于指定的组合之一,则在异步执行模式中将调度 error
事件或在同步执行模式中引发异常。例如,如果 type
参数为 SQLViewSchema
且 name
参数为表的名称(而不是视图的名称),则将引发一个错误,表示数据库不包含具有指定名称且属于指定类型的对象。
如果数据库为空(不包含任何表、视图、触发器或索引),则调用 loadSchema()
方法将导致错误。
参数
type:Class (default = null ) — 表示要加载的架构的类型。null 值(默认值)表示应该加载所有架构信息。为此参数指定非 null 值可缩小生成的架构范围,删除结果中可能不需要的信息,并使操作更有效。该值必须是以下类之一的类名称:
| |
name:String (default = null ) — 表示加载哪个资源的架构。此值的使用方式取决于指定的 type 参数。通常,此值是数据库对象的名称,如表名称、索引或视图名称,等等。如果指定了值,则结果中只包括具有指定名称的数据库对象的架构信息。
如果指定的值无效,则调度 如果 | |
database:String (default = "main ") — 加载其架构的数据库的名称。如果指定的值无效,则调度 error 事件。
| |
includeColumnSchema:Boolean (default = true ) — 表示结果是否包括表和视图的列的架构信息。
| |
responder:Responder (default = null ) — 一个对象,指定操作成功或失败时要调用的方法。在异步执行模式中,如果 responder 参数为 null ,则执行完成时将调度 schema 或 error 事件。
|
事件
schema: — 在操作成功完成时调度。
| |
error: — 在操作完成并出错时调度。
|
引发
IllegalOperationError — 在 SQLConnection 实例未连接到数据库(connected 属性为 false )的情况下调用此方法时。
| |
ArgumentError — 当指定的 type 参数值不是允许的类型之一时。
| |
SQLError — 在使用同步执行模式时,如果为 name 或 database 参数提供的值无效。
|
相关 API 元素
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()
方法打开数据库连接。
连接数据库后,请使用 SQLStatement 实例执行 SQL 命令。数据库级操作是使用 SQLConnection 实例执行的,如开始或结束事务、加载架构信息以及其他操作等。
系统会自动为使用 open()
方法连接的数据库分配数据库名称“main”。该名称可使用 [database-name].[table-name]
格式明确限定 SQL 语句中的表名称。
参数
reference:Object (default = null ) — 打开的数据库文件的位置。此值必须为 flash.filesystem.File 实例。如果该参数的值为 null ,则将在内存中创建并打开一个数据库。
| |
openMode:String (default = "create ") — 表示数据库的打开方式。此值可以是 SQLMode 类中定义的任何常数。默认值为 SQLMode.CREATE ,表示如果在指定位置未找到数据库文件,则创建一个数据库文件。如果 openMode 是 SQLMode.READ 且指定的文件不存在,则会发生错误。当 reference 参数为 null 时,将忽略此参数。
| |
autoCompact:Boolean (default = false ) — 表示是否自动回收数据库中未使用的空间。仅当创建新数据库文件或打开其中尚未创建表的数据库文件时,此参数才有效。默认情况下,由删除的数据所占用的空间保留在数据库文件中,需要时可重用。将此参数设置为 true 会导致数据库自动回收未使用的空间。这会对性能产生负面影响,因为每次向数据库中写入数据时都需要进行更多处理,并且随着时间的推移,还会导致数据库数据产生碎片。可以随时强制数据库回收数据库文件中未使用的空间,并使用 compact() 方法整理数据库文件碎片。
当 | |
pageSize:int (default = 1024 ) — 表示数据库的页大小(以字节表示)。仅当创建新数据库文件或打开其中尚未创建表的数据库文件时,此参数才有效。该值必须是 2 的幂数,大于等于 512 且小于等于 32768。默认值为 1024 字节。此值只能在创建表之前设置。创建表之后,试图更改此值会导致错误。
| |
encryptionKey:ByteArray (default = null ) — 数据库文件的加密密钥。如果调用 open() 来创建数据库,则对该数据库进行加密,并使用指定密钥作为数据库的加密密钥。如果通过该调用打开加密数据库,则该值必须与数据库的加密密钥相匹配,否则会出错。如果所打开的数据库未加密(即为了创建未加密的数据库),则该值必须为 null (默认值),否则会出错。
有效的加密密钥长度为 16 个字节。无法对内存中的数据库加密,因此 打开加密数据库时,如果所提供的加密密钥与数据库的加密密钥不匹配,将会引发 SQLError 异常。在这种情况下,SQLError 对象的 从 AIR 1.5 开始提供 |
事件
open: — 在操作成功完成时调度。
|
引发
IllegalOperationError — 当 SQLConnection 实例已经具有一个到数据库的打开连接时(connected 属性为 true )。
| |
SQLError — 如果操作失败。操作失败后,连接不会保持打开。
| |
ArgumentError — 为 reference 参数指定的值不是 flash.filesystem.File 实例时
| |
ArgumentError — encryptionKey 参数不是 null ,且其 length 不是 16 个字节时
| |
ArgumentError — reference 参数为 null ,且 encryptionKey 参数不是 null 时
| |
ArgumentError — 如果指定了无效的 pageSize 参数。这包括在模式为 SQLMode.READ 时传递页的大小。
|
相关 API 元素
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()
方法打开数据库连接。
连接数据库后,请使用 SQLStatement 实例执行 SQL 命令。数据库级操作是使用 SQLConnection 实例执行的,如开始或结束事务、加载架构信息以及其他操作等。
系统会自动为使用 openAsync()
方法连接的数据库分配数据库名称“main”;使用 [database-name].[table-name]
格式时,该名称可在 SQL 语句中用于明确限定表名称。
参数
reference:Object (default = null ) — 打开的数据库文件的位置。此值必须为 flash.filesystem.File 实例。如果该参数的值为 null ,则将在内存中创建并打开一个数据库。
| |
openMode:String (default = "create ") — 表示数据库的打开方式。此值可以是 SQLMode 类中定义的任何常数。默认值为 SQLMode.CREATE ,表示如果在指定位置未找到数据库文件,则创建一个数据库文件。如果 openMode 为 SQLMode.READ 且指定文件不存在,则调度 error 事件。当 reference 参数为 null 时,将忽略此参数。
| |
responder:Responder (default = null ) — 一个对象,指定操作成功或失败时要调用的方法。如果 responder 参数为 null ,则执行完成时将调度 open 或 error 事件。
| |
autoCompact:Boolean (default = false ) — 表示是否自动回收数据库中未使用的空间。仅当创建新数据库文件或打开其中尚未创建表的数据库文件时,此参数才有效。默认情况下,由删除的数据所占用的空间保留在数据库文件中,需要时可重用。将此参数设置为 true 会导致数据库自动回收未使用的空间。这会对性能产生负面影响,因为每次向数据库中写入数据时都需要进行更多处理,并且随着时间的推移,还会导致数据库数据产生碎片。要强制数据库随时回收数据库文件中未使用的空间并整理数据库文件的碎片,请使用 compact() 方法。
当 | |
pageSize:int (default = 1024 ) — 表示数据库的页大小(以字节表示)。仅当创建新数据库文件或打开其中尚未创建表的数据库文件时,此参数才有效。该值必须是 2 的幂数,大于等于 512 且小于等于 32768。默认值为 1024 字节。此值只能在创建表之前设置。创建表之后,试图更改此值会导致错误。
| |
encryptionKey:ByteArray (default = null ) — 数据库文件的加密密钥。如果调用 openAsync() 来创建数据库,则对该数据库进行加密,并使用指定密钥作为数据库的加密密钥。如果通过该调用打开加密数据库,则该值必须与数据库的加密密钥相匹配,否则会出错。如果所打开的数据库未加密,则该值必须为 null (默认值),否则会出错。
有效的加密密钥长度为 16 个字节。无法对内存中的数据库加密,因此 打开加密数据库时,如果所提供的加密密钥与数据库的加密密钥不匹配,将调度 SQLErrorEvent。该事件对象的 从 AIR 1.5 开始提供 |
事件
open: — 在操作成功完成时调度。
| |
error: — 在操作失败时调度。操作失败后,连接不会保持打开。
|
引发
IllegalOperationError — 当 SQLConnection 实例已经具有一个到数据库的打开连接时(connected 属性为 true )。
| |
ArgumentError — 为 reference 参数指定的值不是 flash.filesystem.File 实例时
| |
ArgumentError — encryptionKey 参数不是 null ,且其 length 不是 16 个字节时
| |
ArgumentError — reference 参数为 null ,且 encryptionKey 参数不是 null 时
| |
ArgumentError — 如果指定了无效的 pageSize 参数。这包括在模式为 SQLMode.READ 时传递页的大小。
|
相关 API 元素
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 ,则执行完成时将调度 reencrypt 或 error 事件。
|
事件
reencrypt: — 在操作成功完成时调度。
| |
error: — 在操作失败时调度。
|
引发
ArgumentError — newEncryptionKey 值是 null ,或其 length 不是 16 个字节时。
| |
IllegalOperationError — 未打开连接时,或有打开的事务时。
| |
SQLError — 如果该操作在同步执行模式中失败。
|
相关 API 元素
releaseSavepoint | () | 方法 |
public function releaseSavepoint(name:String = null, responder:Responder = null):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 2 |
此方法提交自最新保存点或命名的保存点(如果名称已指定)起执行的所有 SQL 操作。
请注意,在提交整个事务之前,任何更改都不会永久保存到数据库。如果事务是使用 begin()
方法启动的,则必须调用 commit()
方法来提交整个事务。如果事务是在 inTransaction
为 false
时通过调用 setSavepoint()
启动的,您可以通过调用 commit()
方法完成整个事务,也可以通过为事务的第一个保存点调用 releaseSavepoint()
或 rollbackToSavepoint()
实现此目的。
如果代码调用 rollback()
方法,则不管在回滚事务之前是否调用了 releaseSavepoint()
,它将永久放弃事务中的所有更改。
如果此方法在调用时没有使用参数(或 name
参数为 null
),它会提交自最新未命名保存点(通过调用不带任何 name
参数的 setSavepoint()
创建的最新保存点)以后的所有数据库更改。例如,如果已三次调用 setSavepoint()
方法,则会设置三个保存点。此时调用 releaseSavepoint()
将提交自第三个(最新)保存点以后执行的 SQL 操作。
如果为 name
参数提供了值,此方法将提交自使用指定名称的保存点以后执行的所有 SQL 操作。如果其他保存点的创建时间比指定保存点更晚,还将提交在这些保存点之后执行的操作。
保存点释放或回滚后,将删除该保存点和任何更新的保存点。如果代码在 releaseSavepoint()
或 rollbackToSavepoint()
调用删除保存点后执行其他 SQL 操作,则这些操作都属于最新的那个剩余保存点。(换言之,这些操作属于在删除的保存点之前最新创建的保存点。)如果没有剩余任何保存点,则这些操作属于主事务。
参数
name:String (default = null ) — String,保存点的名称,应提交自该保存点后的所有 SQL 操作。如果没有提供任何值或此参数为 null (默认值),则使用最新的未命名保存点(通过调用不带 name 值的 setSavepoint() 进行创建)。name 值不能为空字符串 ("" )。
| |
responder:Responder (default = null ) — Responder,指定操作成功或失败时调用的方法的对象。在异步执行模式中,如果 responder 参数为 null ,则执行完成时将调度 releaseSavepoint 或 error 事件。
|
事件
releaseSavepoint: — 在操作成功完成时调度。
| |
error: — 在异步执行模式中操作失败时调度。
|
引发
ArgumentError — 当 name 参数值为空字符串 ("" ) 时。
| |
IllegalOperationError — 在 SQLConnection 实例未连接到数据库(connected 属性为 false )的情况下调用该方法时;或如果当前未打开任何事务(inTransaction 属性为 false )。
| |
SQLError — 如果该操作在同步执行模式中失败。
|
相关 API 元素
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 ) —
指出是为捕获阶段还是为目标和冒泡阶段注册了侦听器。如果为捕获阶段以及目标和冒泡阶段注册了侦听器,则需要对 removeEventListener() 进行两次调用才能将这两个侦听器删除,一次调用将 useCapture() 设置为 true ,另一次调用将 useCapture() 设置为 false 。
|
rollback | () | 方法 |
public function rollback(responder:Responder = null):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 |
回滚使用 begin()
方法创建的现有事务,这意味着放弃事务中的任何 SQL 语句所做的所有更改。
可通过调用 setSavepoint()
方法在事务中标记中间保存点。使用保存点,您可以通过调用 releaseSavepoint()
方法提交部分事务,或者通过调用 rollbackToSavepoint()
方法回滚部分事务。但是,调用 rollback()
方法将永久放弃事务中的所有更改,而不管在回滚事务之前是否释放(提交)了各保存点。
参数
responder:Responder (default = null ) — 一个对象,指定操作成功或失败时要调用的方法。在异步执行模式中,如果 responder 参数为 null ,则执行完成时将调度 rollback 或 error 事件。
|
事件
rollback: — 在操作成功完成时调度。
| |
error: — 在异步执行模式中操作失败时调度。
|
引发
IllegalOperationError — 在 SQLConnection 实例未连接到数据库(connected 属性为 false )的情况下调用该方法时;或如果当前未打开任何事务(inTransaction 属性为 false )。
| |
SQLError — 如果该操作在同步执行模式中失败。
|
相关 API 元素
rollbackToSavepoint | () | 方法 |
public function rollbackToSavepoint(name:String = null, responder:Responder = null):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 2 |
回滚自最新保存点或命名的保存点(如果名称已指定)起的所有 SQL 操作。
请注意,如果整个事务是通过调用 commit()
方法提交的,则事务中尚未使用 rollbackToSavepoint()
方法回滚的任何更改将永久保存在数据库中。此外,调用 rollback()
方法将永久放弃所有更改,而不管在回滚事务之前是否释放(提交)或回滚了各保存点。
如果此方法在调用时没有使用参数(或 name
参数为 null
),它将回滚自最新的未命名保存点(对 setSavepoint()
最近一次不使用任何 name
参数值的调用)之后的所有数据库更改。
如果已为 name
参数提供了值,此方法将回滚自使用指定名称的保存点之后执行的所有 SQL 操作。如果其他保存点的创建时间比指定保存点更晚,还将回滚自这些保存点之后执行的操作。
保存点释放或回滚后,将删除该保存点和任何更新的保存点。如果代码在 releaseSavepoint()
或 rollbackToSavepoint()
调用删除保存点后执行其他 SQL 操作,则这些操作都属于最新的那个剩余保存点。(换言之,这些操作属于在删除的保存点之前最新创建的保存点。)如果没有剩余任何保存点,则这些操作属于主事务。
参数
name:String (default = null ) — String,数据库状态应该回滚到的保存点的名称。如果没有提供任何值或此参数为 null (默认值),则使用最新的未命名保存点(它是通过调用不带任何 name 值的 setSavepoint() 创建的)。name 值不能为空字符串 ("" )。
| |
responder:Responder (default = null ) — Responder,指定操作成功或失败时调用的方法的对象。在异步执行模式中,如果 responder 参数为 null ,则执行完成时将调度 rollbackToSavepoint 或 error 事件。
|
事件
rollbackToSavepoint: — 在操作成功完成时调度。
| |
error: — 在异步执行模式中操作失败时调度。
|
引发
ArgumentError — 当 name 参数值为空字符串 ("" ) 时。
| |
IllegalOperationError — 在 SQLConnection 实例未连接到数据库(connected 属性为 false )的情况下调用该方法时;或如果当前未打开任何事务(inTransaction 属性为 false )。
| |
SQLError — 如果该操作在同步执行模式中失败。
|
相关 API 元素
setSavepoint | () | 方法 |
public function setSavepoint(name:String = null, responder:Responder = null):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 2 |
创建保存点,保存点类似于数据库事务内的书签。保存点表示事务中的点。可以使用 releaseSavepoint()
和 rollbackToSavepoint()
方法从其他操作单独提交或回滚在保存点之间执行的一组 SQL 操作。这样,您可以使用保存点将一组 SQL 操作视为嵌套事务。
当调用 setSavepoint()
方法时,如果尚未打开事务(通过调用 begin()
方法),调用此方法会开始事务并在事务的起始处创建保存点。如果已打开事务,调用 setSavepoint()
时将在事务中创建保存点。
请注意,在提交整个事务之前,任何更改都不会永久保存到数据库。如果事务是使用 begin()
方法启动的,则必须调用 commit()
方法来提交整个事务。如果事务是在 inTransaction
为 false
时通过调用 setSavepoint()
启动的,您也可以通过调用 commit()
方法完成整个事务。如果针对启动事务的保存点调用 releaseSavepoint()
或 rollbackToSavepoint()
,事务也会自动完成。
可通过为 name
参数提供值来指定保存点的名称。这允许您回滚或提交自特定保存点以后进行的所有更改。如果没有指定任何名称(默认),则会创建未命名的保存点。
保存点释放或回滚后,将删除该保存点和任何更新的保存点。如果代码在 releaseSavepoint()
或 rollbackToSavepoint()
调用删除保存点后执行其他 SQL 操作,则这些操作都属于最新的那个剩余保存点。(换言之,这些操作属于在删除的保存点之前最新创建的保存点。)如果没有剩余任何保存点,则这些操作属于主事务。
参数
name:String (default = null ) — String,保存点的名称。如果未提供值或此参数为 null (默认值),则下一次调用 releaseSavepoint() 或 rollbackToSavepoint() 且未指定 name 参数时,将提交或回滚自未命名保存点之后执行的 SQL 操作。
如果提供的名称与前面的命名保存点重复,下一次调用 | |
responder:Responder (default = null ) — Responder,指定操作成功或失败时调用的方法的对象。在异步执行模式中,如果 responder 参数为 null ,则执行完成时将调度 setSavepoint 或 error 事件。
|
事件
setSavepoint: — 在操作成功完成时调度。
| |
error: — 在异步执行模式中操作失败时调度。
|
引发
ArgumentError — 当 name 参数值为空字符串 ("" ) 时。
| |
IllegalOperationError — 在 SQLConnection 实例未连接到数据库(connected 属性为 false )的情况下调用此方法时。
| |
SQLError — 如果该操作在同步执行模式中失败。
|
相关 API 元素
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 | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 执行操作的 SQLConnection 对象。 |
相关 API 元素
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 | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 执行操作的 SQLConnection 对象。 |
相关 API 元素
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 | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 执行操作的 SQLConnection 对象。 |
相关 API 元素
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 | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 执行操作的 SQLConnection 或 SQLStatement 对象。 |
相关 API 元素
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 | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 执行操作的 SQLConnection 对象。 |
相关 API 元素
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 | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 执行操作的 SQLConnection 对象。 |
相关 API 元素
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 | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 执行操作的 SQLConnection 对象。 |
相关 API 元素
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 | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 执行操作的 SQLConnection 对象。 |
相关 API 元素
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 | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
rowID | 插入、删除或更新的行的唯一行标识符。 |
target | 对其执行操作的 SQLConnection 对象。 |
table | 发生更改的表的名称。 |
相关 API 元素
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 | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 执行操作的 SQLConnection 对象。 |
相关 API 元素
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 | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 报告错误的 SQLConnection 或 SQLStatement 对象。 |
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 | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
rowID | 插入、删除或更新的行的唯一行标识符。 |
target | 对其执行操作的 SQLConnection 对象。 |
table | 发生更改的表的名称。 |
相关 API 元素
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 | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 执行操作的 SQLConnection 对象。 |
相关 API 元素
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 | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 执行操作的 SQLConnection 对象。 |
相关 API 元素
releaseSavepoint | 事件 |
flash.events.SQLEvent
属性 SQLEvent.type =
flash.events.SQLEvent.RELEASE_SAVEPOINT
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 2 |
在成功完成 releaseSavepoint()
方法调用的操作时调度。
SQLEvent.RELEASE_SAVEPOINT
常量定义 releaseSavepoint
事件对象的 type
属性的值。当 SQLConnection.releaseSavepoint()
方法调用成功完成时调度此类型的事件。releaseSavepoint
事件包含下列属性:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false ;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 执行操作的 SQLConnection 对象。 |
相关 API 元素
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 | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 执行操作的 SQLConnection 对象。 |
相关 API 元素
rollbackToSavepoint | 事件 |
flash.events.SQLEvent
属性 SQLEvent.type =
flash.events.SQLEvent.ROLLBACK_TO_SAVEPOINT
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 2 |
在成功完成 rollbackToSavepoint()
方法调用的操作时调度。
SQLEvent.ROLLBACK_TO_SAVEPOINT
常量定义 rollbackToSavepoint
事件对象的 type
属性的值。当 SQLConnection.rollbackToSavepoint()
方法调用成功完成时调度此类型的事件。rollbackToSavepoint
事件包含下列属性:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false ;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 执行操作的 SQLConnection 对象。 |
相关 API 元素
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 | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 执行操作的 SQLConnection 对象。 |
相关 API 元素
setSavepoint | 事件 |
flash.events.SQLEvent
属性 SQLEvent.type =
flash.events.SQLEvent.SET_SAVEPOINT
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 2 |
在成功完成 setSavepoint()
方法调用的操作时调度。
SQLEvent.SET_SAVEPOINT
常量定义 setSavepoint
事件对象的 type
属性的值。当 SQLConnection.setSavepoint()
方法调用成功完成时调度此的类型事件。setSavepoint
事件包含下列属性:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false ;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 执行操作的 SQLConnection 对象。 |
相关 API 元素
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 | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
rowID | 插入、删除或更新的行的唯一行标识符。 |
target | 对其执行操作的 SQLConnection 对象。 |
table | 发生更改的表的名称。 |
相关 API 元素
Tue Jun 12 2018, 11:04 AM Z