Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Dokumentacja AMX Mod X v. 11.5 Uzupełnionych funkcji: Sortowanie: Według modułów | Alfabetycznie
Szukaj funkcji:

3rdParty
Core
Cstrike
CSX
DoDX
Engine
ESF
Fakemeta
Fun
fun
GeoIP
HamSandwich
JSON
NS
nVault
REAPI
Regex
Sockets
Sql
SQLx
dbi
TFCX
TSFUN
TSX
tsx

SQL_ThreadQuery

Dodane 11.09.2019 10:08 przez: Rivit
#
  


Opis

Funkcja wykonuje asynchroniczne zapytanie do bazy danych. Główną zaletą funkcji, jest brak lagów/ścinania serwera przy słabym połączeniu z bazą danych. W momencie otrzymania wyników zostaje wywołana wybrana funkcja o specyficznej budowie.



Składnia

SQL_ThreadQuery(Handle:db_tuple, const handler[], const query[], const data[]=" ", dataSize=0)

Typ

Natywny

Notatki

Wiadomo:
db_tuple - uchwyt z danymi niezbędnymi do połączenia z bazą danych, utworzony za pomocą SQL_MakeDbTuple
handler - nazwa funkcji obsługującej wyniki z wykonanego zapytania.
query - zapytanie do bazy danej w postaci tablicy lug prostego tekstu (brak możliwości formatowania za pomocą %s %d).
data - tablica z danymi które mają być przekazane funkcji przy otrzymaniu wyniku (np. id gracza z którym zapytanie jest związane). Domyślnie pusta.
dataSize - rozmiar tablicy z danymi, domyślnie rozmiar wynosi 0.
Funkcja obsługująca wyniki ma postać:
public TwojaFunkcja(failstate, Handle:query, error[], errnum, data[], size, Float:queuetime)
failstate - jeden z trzech możliwych wyników określające czy zapytanie sie powiodło, 0 gdy nie było problemów, -1 dla nieprawidłowego zapytania, -2 przy problemie przy połączeniu z bazą.

#define TQUERY_CONNECT_FAILED	-2
#define TQUERY_QUERY_FAILED	-1
#define TQUERY_SUCCESS		0

query - uchwyt z wynikami zapytania, nie należy jej uwalniać za pomocą SQL_FreeHandle.
error - w razie wystąpienia błędu, tu znajdziemy komunikat o jego naturze.
errnum - kod błędu.
data - tablica z przekazanymi danymi przy wywołaniu SQL_ThreadQuery.
size - liczba danych/elementów tablicy.
queuetime - czas w którym zostało wykonane zapytanie



Przykład

public save_xp(id)
{
	new name[64]
	new q_command[512]
	get_user_name(id,name,63)
	format(q_command,511,"UPDATE `%s` SET `exp`='%i', `auto`=0 WHERE `nick`='%s' ",g_sqlTable,player_xp[id],name)				
	SQL_ThreadQuery(g_SqlTuple,"Save_xp_handle",q_command)
}
public Save_xp_handle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
	if(Errcode)
	{
		log_to_file("addons/amxmodx/logs/sql.log","Error on Save_xp query: %s",Error)
	}
	if(FailState == TQUERY_CONNECT_FAILED)
	{
		log_to_file("addons/amxmodx/logs/sql.log","Could not connect to SQL database.")
		return PLUGIN_CONTINUE
	}
	else if(FailState == TQUERY_QUERY_FAILED)
	{
		log_to_file("addons/amxmodx/logs/sql.log","Save_xp Query failed.")
		return PLUGIN_CONTINUE
	}
	log_to_file("addons/amxmodx/logs/sql.log","Udany zapis expa")
	return PLUGIN_CONTINUE
}




Zakaz używania, kopiowania i innego wykorzystywania treści witryny oraz innych materiałów w niej zawartych bez zgody autorów. Wszelkie prawa zastrzeżone. © 2009-2024