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.
|
MySQL - z czym to się je.
#21
Napisano 01.06.2011 20:31
Rozszerzyłem tutorial o drugą metodę!!
Zapraszam do lekturki ^.^
#22
Napisano 02.06.2011 17:24
Dobra, znalazłem -> SQL_ReadResult - AMXX.pl: Support AMX Mod X dobrze by było dodać to do tuta ;]
Użytkownik sebul edytował ten post 03.06.2011 13:32
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
#23
Napisano 07.10.2011 10:53
public CheckHandler(FailState, Handle:Query, Errorcode, Error[], Data[], DataSize)
powinno być
public CheckHandler(FailState, Handle:Query, Error[], Errorcode, Data[], DataSize)
Czyli pomyliłeś kolejność argumentów, konsola ciągle pluła mi błąd zapytania, aż sprawdziłem w dokumentacji i zauważyłem błąd, popraw jak możesz
Swoją drogą mysql jest b. ciekawe i ma spore możliwości. Ciekawi mnie połączenie go z C++ w programie. Jakby jakiś tutek konkretny był to bym napisał coś ciekawego może hehe
Użytkownik grankee edytował ten post 07.10.2011 10:55
#24
Napisano 07.10.2011 13:12
C++ ma swoje API do obsługi MySQL tak jak np. PHP; jak chcesz je poznać to szukaj tutków na serwisach o C++ właśnie, wymiana danych między klientami a serwerem to język SQL niezależnie czy to program desktopowy czy plugin na serwerze, więc synchronizacja nie byłaby trudna - wystarczy korzystać z tej samej bazy i tabel
#25
Napisano 11.11.2011 11:48
SELECT * FROM `config` where keyname='test'
i gdy otrzyma odpowiedź od bazy 1 to wtedy wyświetli w chat "test jest", a jak otrzyma odpowiedź 0 to wyświetli "test nie ma"
#26
Napisano 18.03.2012 12:59
Zamiast:
format(qCommand, sizeof qCommand-1, "INSERT INTO nauka VALUES(%s, %i, %i);", szName, iPlayerXP[id], iPlayerLvl[id])
Tak:
format(qCommand, sizeof qCommand-1, "INSERT INTO `nauka` VALUES('%s', %i, %i);", szName, iPlayerXP[id], iPlayerLvl[id])
Oraz zamiana miejscami w funkcji SaveHandler:
Errorcode, Error[]
Przydałoby się też omówić aktualizację danych, ponieważ teraz tylko zapisuje przy piewszym wejściu.
#27
Napisano 18.03.2012 16:25
* @param failstate - One of the three TQUERY_ defines. * @param query - Handle to the query, do not free it. * @param error - An error message, if any. * @param errnum - An error code, if any. * @param data - Data array you passed in. * @param size - Size of the data array you passed in. * @param queuetime - Amount of gametime that passed while the query was resolving.jak widać po DataSize można wstawić jeszcze jeden parametr który zwraca nam ile czasu zajęło wywołanie zapytania
#28
Napisano 18.03.2012 17:48
W obecnej formie będzie sypać błędami, gdy gracz będzie miał w nicku np. '
Aby się przedym zabezpieczyć trzeba zamiast
'%s'
zrobić tak:
^"%s^"
Zarówno przy sprawdzaniu bazy danych jak i przy zapisywaniu nowego gracza.
#29
Napisano 18.03.2012 18:22
żeby zabezpieczyć się przed SQL Injection lepiej użyć replace_all i podmieniać znaki specjalne
#30
Napisano 23.04.2012 09:41
native Handle:SQL_MakeDbTuple(const host[], const user[], const pass[], const db[], timeout=0);
A ja jeszcze chciałbym wiedzieć, jak dokładnie działa ostatni parametr, jeśli wpiszemy tam powiedzmy 60. Co się dokładnie stanie po tych 60 sekundach po wywołaniu zapytania?
Czyli np. mając taki kod
SQL_ThreadQuery(sqlUcchwyt, "zapytanie_handle", zapytanie);
to mam rozumieć, że po 60 sekundach wywoła się funkcja "zapytanie_handle", ale z błędem, czy po prostu zapytanie zostanie przerwane i nie będzie to w żaden sposób zaalarmowane?
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
#31
Napisano 23.04.2012 11:55
if (do_timeout && info->max_timeout) { mysql_options(mysql, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&(info->max_timeout)); }//MysqlDriver.cpp amxmodx_source1.8.1
Domyślnie parametr jest 0, jeśli ustawisz go na wartość 5 lub większą wtedy po upłynięciu czasu do otrzymania odpowiedzi zapytania(jeśli nie zwróci), moduł zwróci errorcode timeout z sql do funkcji.
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych