Problem z sql poprzez SQLx
GwynBleidD
22.06.2010
Witam, próbuję przerobić plugin do robienia screenów, aby zapisywał fakt zrobienia screena do sql, niestety wywala mi błąd zapytania, którego nawet nie potrafię zrozumieć. Oto fragment logu:
numer w nawiasie - numer błędu
%L po dwukropku - Treść błędu (odczytana z parametru zwróconego do handlera)
"pusta" linia - treść błędu (odczytana funkcją SQL_QueryError)
liczba float - czas realizacji zapytania
Query: - zapytanie do bazy
SQL Connection type: typ bazy z jaką się łączę.
Kod handlera:
fragment.sma 1.68KB 49 downloads
Kod wywołania zapytania:
Sposobu generowania wartości parametrów nie ma sensu opisywać, gdyż widać w treści zapytania z logu, że zostały wpisane poprawnie. Numer błędu próbowałem już googlować, nic nie znalazłem.
Czy ktoś potrafi zinterpretować ten błąd?
Dodam jeszcze, że:
Edited by GwynBleidD, 22.06.2010 21:14.
L 06/22/2010 - 21:30:33: [screen.amxx] [CheckHandler] Błąd zapytania SQL (12092): %L L 06/22/2010 - 21:30:33: [screen.amxx] [CheckHandler] L 06/22/2010 - 21:30:33: [screen.amxx] [CheckHandler] 0.21 L 06/22/2010 - 21:30:33: [screen.amxx] [CheckHandler] Query: INSERT INTO `screen_demka` (`server_id`, `timestamp`, `admin_name`, `admin_sid`, `admin_ip`, `player_name`, `player_sid`, `player_ip`, `map`, `screen_count`) VALUES (11, 1277238633, 'GwynBleidD', 'STEAM_0:1:20916545', '83.31.175.8', 'GwynBleidD', 'STEAM_0:1:20916545', '83.31.175.8', 'de_dust', 1) L 06/22/2010 - 21:30:33: [screen.amxx] [CheckHandler] SQL Connection type: mysql
numer w nawiasie - numer błędu
%L po dwukropku - Treść błędu (odczytana z parametru zwróconego do handlera)
"pusta" linia - treść błędu (odczytana funkcją SQL_QueryError)
liczba float - czas realizacji zapytania
Query: - zapytanie do bazy
SQL Connection type: typ bazy z jaką się łączę.
Kod handlera:
fragment.sma 1.68KB 49 downloads
Kod wywołania zapytania:
format(sQuery, charsmax(sQuery), "INSERT INTO `screen_demka` (`server_id`, `timestamp`, `admin_name`, `admin_sid`, `admin_ip`, `player_name`, `player_sid`, `player_ip`, `map`, `screen_count`) VALUES (%d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d)", serverid, get_systime(), admin_name, admin_sid, admin_ip, player_name, player_sid, player_ip, map, 1 ); SQL_ThreadQuery(g_SqlTuple, "CheckHandler", sQuery)
Sposobu generowania wartości parametrów nie ma sensu opisywać, gdyż widać w treści zapytania z logu, że zostały wpisane poprawnie. Numer błędu próbowałem już googlować, nic nie znalazłem.
Czy ktoś potrafi zinterpretować ten błąd?
Dodam jeszcze, że:
[ 3] MySQL RUN - mysql_amxx_i386. v1.8.1.3 pl1 ANY ANY
Edited by GwynBleidD, 22.06.2010 21:14.
R3X
22.06.2010
Jeśli używasz wszystkich kolumn możesz olać jeden nawias:
INSERT INTO `screen_demka` VALUES (11, 1277238633, 'GwynBleidD', 'STEAM_0:1:20916545', '83.31.175.8', 'GwynBleidD', 'STEAM_0:1:20916545', '83.31.175.8', 'de_dust', 1)
GwynBleidD
24.06.2010
Nie używam, w tabeli są jeszcze 2 kolumny, jedna o nazwie ID z opcją auto_increment, a druga o nazwie demo_name w której mam zamiar przechowywać nazwę zrobionego dema z pluginu o podobnym działaniu (nie ma sensu tworzyć 2ch tabel). Dla kolumny demo_name jest ustalona domyślna wartość także mogę pominąć.
24 czerwiec 2010 - 13:29:
Odświeżam.
Pomoże ktoś z tym błędem?
24 czerwiec 2010 - 13:29:
Odświeżam.
Pomoże ktoś z tym błędem?
Owner123
25.06.2010
SQL_QueryError i zmienna Error[] to jest to samo
BTW. Masz tak za każdym razem ?
BTW. Masz tak za każdym razem ?
GwynBleidD
26.06.2010
Tak, za każdym razem i jak widać parametr i wynik funkcji nie zawsze dają to samo, parę razy już się spotykałem, że jedno z nich nie dawało nic, a drugie właściwy komunikat, ale z takimi "bzdurami" spotykam się pierwszy raz.
Owner123
29.06.2010
Wykonałem to zapytanie w mojej baziee MySql (dokładnie przekopiowałem kolumny) i żadnych błędów.
GwynBleidD
30.06.2010
Czyli coś z bazą albo serwerem jest nie tak. Mógłbyś jeszcze podać jaką masz wersję modułu SQL w amx?
Owner123
30.06.2010
Zapytanie wykonałem przez phpmyadmin.
Co prawda mogę sprawdzić czy działa poprzez plugin.
Co prawda mogę sprawdzić czy działa poprzez plugin.
GwynBleidD
30.06.2010
Prosiłbym o to, gdyż nie wiem co szwankuje. U mnie również zapytanie wykonane poprzez phpMyAdmin dało pozytywny rezultat
Owner123
30.06.2010
U mnie zapytanie nieudane ale coś źle wkleiłem, bo nie mam takich bzdur jak ty:
Edit.
Dobra cofam to. U mnie też wywala bzdury. (Znalazłem błąd, poprawiłem i nagle bzdury wylatują)
Edited by Owner123, 30.06.2010 20:43.
L 06/30/2010 - 21:37:45: [HamTest.amxx] [CheckHandler] Zapytanie nieudane (6664): on_awp L 06/30/2010 - 21:37:45: [HamTest.amxx] [CheckHandler] Something is wrong in your syntax obok '' w linii 1 L 06/30/2010 - 21:37:45: [HamTest.amxx] [CheckHandler] 0.00 L 06/30/2010 - 21:37:45: [HamTest.amxx] [CheckHandler] Query: INSERT INTO `screen_demka` (`server_id`, `timestamp`, `admin_name`, `admin_sid`, `admin_ip`, `player_name`, `player_sid`, `player_ip`, `map`, `screen_count`) VALUES (11, 1277238633, 'GwynBleidD', 'STEAM_0:1:20916545', '83.31.175.8', 'GwynBleidD', 'STEAM_0:1:20916545', '83.31.175.8', 'de_dust', 1 L 06/30/2010 - 21:37:45: [HamTest.amxx] [CheckHandler] SQL Connection type:Posiadam SQLx z AmxModX 1.8.2 hg 17
Edit.
Dobra cofam to. U mnie też wywala bzdury. (Znalazłem błąd, poprawiłem i nagle bzdury wylatują)
Edited by Owner123, 30.06.2010 20:43.
GwynBleidD
30.06.2010
Także zagadka pozostaje niewyjaśniona A jak wygląda baza, wpis się dodał?
Miczu
12.07.2010
public CheckHandler(FailState, Handle:Query, Errorcode, Error[], Data[], DataSize, Float:time)
Errorcode i Error[] są jakby zamienione miejscami, w diablo mam je odwrotnie, a zgaduje, że kolejność parametrów ma znaczenie... ale to tylko poprawi logi, a błąd zostanie
* The handler should look like: * * @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. * * public QueryHandler(failstate, Handle:query, error[], errnum, data[], size, Float:queuetime)
GwynBleidD
19.07.2010
Dziękuję Ci Miczu bardzo Po naprawieniu tego uchybienia nie wywala żadnego błędu