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