مقدمهای بر ارتباط با دیتابیس SQLite در B4A
SQLite یک پایگاه داده سبک و درونساخت است که بهخصوص در برنامههای موبایل بسیار مورد استفاده قرار میگیرد. B4A (Basic4Android) یک محیط توسعه برای برنامهنویسی اندروید است که به شما امکان میدهد برنامههای کاربرپسند بسازید. در اینجا، به بررسی نحوه ارتباط با دیتابیس SQLite در B4A خواهیم پرداخت.
راهاندازی SQLite در B4A
برای شروع، باید اطمینان حاصل کنید که کتابخانه SQLite در پروژه شما فعال است. برای این کار:
- به منوی “Libraries” در B4A بروید.
- کتابخانه SQLite را فعال کنید.
ایجاد دیتابیس
برای ایجاد یک دیتابیس جدید، از کد زیر استفاده کنید:
```basic
Dim db As SQL
db.Initialize(File.DirDefaultExternal, "mydatabase.db", True)
```
این کد یک دیتابیس جدید به نام `mydatabase.db` در دایرکتوری پیشفرض ایجاد میکند.
ایجاد جدول
برای ایجاد جدول، میتوانید از کد زیر استفاده کنید:
```basic
db.ExecSQL("CREATE TABLE IF NOT EXISTS Users (ID INTEGER PRIMARY KEY, Name TEXT, Age INTEGER)")
```
این کد جدولی به نام `Users` با سه فیلد ایجاد میکند: `ID`، `Name` و `Age`.
اضافه کردن دادهها
برای اضافه کردن دادهها به جدول، از کد زیر استفاده کنید:
```basic
db.ExecSQL("INSERT INTO Users (Name, Age) VALUES (?, ?)", Array As Object("Ali", 25))
```
در اینجا، نام و سن کاربر به جدول اضافه میشود.
خواندن دادهها
برای خواندن دادهها، میتوانید از کد زیر استفاده کنید:
```basic
Dim Cursor As Cursor
Cursor = db.ExecQuery("SELECT * FROM Users")
Do While Cursor.NextRow
Log("ID: " & Cursor.GetInt("ID") & ", Name: " & Cursor.GetString("Name") & ", Age: " & Cursor.GetInt("Age"))
Loop
```
این کد تمام دادههای موجود در جدول `Users` را خوانده و در لاگ نمایش میدهد.
بهروزرسانی و حذف دادهها
برای بهروزرسانی دادهها، از کد زیر استفاده کنید:
```basic
db.ExecSQL("UPDATE Users SET Age = ? WHERE Name = ?", Array As Object(30, "Ali"))
```
و برای حذف دادهها:
```basic
db.ExecSQL("DELETE FROM Users WHERE Name = ?", Array As Object("Ali"))
```
نتیجهگیری
استفاده از SQLite در B4A به شما این امکان را میدهد که بهراحتی دادهها را ذخیره و مدیریت کنید. با استفاده از کدهای بالا، شما میتوانید یک دیتابیس ساده ایجاد کرده و عملیات مختلفی مثل اضافه کردن، خواندن، بهروزرسانی و حذف دادهها را انجام دهید. این قابلیتها، برنامهنویسی شما را بسیار کارآمدتر خواهد کرد.
ارتباط با دیتابیس SQLite در B4A (Basic4Android) یکی از مهمترین و پرکاربردترین مباحث توسعه برنامههای اندروید است. در ادامه، به طور کامل و جامع دربارهی نحوهی استفاده، سورس کد و راهنماییهای لازم برای برقراری ارتباط با SQLite در B4A توضیح میدهم، تا بتوانید پروژههای خود را به بهترین شکل انجام دهید.
مقدمهای بر SQLite در B4A
SQLite، یک پایگاه داده سبک و داخلی است که در اکثر برنامههای موبایل مورد استفاده قرار میگیرد. در B4A، این ارتباط بسیار ساده است، اما نیازمند توجه به چند نکته کلیدی است. اولین قدم، ساخت و مدیریت فایل پایگاه داده است، سپس، عملیاتهایی مانند درج، بروزرسانی، حذف و جستجو بر روی دادهها انجام میشود.
ساخت پایگاه داده
در B4A، شما میتوانید پایگاه داده را به صورت دستی در پوشه پروژه قرار دهید یا در حین اجرا، آن را بسازید. معمولاً، فایل `.sqlite` یا `.db` در پوشه `Files` قرار میگیرد.
برای ساخت دیتابیس، میتوانید از کد زیر استفاده کنید:
```b4a
Sub CreateDatabase
Dim SQL1 As SQL
SQL
- Initialize(File.DirDefaultExternal, "mydatabase.sqlite", True)
End Sub
```
در اینجا، `File.DirDefaultExternal` مسیر ذخیرهسازی است، اما میتوانید مسیر دلخواه خود را مشخص کنید.
ایجاد جدولها
پس از ساخت دیتابیس، باید جداول مورد نیاز را ایجاد کنید. به عنوان مثال، جدول کاربران:
```b4a
Sub CreateTable
Dim SQL1 As SQL
SQL
- Initialize(File.DirDefaultExternal, "mydatabase.sqlite", True)
- ExecNonQuery("CREATE TABLE IF NOT EXISTS Users (ID INTEGER PRIMARY KEY, Name TEXT, Age INTEGER)")
```
این دستور، جدول `Users` را در صورت عدم وجود میسازد.
عملیاتهای پایه
در ادامه، چند عملیات رایج را بررسی میکنیم: درج، بروزرسانی، حذف و جستجو.
درج داده
```b4a
Sub InsertUser(Name As String, Age As Int)
Dim SQL1 As SQL
SQL
- Initialize(File.DirDefaultExternal, "mydatabase.sqlite", True)
- ExecNonQuery2("INSERT INTO Users (Name, Age) VALUES (?, ?)", Array As Object(Name, Age))
```
بروزرسانی داده
```b4a
Sub UpdateUser(ID As Int, NewName As String, NewAge As Int)
Dim SQL1 As SQL
SQL
- Initialize(File.DirDefaultExternal, "mydatabase.sqlite", True)
- ExecNonQuery2("UPDATE Users SET Name = ?, Age = ? WHERE ID = ?", Array As Object(NewName, NewAge, ID))
```
حذف داده
```b4a
Sub DeleteUser(ID As Int)
Dim SQL1 As SQL
SQL
- Initialize(File.DirDefaultExternal, "mydatabase.sqlite", True)
- ExecNonQuery2("DELETE FROM Users WHERE ID = ?", Array As Object(ID))
```
جستجو و بازیابی دادهها
```b4a
Sub GetAllUsers As List
Dim SQL1 As SQL
SQL
- Initialize(File.DirDefaultExternal, "mydatabase.sqlite", True)
- ExecQuery("SELECT * FROM Users")
Users.Initialize
For i = 0 To Cursor
- RowCount - 1
- Position = i
User.Initialize
User.Put("ID", Cursor
- GetInt("ID"))
- GetString("Name"))
- GetInt("Age"))
Next
Cursor
- Close
End Sub
```
این تابع، تمامی کاربران را در قالب یک لیست از مپها برمیگرداند.
نکات مهم
- مدیریت اتصال: بهتر است، اتصال به دیتابیس را در ابتدای برنامه باز و در انتها ببندید، اما در B4A، معمولا هر عملیات، اتصال جداگانه برقرار میشود.
- استفاده از `ExecNonQuery2`: این متد، برای عملیاتهای درج، بروزرسانی و حذف مناسب است و امکان استفاده از پارامترها را دارد.
- باز کردن Cursor: برای خواندن دادهها، باید از `Cursor` استفاده کنید و قبل از خروج، آن را ببندید.
- مسیر فایل: مسیر دیتابیس باید صحیح باشد؛ در حالت عادی، `File.DirDefaultExternal` مناسب است، ولی میتوانید مسیر دلخواه خود را مشخص کنید.
جمعبندی
ارتباط با SQLite در B4A بسیار انعطافپذیر و سریع است، و با چند خط کد، میتوانید عملیاتهای پیچیده و کاربردی انجام دهید. کلید موفقیت، مدیریت صحیح عملیاتهای پایگاه داده، استفاده از پارامترها برای جلوگیری از SQL Injection، و تمرین مداوم است. با رعایت این نکات، پروژههای قوی و قابل توسعه خواهید ساخت.
اگر نیاز دارید، میتوانم نمونه سورس کاملتر و پروژههای نمونه را برایتان آماده کنم.