مدتی ِ مشغول خوندن کتاب Flex 4 cookbook هستم... به تمامی دوستانی که می تونن به این کتاب دسترسی داشته باشن، پیشنهاد میکنم هر طور شده حتی به صورت reference-ای این کتاب رو مطالعه کنن... مدتی پیش به یه بحث جالب و البته نه چندان جدیدی توی کتاب برخوردم که گفتم شاید بد نباشه اون مطلب رو دقیقا اینجا بیارم. مسئله اینه: اتصال یک پایگاه داده به یک اپلیکیشن Adobe AIR... البته همونطور که می دونید، قبلا در همین سایت، به گونه ای دیگه به این مسئله پرداخته بودم که می تونید اون مطلب رو در اینجا مطالعه کنید... در اصل در این مقاله، ما می خواهیم یک بانک SQLite موجود را داخل یک اپلیکیشن Adobe AIR قرار داده و با آن ارتباط برقرار کنیم... برای انجام این کار، میتونیم بانک موجود را داخل پروژه خودمون embed کرده و سپس جهت برقراری ارتباط اپلیکیشن با بانک، بانکمون رو در یک پوشه دیگر در دستگاه کاربر، کپی کنیم (علت انجام عمل کپی بانک را، در چند سطر پائینتر توضیح خواهم داد)
|
بسیاری از اپلیکیشن های تحت دسکتاپ از بانک های اطلاعاتی جهت ذخیره اطلاعات به صورت local بر روی دستگاه کاربر، استفاده می کنند. به خاطر ماهیت بعضی پروژه ها، مجبوریم بانک اطلاعاتی موجود را داخل پکیج اپلیکیشن Adobe AIR خودمون (با پسوند air.) جاسازی (embed) کنیم...
یادآوری: همونطور که میدونید، فایل های با پسوند air. مجموعه ای از فایل هایی هستند که در داخل یک پکیج در کنار هم ذخیره شده اند. هنگامی که ما اپلیکیشن مورد نظر را بر روی دستگاه خود نصب میکنیم، در اصل آن مجموعه فایل ها را در یک پوشه یا زیر-پوشه مربوط به اپلیکیشن، کپی کرده ایم. هر فایلی را که می خواهیم داخل پروژه AIR خود وارد کرده و از آن در پروژه خودمون استفاده کنیم، باید همراه با سایر فایل ها در داخل فایل کلی پروژه با پسوند air. پکیج شوند. این مورد شامل همه فایل ها از جمله عکسها، فایل های متنی، فایل های مربوط به بانک اطلاعاتی و ... می باشد. (پایان یادآوری)
البته باید به این نکته هم توجه داشته باشیم که پوشه اصلی پروژه، یعنی File.applicationDirectory، یک پوشه فقط خواندنی (read-only) می باشد. بنابراین اگر سعی کنیم که با بانکمون در این پوشه ارتباط برقرار کنیم با خطا مواجه خواهیم شد! برای حل این مشکل، باید بانک اطلاعاتیمون رو در یک پوشه دیگر مثل documents یا desktop یا هر پوشه دیگر بر روی دستگاه کاربر، با استفاده از متد ()copyTo از کلاس File کپی کنیم. در این صورت می توانیم از اون پس به راحتی با بانکمون ازتباط برقرار کنیم، رکورد جدید ایجاد کنیم، ویرایش کنیم و یا جتی حذف کنیم...
در قطعه کد ActionScript زیر، فایل بانک اطلاعاتی software.db از پوشه اصلی اپلیکیشن، به پوشه documents دستگاه کاربر کپی می شود. بعد از کپی شدن بانک، می توانیم به راحتی همه گونه محاوره ای با اون بانک داشته باشیم:
var dbFile:File = File.applicationDirectory.resolvePath("db/software.db"); var dbWorkFile:File = File.documentsDirectory.resolvePath("software.db");
if(!dbWorkFile.exists){ dbFile.copyTo(dbWorkedFile); }
|
به همین سادگی... امیدوارم این مقاله کوچیک و ساده برای دوستانی که در این بحث مبتدی تر بوده و دنبال موارد پایه ای میگردن، مفید بوده باشه و قابل استفاده.
همگی موفق باشید و موید