خانه » مالتی مدیا » ادوبی ایر » آشنایی با SQLite در Air – ساختن table

آشنایی با SQLite در Air – ساختن table

آشنایی با SQLite در Air – ساختن table

در این درس کار با پایگاه داده SQLite در Air  ، نحوه ساختن جدول و فیلدهای مورد نیاز در جدول ساخته شده آموزش داده می‌شود.

۱- برای شروع کار یک پروژه Air ایجاد کنید.

۲- حالا باید کلاسه‌های مورد نیاز را import کنید:

import flash.filesystem.File;
import flash.data.SQLConnection;
import flash.events.SQLEvent;
import flash.events.SQLErrorEvent;
import flash.data.SQLStatement;


۳- برای ادامه نیاز داریم که ۴ متغیر بسازیم. متغیر conn برای برقراری اتصال با اطلاعات فایل پایگاه داده استفاده می‌شود، متغیر query وظیفه به جریان انداختن اطلاعات پایگاه داده و انجام عملیات روی اطلاعات را بر عهده دارد، متغیر dbFile برای ایجاد و کنترل فایل پایگاه داده در سیستم عامل به کار می‌رود و متغیر queryText یک String است که وظیفه متغیر query را در آن می‌نویسیم.

var conn:SQLConnection = new SQLConnection();
var query:SQLStatement;
var dbFile:File;
var queryText:String;

۴- برای شروع کار باید فایل پایگاه داده در صورت عدم وجود ساخته شود. به کمک کد applicationDirectory این فایل در کنار فایل اصلی (پروژه یا خروجی) ساخته می‌شود، همانطور که مشخص است نام فایل test.db خواهد بود.

dbFile = File.applicationDirectory.resolvePath("test.db");

۵- برای مدیریت اتصال باید دو Event Listener به متغیر conn اختصاص داده شود تا از اتصال موفق یا نا موفق با فایل پایگاه داده مطلع شویم.

conn.addEventListener(SQLEvent.OPEN, dbOpened);
conn.addEventListener(SQLErrorEvent.ERROR, dbError);

۶- حالا فایل پایگاه داده را به صورت غیر همزمان (openAsync) باز می‌کنیم. بنابراین می‌توانیم از Listener‌هایی که در بالا برای conn نوشتیم، استفاده کنیم. معمولا برای فایل‌های کم حجم از روش همزمان استفاده می‌شود، درصورت استفاده از روش همزمان امکان استفاده از Listener فراهم نخواهد بود ولی سرعت کار بیشتر و مقدار کدنویسی کمتر می‌شود اما این احتمال وجود دارد که فایل‌های حجیم کامل باز نشوند و اطلاعات به طور کامل در دسترس قرار نگیرد، بنابراین بهتر است برای اطمینان از بارگزاری کامل اطلاعات از روش غیر همزمان استفاده شود.

conn.openAsync(dbFile);

۷- حالا تابعی را تعریف می‌کنیم که بعد از اتصال موفق و کامل شدن بارگزاری اطلاعات توسط conn فراخوانی می‌شود.

function dbOpened(e:SQLEvent):void
{
	createTable();
}
  • در این تابع، تابع createTable فراخوانی می‌شود. این تابعی است که برای ساختن Table و فیلدهای آن در ادامه تعریف می‌شود.

۸- سپس تابعی را تعریف می‌کنیم که در صورت اتصال نا موفق conn به فایل پایگاه داده فراخوانی می‌شود.

function dbError(e:SQLErrorEvent):void
{
	trace("Error DB");
	trace(e.error);
}

۹- نوبت به تعریف تابع 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.");
}

۱۱- تابعی را که در صورت عدم موفقیت آمیز بودن ثبت اطلاعات فراخوانی می‌شود، به صورت زیر تعریف می‌کنیم:

function queryError(e:SQLErrorEvent):void
{
	trace("Error QUERY");
	trace(e.error);
}
Print Friendly, PDF & Email
تگ ها :
پیوند مطلب قبلی
پیوند مطلب بعدی

درباره بهروز پولادرگ

متولد : ۵ مرداد سال ۱۳۶۷ ، حرفه : ادوبی فلش ، برنامه نویسی و طراحی وب ، طراحی گرافیک ، مالتی مدیا ، نرم افزار های تحت وب

16 نظر

  1. سلام . مممنون از بابت آموزشتون . تو این مثالی که آموزش دادید نحوه ساختن جدولو گفتید . اما امکانش هست ، نحوه وارد کردن دیتا داخل جدول ساخته شده و ذخیره کردنش و همینطور واکشی اطلاعات و نمایششون داخل یک آبجکتو بذارید خیلی خیلی ممنون میشم .

  2. سلام
    من یه مشکل خیلی بزرگ دارم. وقتی از برنامه با دستورات بالا تست می گیرم( Test )، برنامه هیچ مشکلی نداره و کارشو انجام میده، ولی وقتی ازش خروجی می گیرم( Publish ) و اجرا می کنم، سریع میاد بیرون.
    وقتی SQLConnection و SQLStatement و بقیه متغیر ها رو پاک می کنم از کد یا بهتره بگم همه رو پاک می کنم، و دوباره خروجی می گیرم، درست و کامل کار می کنه!!!

    به نظرم برنامه با توابع adobe air نمیسازه!! شما تجربه این اتفاق رو داشتید؟ من چی کار باید بکنم؟ تا ۱ ماه دیگه باید کارو تحویل بدم

    با سپاس

    • سلام احتمالا یک خطا باعث این امر می شود
      از بخش تنظیمات ActioinScript همه بخش های مربوطه به خطاها را فعال کنید و همه خطاهای احتمالی را رفع کنید
      و در صورتی که این مشکل نبود از نسخه های به روز تر فلش استفاده کنید
      بنده در نمونه هایی این مورد را استفاده کرده ام و مشکلی در خروجی نداشته ام.
      موفق و پیروز باشید

  3. سلام خسته نباشید
    ببخشید میتونم چند تا سوال در مورد برنامه فلش از شماداشته باشم؟با تشکر

  4. مرگ تدریجی یک رویا...

    آقا بهروز خواهش میکنم اگه امکانداره یک مثال برای insert دیتا با این آموزشوتون داشته باشین

  5. محمدحسن رمضانیان

    سلام، آقای پولادرگ.

    اگر میشه یک سایت رو برای خرید و یا دانلود مرجع آموزش SQLite معرفی کنید.

  6. با سلام عرض خسته نباشید خدمت استاد گرامی.
    من به تازگی کار با ادوبی ایر را شروع کردم و به مشکل زیر برخورد کردم:
    وقتی در پروژم متغیری از جنس file میسازم و استفاده میکنم در داخل نرم افزار ادوبی ایر برنامه ام بدرستی کار میکنه ولی وقتی اونو Publish میکنم فایل .swf ساخته شده توسط Flash Player باز نمی شه و کار نمیکنه.این مشکل با حذف متغیر از جنس فایل از بین میره.
    لطفا منو راهنمایی کنید که چطور این مشکل را حل کنم.
    پیشاپیش قدردان زحمات شما دوست گرامی بوده و برایتان از خداوند منان طلب شادی و طول عمر با برکت می نمایم.

    • سلام
      اگر داکیومنت اکشن اسکریپت را مشاهده کنید و یا کد مربوطه را در وب جستجو کنید اطلاعات بیشتری از آن بدست می آورید
      برخی کدها فقط برای ایر کاربرد دارند و در فلش پلیر کار نمی کنند این کدها در بخش راهنمای ادوبی مشخص شده اند
      موفق و پیروز باشید

  7. یه سایت مرجع خوب هست برای آشنایی

    tutorialspoint

  8. با سلام
    خسته نباشید
    چطوری یک دیتابیس را که (با دستور OpenAsync) باز کردیم، در کدنویسی ببندیم؟

ارسال جواب

آدرس رایانامه شما منتشر نخواهد شد.فیلد های اجباری علامت گزاری شده اند *

*

رفتن به بالای صفحه