Yam Inside®™℠
Join Date: Jan 2010
Location: Living Randomly
|
09-28-2013
, 09:06
[SQL] SQLite Connector :: Local Database (+Natives)
|
#1
|
- SQLite Connector :: Local Database -
Download
View C++ Source Code
Visit SQLite Page
This extension's purpose is to make the SQLite scripting more easier for anyone. Just look at the INC file which is listed below.
PHP Code:
/** Does a query. * * @param Query The query to execute. * @param Select Set it true whether the query contains "SELECT" word. * * @return The number of rows selected, if any. */ native /* unsigned int */ Database_Query(Query[], bool:Select = false);
/** Retrieves a result. * * @param Row The row to pick result from. * @param Column The column to pick result from. * @param Buffer The variable to store result in. * @param Size The variable that represents the buffer size. * * @return The result converted as integer. */ native /* signed int */ Database_Get(Row, Column, Buffer[], Size);
/** Makes a string safe. * * @param String The string to make safe. * @param Character The character to replace bad characters as '\\', '`', '"' or '\''. * * @return True if success or false if error. */ native /* bool */ bool:Database_Safe(String[], Character = '*');
An example of plugin may be the one listed below.
PHP Code:
#include amxmodx #include amxmisc #include database
public plugin_init() { register_plugin("Last Played Maps", "1.0", "Hattrick (Claudiu HKS)");
Database_Query("CREATE TABLE IF NOT EXISTS Maps (Name TEXT, UnixTimeStamp NUMERIC)");
new Map[32], Buffer[256]; get_mapname(Map, sizeof(Map) - 1);
formatex(Buffer, sizeof(Buffer) - 1, "INSERT INTO Maps VALUES ('%s', %d)", Map, get_systime());
Database_Query(Buffer);
register_concmd("amx_lastmaps", "CmdLastMaps", ADMIN_MAP, "- displays the last played maps"); }
public CmdLastMaps(Client, Level, Command) { if (!cmd_access(Client, Level, Command, 1)) { return PLUGIN_HANDLED; }
console_print(Client, "^nThe last played maps were:^n");
static Count = 0, Iterator = 0, Map[32];
Count = Database_Query("SELECT Name FROM Maps ORDER BY UnixTimeStamp DESC LIMIT 15", true);
if (Count) { for (Iterator = 0; Iterator < Count; Iterator++) { if (Iterator == 0) { RemDatabase_Get(Iterator, 0, Map, sizeof(Map) - 1);
console_print(Client, "%s (current)", Map); }
else { RemDatabase_Get(Iterator, 0, Map, sizeof(Map) - 1);
console_print(Client, Map); } } }
else { /* I can't believe I reached here... */ console_print(Client, "Unfortunately, there were no maps played yet."); }
return PLUGIN_HANDLED; }
How to use Database_Get native?
For example, if you execute the next query while having 5,000 rows into your table: SELECT Apples, Oranges FROM Fruits LIMIT 2
There will be two rows selected, because LIMIT is 2.
There will be two columns selected, because you select both Apples and Oranges.
So, you will use Database_Get with Row parameter 0 and then with Row parameter 1.
Also, with Column parameter 0 and then with Column parameter 1.
__________________
Last edited by claudiuhks; 03-16-2014 at 12:59.
|
|