DB_ExecuteQuery
توضیحات
این تابع برای اجرای درخواست SQL روی پایگاه داده SQLite باز شده استفاده می شود.
نام | توضیحات |
---|---|
DB:db | دستگیره پایگاه داده برای درخواست. |
const query[] | درخواستی که باید اجرا شود. |
OPEN_MP_TAGS:... | تعداد نامحدودی از آرگومان های با هر تگی. |
مقادیر بازگشتی
شاخص نتیجه درخواست (شروع از 1) در صورت موفقیت، در غیر این صورت 0.
مثال ها
// entity_storage.inc
EntityStorage_SpawnAll(DB:connectionHandle)
{
// انتخاب تمام ورودی ها در جدول "entities"
new DBResult:db_result_set = DB_ExecuteQuery(connectionHandle, "SELECT * FROM `entities`");
// اگر دستگیره مجموعه نتیجه پایگاه داده معتبر است
if (db_result_set)
{
// کاری انجام بده...
// مجموعه نتیجه را آزاد کن
DB_FreeResultSet(db_result_set);
}
}
// mode.pwn
#include <entity_storage>
static DB:gDBConnectionHandle;
// ...
public OnGameModeInit()
{
// ...
// ایجاد اتصال به پایگاه داده
gDBConnectionHandle = DB_Open("example.db");
// اگر اتصال به پایگاه داده وجود دارد
if (gDBConnectionHandle)
{
// با موفقیت اتصال به پایگاه داده ایجاد شد
print("Successfully created a connection to database \"example.db\".");
EntityStorage_SpawnAll(gDBConnectionHandle);
}
else
{
// ایجاد اتصال به پایگاه داده ناموفق بود
print("Failed to open a connection to database \"example.db\".");
}
// ...
return 1;
}
public OnGameModeExit()
{
// بستن اتصال به پایگاه داده اگر اتصال باز است
if (DB_Close(gDBConnectionHandle))
{
// پاکسازی اضافی
gDBConnectionHandle = DB:0;
}
// ...
return 1;
}
نکات
هشدار
همیشه نتایج را با استفاده از DB_FreeResultSet آزاد کنید!
توابع مرتبط
- DB_Open: باز کردن اتصال به پایگاه داده SQLite
- DB_Close: بستن اتصال به پایگاه داده SQLite
- DB_ExecuteQuery: درخواست از پایگاه داده SQLite
- DB_FreeResultSet: آزاد کردن حافظه نتیجه از DB_ExecuteQuery
- DB_GetRowCount: دریافت تعداد سطرها در نتیجه
- DB_SelectNextRow: رفتن به سطر بعدی
- DB_GetFieldCount: دریافت تعداد فیلدها در نتیجه
- DB_GetFieldName: نام فیلد در شاخص مشخص را برمی گرداند
- DB_GetFieldString: دریافت محتوای فیلد با شناسه مشخص از سطر نتیجه فعلی
- DB_GetFieldStringByName: دریافت محتوای فیلد با نام مشخص از سطر نتیجه فعلی
- DB_GetFieldInt: دریافت محتوای فیلد به صورت عدد صحیح با شناسه مشخص از سطر نتیجه فعلی
- DB_GetFieldIntByName: دریافت محتوای فیلد به صورت عدد صحیح با نام مشخص از سطر نتیجه فعلی
- DB_GetFieldFloat: دریافت محتوای فیلد به صورت عدد اعشاری با شناسه مشخص از سطر نتیجه فعلی
- DB_GetFieldFloatByName: دریافت محتوای فیلد به صورت عدد اعشاری با نام مشخص از سطر نتیجه فعلی
- DB_GetMemHandle: دریافت دستگیره حافظه برای پایگاه داده SQLite که با db_open باز شده
- DB_GetLegacyDBResult: دریافت دستگیره حافظه برای درخواست SQLite که با DB_ExecuteQuery اجرا شده
- DB_GetDatabaseConnectionCount: این تابع تعداد اتصالات باز پایگاه داده را برای اهداف عیب یابی دریافت می کند
- DB_GetDatabaseResultSetCount: این تابع تعداد نتایج باز پایگاه داده را دریافت می کند