Skip to main content

DB_SelectNextRow

Description

The function moves to the next row of the result set allocated with DB_ExecuteQuery.

NameDescription
DBResult:dbresultThe result of DB_ExecuteQuery.

Returns

Returns true if result set handle is valid and the last row is not reached yet, otherwise false.

Examples

// examples.inc

// ...

Examples_ListNames(DB:dbConnectionHandle)
{
// Database result set
new DBResult:db_result_set = DB_ExecuteQuery("SELECT `name` FROM `examples`");

// If database result set is valid
if (db_result_set)
{
// Allocate some memory to store results
new result[256];

// Do operations
do
{
// Add value from "example" field to the return value variable
DB_GetFieldStringByName(db_result_set, "name", result, sizeof result);
}

// While next row could be fetched
while (DB_SelectNextRow(db_result_set));

// Free result set
DB_FreeResultSet(db_result_set);
}
}
// mode.pwn

// ...

#include <examples>

static DB:gDBConnectionHandle;

// ...

public OnGameModeInit()
{
// ...

// Create a connection to a database
gDBConnectionHandle = DB_Open("example.db");

// If connection to the database exists
if (gDBConnectionHandle)
{
// Successfully created a connection to the database
print("Successfully created a connection to database \"example.db\".");
Examples_ListNames(gDBConnectionHandle);
}
else
{
// Failed to create a connection to the database
print("Failed to open a connection to database \"example.db\".");
}

// ...

return 1;
}

public OnGameModeExit()
{
// Close the connection to the database if connection is open
if (DB_Close(gDBConnectionHandle))
{
// Extra cleanup
gDBConnectionHandle = DB:0;
}

// ...

return 1;
}

Notes

warning

Using an invalid handle other than zero will crash your server! Get a valid database connection handle by using DB_ExecuteQuery.