Veritabanına bağlanma

Adobe AIR 1.0 ve üstü

Herhangi bir veritabanı işlemini gerçekleştirmeden önce, bir veritabanı dosyası bağlantısı açın. Bir SQLConnection örneği, bir veya daha çok veritabanına bağlantıyı temsil etmek üzere kullanılır. SQLConnection örneği kullanılarak bağlanılan ilk veritabanı, “ana” veritabanı olarak bilinir. Bu veritabanına open() yöntemi (senkronize yürütme modu için) veya openAsync() yöntemi (senkronize olmayan yürütme modu için) kullanılarak bağlanılır.

Senkronize olmayan openAsync() işlemini kullanarak bir veritabanına bağlandığınızda, openAsync() işleminin ne zaman tamamlandığını bilmek için SQLConnection örneğinin open olayına kaydolun. İşlemin başarısız olup olmadığını belirlemek için SQLConnection örneğinin error olayına kaydolun.

Aşağıdaki örnek, senkronize olmayan yürütme için var olan bir veritabanı dosyasının nasıl açılacağını gösterir. Veritabanı dosyası “DBSample.db” adını taşır ve kullanıcının Uygulama depolama dizinine işaret etme içinde bulunur.

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>

Aşağıdaki örnek, senkronize yürütme için var olan bir veritabanı dosyasının nasıl açılacağını gösterir. Veritabanı dosyası “DBSample.db” adını taşır ve kullanıcının Uygulama depolama dizinine işaret etme 'inde bulunur.

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>

Senkronize olmayan örnekteki openAsync() yöntemi çağrısı ve senkronize örnekteki open() yöntemi çağrısında ikinci argümanın SQLMode.UPDATE sabiti olduğunu unutmayın. İkinci parametre ( openMode ) için SQLMode.UPDATE öğesinin belirlenmesi, belirtilen dosya mevcut değilse çalışma zamanının bir hata göndermesine neden olur. openMode parametresi için SQLMode.CREATE iletirseniz (veya openMode parametresini bırakırsanız), belirtilen dosya mevcut değilse çalışma zamanı bir veritabanı dosyası oluşturmaya çalışır. Ancak, dosya mevcutsa, SQLMode.Update kullanmanızla aynı anlama gelecek şekilde açılır. Var olan bir veritabanını salt okunur modda açmak üzere, openMode parametresi için SQLMode.READ de belirleyebilirsiniz. Bu durumda veriler veritabanından alınabilir, ancak veriler eklenemez, silinemez veya değiştirilemez.