连接到数据库

Adobe AIR 1.0 和更高版本

在执行任何数据库操作之前,请首先打开到数据库文件的连接。 SQLConnection 实例用于表示到一个或多个数据库的连接。使用 SQLConnection 实例连接的第一个数据库称为“主”数据库。此数据库是使用 open() 方法(对于同步执行模式)或 openAsync() 方法(对于异步执行模式)连接的。

如果使用异步 openAsync() 操作打开数据库,则注册 SQLConnection 实例的 open 事件,以便知道 openAsync() 操作何时完成。注册 SQLConnection 实例的 error 事件,以确定操作是否失败。

以下示例说明如何为异步执行打开现有的数据库文件。数据库文件名为“DBSample.db”,位于用户的 指向应用程序存储目录 下。

// Include AIRAliases.js to use air.* shortcuts 
     
var conn = new air.SQLConnection(); 
     
conn.addEventListener(air.SQLEvent.OPEN, openHandler); 
conn.addEventListener(air.SQLErrorEvent.ERROR, errorHandler); 
     
// The database file is in the application storage directory 
var folder = air.File.applicationStorageDirectory; 
var dbFile = folder.resolvePath("DBSample.db"); 
     
conn.openAsync(dbFile, air.SQLMode.UPDATE); 
     
function openHandler(event) 
{ 
    air.trace("the database opened successfully"); 
} 
     
function errorHandler(event) 
{ 
    air.trace("Error message:", event.error.message); 
    air.trace("Details:", event.error.details); 
}

以下示例说明如何为同步执行打开现有的数据库文件。数据库文件名为“DBSample.db”,位于用户的 指向应用程序存储目录 下。

// Include AIRAliases.js to use air.* shortcuts 
     
var conn = new air.SQLConnection(); 
     
// The database file is in the application storage directory 
var folder = air.File.applicationStorageDirectory; 
var dbFile = folder.resolvePath("DBSample.db"); 
     
try 
{ 
    conn.open(dbFile, air.SQLMode.UPDATE); 
    air.trace("the database opened successfully"); 
} 
catch (error) 
{ 
    air.trace("Error message:", error.message); 
    air.trace("Details:", error.details); 
}

请注意,在异步示例的 openAsync() 方法调用中以及同步示例的 open() 方法调用中,第二个参数是常数 SQLMode.UPDATE 。如果指定的文件不存在,则为第二个参数 ( openMode ) 指定 SQLMode.UPDATE 会导致运行时调度一个错误。如果为 openMode 参数传递 SQLMode.CREATE (或者如果使 openMode 参数处于关闭状态),则在指定的文件不存在时,运行时将尝试创建数据库文件。但是如果文件存在,则会打开该文件,这与使用 SQLMode.Update 相同。也可以为 openMode 参数指定 SQLMode.READ ,以便在只读模式下打开现有的数据库。在这种情况下,可以从数据库检索数据,但是不能添加、删除或更改数据。