Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

AMXX -> MySQL UPDATE\INSERT макс число параметров

Статус пользователя ssx
сообщение 24.7.2016, 1:30
Сообщение #1


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Имеется строка
Код:
SQL_ThreadQueryFormatNoData(SQL_Tuple, "IgnoreHandle", "UPDATE weapon_skins SET knife_id = '%d', ak47_id = '%d', m4a1_id = '%d', awp_id = '%d', usp_id = '%d', sg552_id = '%d', scout_id = '%d', glock18_id = '%d', fiveseven_id = '%d' , famas_id = '%d' , deagle_id = '%d' , mp5_id = '%d' , mac10_id = '%d' , galil_id = '%d' WHERE steam_id = '%s'", knife[id], AK47[id], M4A1[id], AWP[id], USP[id], SG552[id], SCOUT[id], GLOCK18[id], FIVESEVEN[id], FAMAS[id], DEAGLE[id], MP5[id], MAC10[id], GALIL[id], szSteam);


Обнаружил что уже с famas_id не обновляет в БД .

Методом тыка выяснил что работает нормально если 11 параметров будет (то есть до deagle_id включительно) .

И так, вопрос знатокам!
От чего зависит длина запроса ?

П.С. удивительно что считывает нормально все параметры, а вот update не хочет. Не проверял еще на INSERT но походу так же.
немного нарыл в инете но не уверен что оно

Цитата
Ограничения есть, смотри значения системных переменных: max_allowed_packet и bulk_insert_buffer_size
Первая, указывает макс. размер для одного пакета или любой сгенерированной/промежуточной строки запроса. Вторая, для запроса вида insert ... values (...), (...), ...

max_allowed_packet в конфиге 4M - не думаю что мой запрос упирается в этот лимит.
bulk_insert_buffer_size нету вовсе параметра такого но в документации пишут что:
Цитата
Переменная bulk_insert_buffer_size устанавливает размер этого кэша.

По умолчанию – 8Мб.

Тут то темболее в лимит 8Мб не должно упиратся.

P.S. net_buffer_length = 32K менял на 128K - не помогает


Отредактировал: ssx, - 24.7.2016, 1:47


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Mistrick
сообщение 24.7.2016, 3:28
Сообщение #2


Стаж: 13 лет

Сообщений: 543
Благодарностей: 426
Полезность: 1034

SQL_ThreadQueryFormatNoData - что за функция?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 24.7.2016, 5:32
Сообщение #3
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

В 1.8.2 размер строки с запросом ограничен 512 символами
Еще попробуй сначала отформатировать строку в formatex
Цитата(Mistrick @ 24.7.2016, 4:28) *
SQL_ThreadQueryFormatNoData - что за функция?

из sqlx2 вроде
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Mistrick
сообщение 24.7.2016, 5:51
Сообщение #4


Стаж: 13 лет

Сообщений: 543
Благодарностей: 426
Полезность: 1034

Код:
/*Fromat the query string without data.*/
stock SQL_ThreadQueryFormatNoData(Handle:Db_Tuple, const handler[], const query[], any:...)
{
new szQueryFormat[256];// <------------------------------------
vformat(szQueryFormat, charsmax(szQueryFormat), query, 4)

return SQL_ThreadQuery(Db_Tuple, handler, szQueryFormat)
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя ssx
сообщение 24.7.2016, 8:33
Сообщение #5


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Ой, сорри. Не догадался написать что АМХХ 1.8.3 и sqlx2 инклюд

new szQueryFormat[256]
Получается только 256 байт..
Попробую увеличить ..

Сразу же INSERT ..
Код:
		new Query[270]
format( Query, 255, "INSERT INTO weapon_skins ( steam_id , knife_id , ak47_id , m4a1_id , awp_id, usp_id, sg552_id, scout_id, glock18_id,fiveseven_id, famas_id, deagle_id, mp5_id, mac10_id, galil_id ) VALUES ('%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d');", szSteam, knife[id], AK47[id], M4A1[id], AWP[id], USP[id], SG552[id], SCOUT[id], GLOCK18[id], FIVESEVEN[id], FAMAS[id], DEAGLE[id], MP5[id], MAC10[id], GALIL[id]);
SQL_ThreadQueryFormatNoData(SQL_Tuple, "IgnoreHandle", Query )

new Query[270]
format( Query, 255, - за что отвечает число 255 ?

Отредактировал: ssx, - 24.7.2016, 8:37
Прикрепленные файлы:
Прикрепленный файл  sqlx2.rar ( 722 байт ) Кол-во скачиваний: 11


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Mistrick
сообщение 24.7.2016, 8:50
Сообщение #6


Стаж: 13 лет

Сообщений: 543
Благодарностей: 426
Полезность: 1034

ssx, данный сток формирует строку в переменную new szQueryFormat[256] - тут 256 байт. Увеличивайте и живите спокойно.
Зачем делать формат, а потом отправлять в функцию, которая еще раз будет делать формат?
Можно было бы и почитать документацию, второй параметр format() - есть длина строки без нульбайта.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя ssx
сообщение 24.7.2016, 8:51
Сообщение #7


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

На счет UPDATE
Помогло увеличение с 256 до 512 размера массива szQueryFormat в инклюде sqlx2

На счет INSERT , брал код с оленей ..

Получается new Query[270] вовсе не нужно ?

Отредактировал: ssx, - 24.7.2016, 8:53


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Mistrick
сообщение 24.7.2016, 8:53
Сообщение #8


Стаж: 13 лет

Сообщений: 543
Благодарностей: 426
Полезность: 1034

ssx, Код:
format( Query, charsmax(Query), ...)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 24.7.2016, 8:56
Сообщение #9


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Напиши, пожалуйста, полностью вариант с Код:
format( Query, charsmax(Query), ...)



[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Mistrick
сообщение 24.7.2016, 8:59
Сообщение #10


Стаж: 13 лет

Сообщений: 543
Благодарностей: 426
Полезность: 1034

ssx, если вы используете SQL_ThreadQueryFormatNoData для INSERT, то сделайте по аналогии с UPDATE. Эта функция и так включает формат строки.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя ssx
сообщение 24.7.2016, 8:59
Сообщение #11


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Код:
		new Query[270]
format( Query, 255, "INSERT INTO weapon_skins ( steam_id , knife_id , ak47_id , m4a1_id , awp_id, usp_id, sg552_id, scout_id, glock18_id,fiveseven_id, famas_id, deagle_id, mp5_id, mac10_id, galil_id ) VALUES ('%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d');", szSteam, knife[id], AK47[id], M4A1[id], AWP[id], USP[id], SG552[id], SCOUT[id], GLOCK18[id], FIVESEVEN[id], FAMAS[id], DEAGLE[id], MP5[id], MAC10[id], GALIL[id]);
SQL_ThreadQueryFormatNoData(SQL_Tuple, "IgnoreHandle", Query )

->
Код:
	format( Query, charsmax(Query), "INSERT INTO weapon_skins ( steam_id , knife_id , ak47_id , m4a1_id , awp_id, usp_id, sg552_id, scout_id, glock18_id,fiveseven_id, famas_id, deagle_id, mp5_id, mac10_id, galil_id ) VALUES ('%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d');", szSteam, knife[id], AK47[id], M4A1[id], AWP[id], USP[id], SG552[id], SCOUT[id], GLOCK18[id], FIVESEVEN[id], FAMAS[id], DEAGLE[id], MP5[id], MAC10[id], GALIL[id]);
SQL_ThreadQueryFormatNoData(SQL_Tuple, "IgnoreHandle", Query )


Так ?


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Mistrick
сообщение 24.7.2016, 9:04
Сообщение #12


Стаж: 13 лет

Сообщений: 543
Благодарностей: 426
Полезность: 1034

Код:
 SQL_ThreadQueryFormatNoData(SQL_Tuple, "IgnoreHandle", "INSERT INTO weapon_skins ( steam_id , knife_id , ak47_id , m4a1_id , awp_id, usp_id, sg552_id, scout_id, glock18_id,fiveseven_id, famas_id, deagle_id, mp5_id, mac10_id, galil_id ) VALUES ('%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d');", szSteam, knife[id], AK47[id], M4A1[id], AWP[id], USP[id], SG552[id], SCOUT[id], GLOCK18[id], FIVESEVEN[id], FAMAS[id], DEAGLE[id], MP5[id], MAC10[id], GALIL[id]);

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя ssx
сообщение 24.7.2016, 10:47
Сообщение #13


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Буквально захотел добавить еще один параметр и компилятор ругаеЦЦО:

Код
// D:\user\cstrike\addons\amxmodx\scripting\knifes.sma(465 -- 4
66) : error 075: input line too long (after substitutions)
// D:\user0\cstrike\addons\amxmodx\scripting\knifes.sma(473) : e
rror 075: input line too long (after substitutions)
//
// 2 Errors.
// Could not locate output file D:\user0\cstrike\addons\amxmodx\
scripting\compiled\knifes.amx (compile failed).


Код:
		SQL_ThreadQueryFormatNoData(SQL_Tuple, "IgnoreHandle", "INSERT INTO weapon_skins ( steam_id , knife_id , ak47_id , m4a1_id , awp_id, usp_id, sg552_id, scout_id, glock18_id,fiveseven_id, famas_id, deagle_id, mp5_id, mac10_id, galil_id, aug_id ) VALUES ('%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d');", szSteam, knife[id], AK47[id], M4A1[id], AWP[id], USP[id], SG552[id], SCOUT[id], GLOCK18[id], FIVESEVEN[id], FAMAS[id], DEAGLE[id], MP5[id], MAC10[id], GALIL[id], AUG[id]);

Код:
		SQL_ThreadQueryFormatNoData(SQL_Tuple, "IgnoreHandle", "UPDATE weapon_skins SET knife_id = '%d', ak47_id = '%d', m4a1_id = '%d', awp_id = '%d', usp_id = '%d', sg552_id = '%d', scout_id = '%d', glock18_id = '%d', fiveseven_id = '%d' , famas_id = '%d' , deagle_id = '%d' , mp5_id = '%d' , mac10_id = '%d' , galil_id = '%d' , aug_id = '%d' WHERE steam_id = '%s'", knife[id], AK47[id], M4A1[id], AWP[id], USP[id], SG552[id], SCOUT[id], GLOCK18[id], FIVESEVEN[id], FAMAS[id], DEAGLE[id], MP5[id], MAC10[id], GALIL[id], AUG[id], szSteam);


Все таки придется за несколько запросов делать или есть решение ?


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Mistrick
сообщение 24.7.2016, 10:56
Сообщение #14


Стаж: 13 лет

Сообщений: 543
Благодарностей: 426
Полезность: 1034

Код:
SQL_ThreadQueryFormatNoData(SQL_Tuple, "IgnoreHandle", "INSERT INTO weapon_skins ( steam_id , knife_id , ak47_id , m4a1_id , awp_id,\
usp_id, sg552_id, scout_id, glock18_id, fiveseven_id, famas_id, deagle_id, mp5_id, mac10_id, galil_id )\
VALUES ('%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d');",
szSteam, knife[id], AK47[id], M4A1[id], AWP[id], USP[id], SG552[id], SCOUT[id], GLOCK18[id], FIVESEVEN[id], FAMAS[id], DEAGLE[id], MP5[id], MAC10[id], GALIL[id]);
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя ssx
сообщение 24.7.2016, 11:15
Сообщение #15


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

/del
разобрался.

Отредактировал: ssx, - 24.7.2016, 11:16


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 27.7.2016, 15:53
Сообщение #16


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Плагин компилит на ура но потом при сохранении вот такая ошибка
Код
L 07/24/2016 - 01:26:59: "PlayerNICK<3><STEAM_0:1:169814121><CT>" disconnected
L 07/24/2016 - 01:26:59: [mysqlPlugin.amxx] Load Query failed. [1064] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHE' at line 1


Код:
	else if (registered[id] == 1)
{
new szSteam[33]
get_user_authid(id,szSteam,32)

SQL_ThreadQueryFormatNoData(SQL_Tuple, "IgnoreHandle", "UPDATE weapon_skins SET knife_id = '%d', ak47_id = '%d',\
m4a1_id = '%d', awp_id = '%d', usp_id = '%d', sg552_id = '%d', scout_id = '%d', glock18_id = '%d', fiveseven_id = '%d', famas_id = '%d',\
WHERE steam_id = '%s'", knife[id], AK47[id], M4A1[id], AWP[id], USP[id], SG552[id], SCOUT[id],
GLOCK18[id], FIVESEVEN[id], FAMAS[id], szSteam);

SQL_ThreadQueryFormatNoData(SQL_Tuple, "IgnoreHandle", "UPDATE weapon_skins SET deagle_id = '%d', mp5_id = '%d',\
mac10_id = '%d', galil_id = '%d', aug_id = '%d', p90_id = '%d', ump45_id = '%d', tmp_id = '%d', m249_id = '%d', p228_id = '%d'\
WHERE steam_id = '%s'", DEAGLE[id], MP5[id], MAC10[id], GALIL[id], AUG[id], P90[id], UMP45[id], TMP[id], M249[id], P228[id], szSteam);
}


В чём проблема?

__ ADDED:
Методом тыка вычислил что проблема в
Код:
		SQL_ThreadQueryFormatNoData(SQL_Tuple, "IgnoreHandle", "UPDATE weapon_skins SET knife_id = '%d', ak47_id = '%d',\
m4a1_id = '%d', awp_id = '%d', usp_id = '%d', sg552_id = '%d', scout_id = '%d', glock18_id = '%d', fiveseven_id = '%d', famas_id = '%d',\
WHERE steam_id = '%s'", knife[id], AK47[id], M4A1[id], AWP[id], USP[id], SG552[id], SCOUT[id],
GLOCK18[id], FIVESEVEN[id], FAMAS[id], szSteam);


Отредактировал: ssx, - 27.7.2016, 16:20


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 27.7.2016, 16:23
Сообщение #17


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Все, помогли решить проблему.
Во второй строке перед переносом не нужно запятую .


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 27.7.2016, 16:25
Сообщение #18
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Цитата
for the right syntax to use near 'WHE' at line 1

Похоже, у тебя опять запрос не влазит.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 2 гостей читают эту тему: