Перед выполнением операций базы данных необходимо сначала открыть подключение к файлу базы данных. Экземпляр
SQLConnection
представляет подключение к одной или нескольким базам данных. Первая база данных, подключенная с использованием экземпляра SQLConnection, является «главной» базой данных. Эта база данных подключается с использованием метода
open()
(для использования синхронного режима выполнения) или метода
openAsync()
(для использования асинхронного режима выполнения).
При открытии базы данных с использованием асинхронной операции
openAsync()
зарегистрируйте событие
open
экземпляра SQLConnection, чтобы узнать о завершении операции
openAsync()
. Зарегистрируйте событие
error
экземпляра SQLConnection, чтобы узнать о сбое в выполнении операции.
Следующий пример иллюстрирует открытие существующего файла базы данных для асинхронного выполнения. Файл базы данных называется DBSample.db и находится в пользовательском
Указание на каталог хранилища приложения
.
import flash.data.SQLConnection;
import flash.data.SQLMode;
import flash.events.SQLErrorEvent;
import flash.events.SQLEvent;
import flash.filesystem.File;
var conn:SQLConnection = new SQLConnection();
conn.addEventListener(SQLEvent.OPEN, openHandler);
conn.addEventListener(SQLErrorEvent.ERROR, errorHandler);
// The database file is in the application storage directory
var folder:File = File.applicationStorageDirectory;
var dbFile:File = folder.resolvePath("DBSample.db");
conn.openAsync(dbFile, SQLMode.UPDATE);
function openHandler(event:SQLEvent):void
{
trace("the database opened successfully");
}
function errorHandler(event:SQLErrorEvent):void
{
trace("Error message:", event.error.message);
trace("Details:", event.error.details);
}
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()">
<mx:Script>
<![CDATA[
import flash.data.SQLConnection;
import flash.data.SQLMode;
import flash.events.SQLErrorEvent;
import flash.events.SQLEvent;
import flash.filesystem.File;
private function init():void
{
var conn:SQLConnection = new SQLConnection();
conn.addEventListener(SQLEvent.OPEN, openHandler);
conn.addEventListener(SQLErrorEvent.ERROR, errorHandler);
// The database file is in the application storage directory
var folder:File = File.applicationStorageDirectory;
var dbFile:File = folder.resolvePath("DBSample.db");
conn.openAsync(dbFile, SQLMode.UPDATE);
}
private function openHandler(event:SQLEvent):void
{
trace("the database opened successfully");
}
private function errorHandler(event:SQLErrorEvent):void
{
trace("Error message:", event.error.message);
trace("Details:", event.error.details);
}
]]>
</mx:Script>
</mx:WindowedApplication>
Следующий пример иллюстрирует открытие существующего файла базы данных для синхронного выполнения. Файл базы данных называется DBSample.db и находится в пользовательском
Указание на каталог хранилища приложения
.
import flash.data.SQLConnection;
import flash.data.SQLMode;
import flash.errors.SQLError;
import flash.filesystem.File;
var conn:SQLConnection = new SQLConnection();
// The database file is in the application storage directory
var folder:File = File.applicationStorageDirectory;
var dbFile:File = folder.resolvePath("DBSample.db");
try
{
conn.open(dbFile, SQLMode.UPDATE);
trace("the database opened successfully");
}
catch (error:SQLError)
{
trace("Error message:", error.message);
trace("Details:", error.details);
}
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()">
<mx:Script>
<![CDATA[
import flash.data.SQLConnection;
import flash.data.SQLMode;
import flash.errors.SQLError;
import flash.filesystem.File;
private function init():void
{
var conn:SQLConnection = new SQLConnection();
// The database file is in the application storage directory
var folder:File = File.applicationStorageDirectory;
var dbFile:File = folder.resolvePath("DBSample.db");
try
{
conn.open(dbFile, SQLMode.UPDATE);
trace("the database opened successfully");
}
catch (error:SQLError)
{
trace("Error message:", error.message);
trace("Details:", error.details);
}
}
]]>
</mx:Script>
</mx:WindowedApplication>
Обратите внимание на то, что в вызове метода
openAsync()
в примере асинхронного выполнения и в вызове метода
open()
в примере синхронного выполнения вторым аргументом является константа
SQLMode.UPDATE
. При задании
SQLMode.UPDATE
для второго параметра (
openMode
) среда выполнения выдает ошибку, если указанный файл не существует. При передаче
SQLMode.CREATE
параметру
openMode
(или при отключении параметра
openMode
) среда выполнения пытается создать файл базы данных, если указанный файл не существует. Но если файл уже существует, он будет открыт, что равносильно использованию
SQLMode.Update
. Можно также задать
SQLMode.READ
для параметра
openMode
, чтобы открыть существующую базу данных только для чтения. В таком случае можно извлекать данные из базы данных, но добавлять, удалять или изменять данные нельзя.