برای انجام پروژه ای نیاز به استفاده از بانک اطلاعتی SQLite در دلفی 2009 و دات نت فریم ورک 2 دارم، همانطور که می دانید به صورت پیش فرض RAD Studio و دات نت فریم ورک کلاسی برای کار با SQLite ندارند. پس از کمی جستجو در وب سایت ها و همچنین پیشنهاداتی که در سایت رسمی SQLite داده شده (اینجا) بود یکسری Wrapper را مورد بررسی قرار دادم. برای دلفی 2009 کامپوننت RemObjects AnyDAC 2.0 راه حل خوبی است اما متاسفانه رایگان نیست. البته نسخه شخصی و رایگان DISQLite3 هم می تواند نیاز من را برطرف کند. اما در این میان با کلاس ساده و مناسبی برخورد کردم که هم رایگان است و هم ساده. برای دات نت فریم ورک من قصد دارم از این در پروژه ام استفاده کنم.

برای دلفی 2009
آقای Tim Anderson برای استفاده خودش Wrapper مناسب و ساده ای نوشته و آن را در اختیار عموم قرار داده است. این Wrapper شامل سه کلاس پایه است که اعمال درج, حذف، به روز رسانی و واکشی داده ها از یک دیتابیس SQLite را انجام می دهند. این Wrapper همچنین از تراکنش های بانک اطلاعاتی (Commit, RollBack) پشتیبانی می کند اما متاسفانه از قابلیت هایی مثل Full-text search پشتیبانی نمی کند. این کلاس ها را نمی توان در حالت طراحی (Design Time) استفاده نمود و بایستی برای استفاده از این Wrapper از کلاس های مورد نیاز خود نمونه سازی کنید. در واقع شما از دو کلاس TSQLiteDatabase و TSQLIteTable برای دستیابی به فایل دیتابیس و اعمال تغییرات در آن استفاده می کنید. نکته ای که باید در نظر داشته باشید این است که این Wrapper را نمی توانید با کامپوننت های دیگر همچون Dataset ارتباط دهید، در نتیجه نمی توانید از کامپوننت های DBAware مثل DBText استفاده کنید و یا داده ها را به یک DBGrid بایند کنید.
برای دریافت این Wrapper به این صفحه از سایت Tim Anderson مراجعه کنید. همراه با کلاس های فوق، یک برنامه نمونه ساده هم موجود است که نحوه ی استفاده از آن را به سادگی توضیح داده است.
برای دات نت فریم ورک 2 و 3.5
ADO.NET 2.0 Provider for SQLite دارای یک فایل اسمبلی است که شامل موتور دیتابیس SQLite و کلاس های ADO.NET مورد نیاز برای دسترسی و استفاده از SQLite می باشد. به سادگی فایل اسمبلی این Wrapper را به Referenceهای پروژه خود اضافه می کنید و از فضای نام System.Data.SQLite به کلاس های داخل آن دسترسی پیدا می کنید. اسمبلی دیگر این Wrapper به شما اجازه استفاده از LINQ به SQLite را می دهد. نحوه استفاده از کلاس های این Wrapper دقیقاً مشابه استفاده از کلاس های دیگر Data Providerها مانند OleDb و Sql است. این Wrapper از .NET Compact Framework نیز پیشتبانی می کند، پس می توانید از SQLite در برنامه های مبتنی بر ویندوز موبایل بهره ببرید.
این Wrapper را می توانید از اینجا دریافت کنید. در زیر مثالی از ایجاد یک جدول در یک فایل دیتابیس SQLite با استفاده از این Wrapper به زبان سی شارپ را مشاهده می کنید.
SQLiteConnection con = new SQLiteConnection("Provider=System.Data.SQLite;Data Source=C:\\data.db");
con.Open();
SQLiteCommand cmd = new SQLiteCommand(con);
cmd.CommandText = "CREATE TABLE farasun (post_id INT, title TEXT(150), post VARCHAR)";
cmd.ExecuteNonQuery();
فقط توجه داشته باشید که بایستی فضای نام System.Data.SQLite را using کرده باشید. اگر نیازی به توضیح بیشتر و مثالی واضح تر بود، در نظرات اعلام کنید.
به یاد داشته باشید که SQLite یکی از مناسب ترین راه حل ها برای ذخیره داده های محلی است. نرم افزارهای معروفی مثل Firefox و Google Gears از SQLite به صورت توکار (Built-in) استفاده می کنند.
farasun.wordpress.com
farasun.wordpress.com
مطالب مرتبط :






به به Welcome back
امتحانا خوب بود؟
من از این ADO.NET 2.0 Provider for SQLite استفاده کردم و بسیار راض کننده بود.
تنها مشکل خیلی ازیتم کرد DataSet Designer بود که شدیدا مشکل داشت.
در کل SQLite خیلی می چسبه
@ Salar : مرسی سالار جان، امتحانات این ترم خیلی سخت بود. امیدوارم مشروط نشم فقط!!
ADO.NET 2.0 Provider for SQLite خیلی خوب و مناسبه برای کار من، خوشبختانه این پروژه ی من زیاد بزرگ نیست و احتمالاً احتیاجی به استفاده از DataSet نخواهم داشت.
با سلام . دوستان وردپرسی بخوانند :
بوکمارک های اشتراکی وردپرس دات کام
جالبه که شما که این همه از دات نت حرف میزنید، با دلفی هم کار میکنید.
من این راپر آقای Anderson را ندیدم ولی کامپوننت DISQLite رو در دلفی استفاده کردم و فوقالعاده خوب کار میکند. اگر چه پولی است.
http://www.yunqa.de/delphi/doku.php/products/sqlite3/index
[...] SQLite Wrapper برای دلفی 2009 و دات نت 2 و 3.5 [...]
[...] See the original post here: SQLite Wrapper برای دلفی ۲۰۰۹ و دات نت ۲ و ۳/۵ [...]
سلام بر همه دوستان
یه سوال داشتم – پروژه ای دارم که پایگاهش sql server هست و در آن از stored procedure و view زیاد استفاده شده ، می خواستم برای بالا رفتن امنیت فایل اون را به اکسس تبدیل کنم اما امکانات sql را ندارد و میگن پسوردش راحت هک می شه ، آیا sqlite گزینه مناسبی برای این کار هست ؟ یا می تونید چیز دیگه ای معرفی کنید که مثل ado کار کنه و مجبور نباشم کل پروژه را تغییر بدم.
تشکر
@ l[ln : سلام، متاسفانه SQLite از Stored Procedure پشتیبانی نمی کند و از View های فقط read-only پشتیبانی می کند. البته می توانید طور دیگر کار Stored Procedure ها را در SQLite انجام دهید ولی در کل برای این کار شما SQLite گزینه مناسبی نخواهد بود.