plugins/testsuite/sqltest.sp
author Scott Ehlert <ds@alliedmods.net>
Fri Jun 22 15:37:12 2007 +0000 (2007-06-22)
changeset 1001 8de56a71f200
parent 869 caa5587e708a
child 1096 8e11b2ebdc22
permissions -rw-r--r--
Implemented amb423 - Added IsClientObserver() native
dvander@869
     1
#include <sourcemod>
dvander@869
     2
dvander@869
     3
public Plugin:myinfo = 
dvander@869
     4
{
dvander@869
     5
	name = "SQL Testing Lab",
dvander@869
     6
	author = "AlliedModders LLC",
dvander@869
     7
	description = "Tests basic function calls",
dvander@869
     8
	version = "1.0.0.0",
dvander@869
     9
	url = "http://www.sourcemod.net/"
dvander@869
    10
};
dvander@869
    11
dvander@869
    12
public OnPluginStart()
dvander@869
    13
{
dvander@869
    14
	RegServerCmd("sql_test_normal", Command_TestSql1)
dvander@869
    15
	RegServerCmd("sql_test_stmt", Command_TestSql2)
dvander@869
    16
}
dvander@869
    17
dvander@869
    18
PrintQueryData(Handle:query)
dvander@869
    19
{
dvander@869
    20
	if (!SQL_HasResultSet(query))
dvander@869
    21
	{
dvander@869
    22
		PrintToServer("Query Handle %x has no results", query)
dvander@869
    23
		return
dvander@869
    24
	}
dvander@869
    25
	
dvander@869
    26
	new rows = SQL_GetRowCount(query)
dvander@869
    27
	new fields = SQL_GetFieldCount(query)
dvander@869
    28
	
dvander@869
    29
	decl String:fieldNames[fields][32]
dvander@869
    30
	PrintToServer("Fields: %d", fields)
dvander@869
    31
	for (new i=0; i<fields; i++)
dvander@869
    32
	{
dvander@869
    33
		SQL_FieldNumToName(query, i, fieldNames[i], 32)
dvander@869
    34
		PrintToServer("-> Field %d: \"%s\"", i, fieldNames[i])
dvander@869
    35
	}
dvander@869
    36
	
dvander@869
    37
	PrintToServer("Rows: %d", rows)
dvander@869
    38
	decl String:result[255]
dvander@869
    39
	new row
dvander@869
    40
	while (SQL_FetchRow(query))
dvander@869
    41
	{
dvander@869
    42
		row++
dvander@869
    43
		PrintToServer("Row %d:", row)
dvander@869
    44
		for (new i=0; i<fields; i++)
dvander@869
    45
		{
dvander@869
    46
			SQL_FetchString(query, i, result, sizeof(result))
dvander@869
    47
			PrintToServer(" [%s] %s", fieldNames[i], result)
dvander@869
    48
		}
dvander@869
    49
	}
dvander@869
    50
}
dvander@869
    51
dvander@869
    52
public Action:Command_TestSql1(args)
dvander@869
    53
{
dvander@869
    54
	new String:error[255]
dvander@869
    55
	new Handle:db = SQL_DefConnect(error, sizeof(error))
dvander@869
    56
	if (db == INVALID_HANDLE)
dvander@869
    57
	{
dvander@869
    58
		PrintToServer("Failed to connect: %s", error)
dvander@869
    59
		return Plugin_Handled
dvander@869
    60
	}
dvander@869
    61
	
dvander@869
    62
	new Handle:query = SQL_Query(db, "SELECT * FROM gaben")
dvander@869
    63
	if (query == INVALID_HANDLE)
dvander@869
    64
	{
dvander@869
    65
		SQL_GetError(db, error, sizeof(error))
dvander@869
    66
		PrintToServer("Failed to query: %s", error)
dvander@869
    67
	} else {
dvander@869
    68
		PrintQueryData(query)
dvander@869
    69
		CloseHandle(query)
dvander@869
    70
	}
dvander@869
    71
	
dvander@869
    72
	CloseHandle(db)
dvander@869
    73
	
dvander@869
    74
	return Plugin_Handled;
dvander@869
    75
}
dvander@869
    76
dvander@869
    77
public Action:Command_TestSql2(args)
dvander@869
    78
{
dvander@869
    79
	new String:error[255]
dvander@869
    80
	new Handle:db = SQL_DefConnect(error, sizeof(error))
dvander@869
    81
	if (db == INVALID_HANDLE)
dvander@869
    82
	{
dvander@869
    83
		PrintToServer("Failed to connect: %s", error)
dvander@869
    84
		return Plugin_Handled
dvander@869
    85
	}
dvander@869
    86
	
dvander@869
    87
	new Handle:stmt = SQL_PrepareQuery(db, "SELECT * FROM gaben WHERE gaben > ?", error, sizeof(error))
dvander@869
    88
	if (stmt == INVALID_HANDLE)
dvander@869
    89
	{
dvander@869
    90
		PrintToServer("Failed to prepare query: %s", error)
dvander@869
    91
	} else {
dvander@869
    92
		SQL_BindParamInt(stmt, 0, 1)
dvander@869
    93
		if (!SQL_Execute(stmt))
dvander@869
    94
		{
dvander@869
    95
			SQL_GetError(stmt, error, sizeof(error))
dvander@869
    96
			PrintToServer("Failed to execute query: %s", error)
dvander@869
    97
		} else {
dvander@869
    98
			PrintQueryData(stmt)
dvander@869
    99
		}
dvander@869
   100
		CloseHandle(stmt)
dvander@869
   101
	}
dvander@869
   102
	
dvander@869
   103
	CloseHandle(db)
dvander@869
   104
	
dvander@869
   105
	return Plugin_Handled;
dvander@869
   106
}
dvander@869
   107
dvander@869
   108