在执行任何数据库操作之前,请首先打开到数据库文件的连接。
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
,以便在只读模式下打开现有的数据库。在这种情况下,可以从数据库检索数据,但是不能添加、删除或更改数据。