PDA

Просмотр полной версии : [Вопрос] Запрос не форматируется



Josan_Solomon
16.08.2018, 09:40
Hello, World! Не могли бы вы посмотреть, что здесь не так?

new Float: player_pos_x,
Float: player_pos_y,
Float: player_pos_z,
Float: exit_pos_x,
Float: exit_pos_y,
Float: exit_pos_z,
string[354],
newhaddress[144],
inter;
GetPVarString(playerid, "newhaddress", newhaddress, 143);
inter = hinterior_info[listitem][hiID];
GetPlayerPos(playerid, player_pos_x, player_pos_y, player_pos_z);
mysql_format(dbHandle,string, sizeof (string),"INSERT INTO `houses`(`id`,`owner`,`pickupx`,`pickupy`,`pickupz`,\
`price`, `class`, `interiorid`, `type`, `address`)VALUES ('%d','None','%f','%f','%f','%d','%d','%d','%e')",
TOTALHOUSE, player_pos_x, player_pos_y, player_pos_z, house_info[TOTALHOUSE][hPrice],
house_info[TOTALHOUSE][hClass], inter, house_info[TOTALHOUSE][hType], newhaddress);

mysql_tquery(dbHandle, string);

Дело в том, что последнее форматирование (%е, newhaddress) не вставляет строку. Обычным format + (%s) тоже не получалось, хотя для проверки я выводил newhaddress в чат - и все прекрасно работало. Связано ли это с большим размеров массивов? Имеет смысл сделать костыль из двух format'ов?

Daniel_Cortez
16.08.2018, 11:11
Внимательно проверьте соответствие спецификаторов и форматируемых данных. Скорее всего, перед '%e' пропущен ещё один '%d'.

Josan_Solomon
16.08.2018, 19:07
Точно. Интересно, я раз десять проверял это перед публикацией вопроса, видимо сонный был. Спасибо вам большое. Отнюдь не только за этот ответ, а за ваш вклад в кладезь знаний по pawn (не ограничиваясь samp). Сорри за оффтоп, но честно, я вами восхищаюсь. Вы - светило для всех скриптеров от начинающих до профессионалов. Надеюсь, это было не излишне лестно. Тему можно закрыть; и еще раз: я премного благодарен.

VVWVV
16.08.2018, 19:23
Тема закрыта.

Данный форум всегда был основным источником новых знаний в русском сегменте. :)