Skip to content

Commit

Permalink
Merge pull request #810 from adib-yg/master
Browse files Browse the repository at this point in the history
Modern SQLite functions docs
  • Loading branch information
adib-yg authored Jan 6, 2024
2 parents 33988cb + 561200a commit b86b091
Show file tree
Hide file tree
Showing 20 changed files with 2,088 additions and 4 deletions.
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,6 @@ prisma/Studio/
.vercel
# Sublime Text
*.sublime-project
*.sublime-workspace
*.sublime-workspace
# Visual Studio
*.wsuo
120 changes: 120 additions & 0 deletions docs/scripting/functions/DB_ExecuteQuery.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
---
title: DB_ExecuteQuery
description: The function is used to execute an SQL query on an opened SQLite database.
keywords:
- sqlite
tags: ["sqlite"]
---

## Description

The function is used to execute an SQL query on an opened SQLite database.

| Name | Description |
|------------------|--------------------------------------------|
| DB:db | The database handle to query. |
| const query[] | The query to execute. |
| OPEN_MP_TAGS:... | Indefinite number of arguments of any tag. |

## Returns

The query result index (starting at 1) if successful, otherwise 0.

## Examples

```c
// entity_storage.inc

EntityStorage_SpawnAll(DB:connectionHandle)
{
// Select all entries in table "entities"
new DBResult:db_result_set = DB_ExecuteQuery(connectionHandle, "SELECT * FROM `entities`");

// If database result set handle is valid
if (db_result_set)
{
// Do something...

// Free the result set
DB_FreeResultSet(db_result_set);
}
}
```
```c
// mode.pwn
#include <entity_storage>
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\".");
EntityStorage_SpawnAll(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

Always free results by using [DB_FreeResultSet](DB_FreeResultSet)!

:::

## Related Functions

- [DB_Open](DB_Open): Open a connection to an SQLite database
- [DB_Close](DB_Close): Close the connection to an SQLite database
- [DB_ExecuteQuery](DB_ExecuteQuery): Query an SQLite database
- [DB_FreeResultSet](DB_FreeResultSet): Free result memory from a DB_ExecuteQuery
- [DB_GetRowCount](DB_GetRowCount): Get the number of rows in a result
- [DB_SelectNextRow](DB_SelectNextRow): Move to the next row
- [DB_GetFieldCount](DB_GetFieldCount): Get the number of fields in a result
- [DB_GetFieldName](DB_GetFieldName): Returns the name of a field at a particular index
- [DB_GetFieldString](DB_GetFieldString): Get content of field with specified ID from current result row
- [DB_GetFieldStringByName](DB_GetFieldStringByName): Get content of field with specified name from current result row
- [DB_GetFieldInt](DB_GetFieldInt): Get content of field as an integer with specified ID from current result row
- [DB_GetFieldIntByName](DB_GetFieldIntByName): Get content of field as an integer with specified name from current result row
- [DB_GetFieldFloat](DB_GetFieldFloat): Get content of field as a float with specified ID from current result row
- [DB_GetFieldFloatByName](DB_GetFieldFloatByName): Get content of field as a float with specified name from current result row
- [DB_GetMemHandle](DB_GetMemHandle): Get memory handle for an SQLite database that was opened with db_open.
- [DB_GetLegacyDBResult](DB_GetLegacyDBResult): Get memory handle for an SQLite query that was executed with DB_ExecuteQuery.
- [DB_GetDatabaseConnectionCount](DB_GetDatabaseConnectionCount): The function gets the number of open database connections for debugging purposes.
- [DB_GetDatabaseResultSetCount](DB_GetDatabaseResultSetCount): The function gets the number of open database results.
110 changes: 110 additions & 0 deletions docs/scripting/functions/DB_FreeResultSet.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
---
title: DB_FreeResultSet
description: Frees result memory allocated from DB_ExecuteQuery.
keywords:
- sqlite
tags: ["sqlite"]
---

## Description

Frees result memory allocated from DB_ExecuteQuery.

| Name | Description |
|-------------------|------------------------------------------------------------------------|
| DBResult:dbresult | The result set to free allocated by [DB_ExecuteQuery](DB_ExecuteQuery) |

## Returns

Returns 1 if result set handle is valid, otherwise 0.

## Examples

```c
// entity_storage.inc

EntityStorage_SpawnAll(DB:connectionHandle)
{
// Select all entries in table "entities"
new DBResult:db_result_set = DB_ExecuteQuery(connectionHandle, "SELECT * FROM `entities`");

// If database result set handle is valid
if (db_result_set)
{
// Do something...

// Free the result set
DB_FreeResultSet(db_result_set);
}
}
```
```c
// mode.pwn
#include <entity_storage>
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\".");
EntityStorage_SpawnAll(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;
}
```

## Related Functions

- [DB_Open](DB_Open): Open a connection to an SQLite database
- [DB_Close](DB_Close): Close the connection to an SQLite database
- [DB_ExecuteQuery](DB_ExecuteQuery): Query an SQLite database
- [DB_FreeResultSet](DB_FreeResultSet): Free result memory from a DB_ExecuteQuery
- [DB_GetRowCount](DB_GetRowCount): Get the number of rows in a result
- [DB_SelectNextRow](DB_SelectNextRow): Move to the next row
- [DB_GetFieldCount](DB_GetFieldCount): Get the number of fields in a result
- [DB_GetFieldName](DB_GetFieldName): Returns the name of a field at a particular index
- [DB_GetFieldString](DB_GetFieldString): Get content of field with specified ID from current result row
- [DB_GetFieldStringByName](DB_GetFieldStringByName): Get content of field with specified name from current result row
- [DB_GetFieldInt](DB_GetFieldInt): Get content of field as an integer with specified ID from current result row
- [DB_GetFieldIntByName](DB_GetFieldIntByName): Get content of field as an integer with specified name from current result row
- [DB_GetFieldFloat](DB_GetFieldFloat): Get content of field as a float with specified ID from current result row
- [DB_GetFieldFloatByName](DB_GetFieldFloatByName): Get content of field as a float with specified name from current result row
- [DB_GetMemHandle](DB_GetMemHandle): Get memory handle for an SQLite database that was opened with db_open.
- [DB_GetLegacyDBResult](DB_GetLegacyDBResult): Get memory handle for an SQLite query that was executed with DB_ExecuteQuery.
- [DB_GetDatabaseConnectionCount](DB_GetDatabaseConnectionCount): The function gets the number of open database connections for debugging purposes.
- [DB_GetDatabaseResultSetCount](DB_GetDatabaseResultSetCount): The function gets the number of open database results.
34 changes: 34 additions & 0 deletions docs/scripting/functions/DB_GetDatabaseConnectionCount.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
title: DB_GetDatabaseConnectionCount
description: Gets the number of open database connections for debugging purposes.
keywords:
- sqlite
tags: ["sqlite"]
---

## Description

The function gets the number of open database connections for debugging purposes.

The function has no parameters.

## Related Functions

- [DB_Open](DB_Open): Open a connection to an SQLite database
- [DB_Close](DB_Close): Close the connection to an SQLite database
- [DB_ExecuteQuery](DB_ExecuteQuery): Query an SQLite database
- [DB_FreeResultSet](DB_FreeResultSet): Free result memory from a DB_ExecuteQuery
- [DB_GetRowCount](DB_GetRowCount): Get the number of rows in a result
- [DB_SelectNextRow](DB_SelectNextRow): Move to the next row
- [DB_GetFieldCount](DB_GetFieldCount): Get the number of fields in a result
- [DB_GetFieldName](DB_GetFieldName): Returns the name of a field at a particular index
- [DB_GetFieldString](DB_GetFieldString): Get content of field with specified ID from current result row
- [DB_GetFieldStringByName](DB_GetFieldStringByName): Get content of field with specified name from current result row
- [DB_GetFieldInt](DB_GetFieldInt): Get content of field as an integer with specified ID from current result row
- [DB_GetFieldIntByName](DB_GetFieldIntByName): Get content of field as an integer with specified name from current result row
- [DB_GetFieldFloat](DB_GetFieldFloat): Get content of field as a float with specified ID from current result row
- [DB_GetFieldFloatByName](DB_GetFieldFloatByName): Get content of field as a float with specified name from current result row
- [DB_GetMemHandle](DB_GetMemHandle): Get memory handle for an SQLite database that was opened with db_open.
- [DB_GetLegacyDBResult](DB_GetLegacyDBResult): Get memory handle for an SQLite query that was executed with DB_ExecuteQuery.
- [DB_GetDatabaseConnectionCount](DB_GetDatabaseConnectionCount): The function gets the number of open database connections for debugging purposes.
- [DB_GetDatabaseResultSetCount](DB_GetDatabaseResultSetCount): The function gets the number of open database results.
34 changes: 34 additions & 0 deletions docs/scripting/functions/DB_GetDatabaseResultSetCount.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
title: DB_GetDatabaseResultSetCount
description: Gets the number of open database results
keywords:
- sqlite
tags: ["sqlite"]
---

## Description

The function gets the number of open database results.

The function has no parameters.

## Related Functions

- [DB_Open](DB_Open): Open a connection to an SQLite database
- [DB_Close](DB_Close): Close the connection to an SQLite database
- [DB_ExecuteQuery](DB_ExecuteQuery): Query an SQLite database
- [DB_FreeResultSet](DB_FreeResultSet): Free result memory from a DB_ExecuteQuery
- [DB_GetRowCount](DB_GetRowCount): Get the number of rows in a result
- [DB_SelectNextRow](DB_SelectNextRow): Move to the next row
- [DB_GetFieldCount](DB_GetFieldCount): Get the number of fields in a result
- [DB_GetFieldName](DB_GetFieldName): Returns the name of a field at a particular index
- [DB_GetFieldString](DB_GetFieldString): Get content of field with specified ID from current result row
- [DB_GetFieldStringByName](DB_GetFieldStringByName): Get content of field with specified name from current result row
- [DB_GetFieldInt](DB_GetFieldInt): Get content of field as an integer with specified ID from current result row
- [DB_GetFieldIntByName](DB_GetFieldIntByName): Get content of field as an integer with specified name from current result row
- [DB_GetFieldFloat](DB_GetFieldFloat): Get content of field as a float with specified ID from current result row
- [DB_GetFieldFloatByName](DB_GetFieldFloatByName): Get content of field as a float with specified name from current result row
- [DB_GetMemHandle](DB_GetMemHandle): Get memory handle for an SQLite database that was opened with db_open.
- [DB_GetLegacyDBResult](DB_GetLegacyDBResult): Get memory handle for an SQLite query that was executed with DB_ExecuteQuery.
- [DB_GetDatabaseConnectionCount](DB_GetDatabaseConnectionCount): The function gets the number of open database connections for debugging purposes.
- [DB_GetDatabaseResultSetCount](DB_GetDatabaseResultSetCount): The function gets the number of open database results.
Loading

0 comments on commit b86b091

Please sign in to comment.