SQL - dobrze?
zielu001
10.08.2010
Witam, robię plugin oparty o SQL i mam problem, czy to ma wyglądać tak:
czy
?
I jak potem pobrać ID z Data?
SQL_ThreadQuery(g_SqlTuple,"Wyslij_handle",zapytanie, "id");
czy
SQL_ThreadQuery(g_SqlTuple,"Wyslij_handle",zapytanie, id);
?
I jak potem pobrać ID z Data?
R3X
10.08.2010
new data[1]; data[0] = id; SQL_ThreadQuery(g_SqlTuple,"Wyslij_handle",zapytanie, data, sizeof(data));
a data wraca z callbackiem
public Wyslij_handle(failstate, Handle:query, error[], errnum, data[], size, Float:queuetime){ new id = data[0]; }
zielu001
10.08.2010
I jeszcze jedno pytanie czy muszę otwierać połączenie ze SQL za każdym razem gdy chce wykonać zapytanie?
10 sierpień 2010 - 21:50:
PS: Najlepiej jakiś przykład mały
10 sierpień 2010 - 21:50:
PS: Najlepiej jakiś przykład mały
R3X
10.08.2010
do ThreadQuery podajesz parametr tuple, który nie jest uchwytem połączenia z bazą danych tylko strukturą informacji o połączeniu, wystarczy, że stworzysz go raz w kodzie
jeśli używasz zwykłego zapytania z SQL_Connect to też nie musisz łączyć za każdym razem, tylko w razie potrzeby np.
jeśli używasz zwykłego zapytania z SQL_Connect to też nie musisz łączyć za każdym razem, tylko w razie potrzeby np.
połącz select select insert update rozłącz
zielu001
10.08.2010
Czyli takie cos przejdzie: ??
I potem w każdym publicku też łączyć?
Użytkownik zielu001 edytował ten post 10.08.2010 21:25
new error[128], errno
new Handle:g_SqlTuple = SQL_MakeDbTuple("localhost","root","","stats");
Handle:polaczenie = SQL_Connect(g_SqlTuple, errno, error, 127);
new zapytanie[512];
new Data[1];
Data[0] = id;
format(zapytanie, 511, "SELECT `username` from `stats_user` where username='%s'", nazwa_gracza[id]);
SQL_ThreadQuery(g_SqlTuple,"Wyslij_handle",zapytanie, Data, sizeof(Data));
I potem w każdym publicku też łączyć?
Użytkownik zielu001 edytował ten post 10.08.2010 21:25
R3X
10.08.2010
przed ThreadQuery nie musisz używać Connect, to są osobne metody
(Connect + Query) lub ThreadQuery
To zrób w plugin_cfg() z globalnym g_SqlTuple (jak nazwa wskazuje)
osobiście polecam właśnie Thread, wygodne i nie laguje
(Connect + Query) lub ThreadQuery
To zrób w plugin_cfg() z globalnym g_SqlTuple (jak nazwa wskazuje)
new Handle:g_SqlTuple = SQL_MakeDbTuple("localhost","root","","stats");
osobiście polecam właśnie Thread, wygodne i nie laguje
zielu001
10.08.2010
Aha czyli w include sqlx jest kilka metod Dzięki Jak coś bedzie jeszcze to będe pisać :PP
10 sierpień 2010 - 22:37:
Linijka w plugin_cfg to co dałeś ale usunąłem new i dałem new g_SqlTuple pod definicjami -.&
10 sierpień 2010 - 22:37:
Warning: Label name "Handle" shadows tag name on line 49
Linijka w plugin_cfg to co dałeś ale usunąłem new i dałem new g_SqlTuple pod definicjami -.&
R3X
10.08.2010
raczej tak powinno być
new Handle:g_SqlTuple; plugin_init(){ g_SqlTuple = SQL_MakeDbTuple("localhost","root","","stats"); }