این درس اولین بخش آموزش کار با پایگاه داده SQLite در Air میباشد. در این درس نحوه ساختن جدول و فیلدهای مورد نیاز در این جدول آموزش داده میشود.
۱- برای شروع کار یک پروژه Air ایجاد کنید.
۲- حالا باید کلاسههای مورد نیاز را import کنید:
3- برای ادامه نیاز داریم که ۴ متغیر بسازیم. متغیر conn برای برقراری اتصال با اطلاعات فایل پایگاه داده استفاده میشود، متغیر query وظیفه به جریان انداختن اطلاعات پایگاه داده و انجام عملیات روی اطلاعات را بر عهده دارد، متغیر dbFile برای ایجاد و کنترل فایل پایگاه داده در سیستم عامل به کار میرود و متغیر queryText یک String است که وظیفه متغیر query را در آن مینویسیم.
4- برای شروع کار باید فایل پایگاه داده در صورت عدم وجود ساخته شود. به کمک کد applicationDirectory این فایل در کنار فایل اصلی (پروژه یا خروجی) ساخته میشود، همانطور که مشخص است نام فایل test.db خواهد بود.
5- برای مدیریت اتصال باید دو Event Listener به متغیر conn اختصاص داده شود تا از اتصال موفق یا نا موفق با فایل پایگاه داده مطلع شویم.
6- حالا فایل پایگاه داده را به صورت غیر همزمان (openAsync) باز میکنیم. بنابراین میتوانیم از Listenerهایی که در بالا برای conn نوشتیم، استفاده کنیم. معمولا برای فایلهای کم حجم از روش همزمان استفاده میشود، درصورت استفاده از روش همزمان امکان استفاده از Listener فراهم نخواهد بود ولی سرعت کار بیشتر و مقدار کدنویسی کمتر میشود اما این احتمال وجود دارد که فایلهای حجیم کامل باز نشوند و اطلاعات به طور کامل در دسترس قرار نگیرد، بنابراین بهتر است برای اطمینان از بارگزاری کامل اطلاعات از روش غیر همزمان استفاده شود.
7- حالا تابعی را تعریف میکنیم که بعد از اتصال موفق و کامل شدن بارگزاری اطلاعات توسط conn فراخوانی میشود.
در این تابع، تابع createTable فراخوانی میشود. این تابعی است که برای ساختن Table و فیلدهای آن در ادامه تعریف میشود.
۸- سپس تابعی را تعریف میکنیم که در صورت اتصال نا موفق conn به فایل پایگاه داده فراخوانی میشود.
9- نوبت به تعریف تابع createTable رسید که برای ساختن جدول (در صورت عدم وجود) بر روی فایل پایگاه داده به کار میرود.
در این تابع ابتدا یک SQLStatement جدید ساخته میشود.
سپس query اطلاعات conn را به جریان میاندازد.
دستور مورد نظر برای اجرا توسط query، در queryText قرار میگیرد. طبق این دستور ابتدا یک جدول (در صورت عدم وجود) به نام website ساخته میشود که حاوی سه فیلد است. فیلد اول id است که یک INTEGER است و به صورت اتوماتیک یکی یکی زیاد میشود، فیلد دوم name از نوع TEXT و فیلد سوم url از نوع TEXT میباشد. در این مثال قرار است که این پایگاه داده مجموعه ای از آدرسهای چند وبسایت باشد.
در ادامه queryText به query معرفی شده است.
برای اطلاع از موفق یا نا موفق بودن فرآیند ساخت جدول، دو Event Listener برای query تعریف شده است.
در انتها اطلاعات جدید با دستور execute روی فایل پایگاه داده اعمال شده اند.
۱۰- تابعی که در صورت موفق بودن فرآیند ساخت جدول فراخوانی میشود، به قرار زیر است:
11- تابعی را که در صورت عدم موفقیت آمیز بودن ثبت اطلاعات فراخوانی میشود، به صورت زیر تعریف میکنیم:
http://flashcenter.ir/?p=502
۱- برای شروع کار یک پروژه Air ایجاد کنید.
۲- حالا باید کلاسههای مورد نیاز را import کنید:
کد:
import flash.filesystem.File;
import flash.data.SQLConnection;
import flash.events.SQLEvent;
import flash.events.SQLErrorEvent;
import flash.data.SQLStatement;
3- برای ادامه نیاز داریم که ۴ متغیر بسازیم. متغیر conn برای برقراری اتصال با اطلاعات فایل پایگاه داده استفاده میشود، متغیر query وظیفه به جریان انداختن اطلاعات پایگاه داده و انجام عملیات روی اطلاعات را بر عهده دارد، متغیر dbFile برای ایجاد و کنترل فایل پایگاه داده در سیستم عامل به کار میرود و متغیر queryText یک String است که وظیفه متغیر query را در آن مینویسیم.
کد:
var conn:SQLConnection = new SQLConnection();
var query:SQLStatement;
var dbFile:File;
var queryText:String;
4- برای شروع کار باید فایل پایگاه داده در صورت عدم وجود ساخته شود. به کمک کد applicationDirectory این فایل در کنار فایل اصلی (پروژه یا خروجی) ساخته میشود، همانطور که مشخص است نام فایل test.db خواهد بود.
کد:
dbFile = File.applicationDirectory.resolvePath(“test.db”);
5- برای مدیریت اتصال باید دو Event Listener به متغیر conn اختصاص داده شود تا از اتصال موفق یا نا موفق با فایل پایگاه داده مطلع شویم.
کد:
conn.addEventListener(SQLEvent.OPEN, dbOpened);
conn.addEventListener(SQLErrorEvent.ERROR, dbError);
6- حالا فایل پایگاه داده را به صورت غیر همزمان (openAsync) باز میکنیم. بنابراین میتوانیم از Listenerهایی که در بالا برای conn نوشتیم، استفاده کنیم. معمولا برای فایلهای کم حجم از روش همزمان استفاده میشود، درصورت استفاده از روش همزمان امکان استفاده از Listener فراهم نخواهد بود ولی سرعت کار بیشتر و مقدار کدنویسی کمتر میشود اما این احتمال وجود دارد که فایلهای حجیم کامل باز نشوند و اطلاعات به طور کامل در دسترس قرار نگیرد، بنابراین بهتر است برای اطمینان از بارگزاری کامل اطلاعات از روش غیر همزمان استفاده شود.
کد:
conn.openAsync(dbFile);
7- حالا تابعی را تعریف میکنیم که بعد از اتصال موفق و کامل شدن بارگزاری اطلاعات توسط conn فراخوانی میشود.
کد:
function dbOpened(e:SQLEvent):void {
createTable();
}
در این تابع، تابع createTable فراخوانی میشود. این تابعی است که برای ساختن Table و فیلدهای آن در ادامه تعریف میشود.
۸- سپس تابعی را تعریف میکنیم که در صورت اتصال نا موفق conn به فایل پایگاه داده فراخوانی میشود.
کد:
function dbError(e:SQLErrorEvent):void {
trace (“Error DB”);
trace(e.error);
}
9- نوبت به تعریف تابع createTable رسید که برای ساختن جدول (در صورت عدم وجود) بر روی فایل پایگاه داده به کار میرود.
کد:
function createTable():void {
query = new SQLStatement();
query.sqlConnection = conn;
queryText = “CREATE TABLE IF NOT EXISTS ‘website’ ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, url TEXT )”;
query.text = queryText;
query.addEventListener(SQLEvent.RESULT, queryResult);
query.addEventListener(SQLErrorEvent.ERROR, queryError);
query.execute();
}
در این تابع ابتدا یک SQLStatement جدید ساخته میشود.
سپس query اطلاعات conn را به جریان میاندازد.
دستور مورد نظر برای اجرا توسط query، در queryText قرار میگیرد. طبق این دستور ابتدا یک جدول (در صورت عدم وجود) به نام website ساخته میشود که حاوی سه فیلد است. فیلد اول id است که یک INTEGER است و به صورت اتوماتیک یکی یکی زیاد میشود، فیلد دوم name از نوع TEXT و فیلد سوم url از نوع TEXT میباشد. در این مثال قرار است که این پایگاه داده مجموعه ای از آدرسهای چند وبسایت باشد.
در ادامه queryText به query معرفی شده است.
برای اطلاع از موفق یا نا موفق بودن فرآیند ساخت جدول، دو Event Listener برای query تعریف شده است.
در انتها اطلاعات جدید با دستور execute روی فایل پایگاه داده اعمال شده اند.
۱۰- تابعی که در صورت موفق بودن فرآیند ساخت جدول فراخوانی میشود، به قرار زیر است:
کد:
function queryResult(e:SQLEvent):void {
trace(“table created.”);
}
11- تابعی را که در صورت عدم موفقیت آمیز بودن ثبت اطلاعات فراخوانی میشود، به صورت زیر تعریف میکنیم:
کد:
function queryError(e:SQLErrorEvent):void {
trace (“Error QUERY”);
trace(e.error);
}
http://flashcenter.ir/?p=502