PDA

Просмотр полной версии : [Вопрос] Перевод мода с MySQL R39-4 до R41-2. Правильно ли?



StevenH
03.03.2017, 20:29
Всем доброго времени суток. Взялся переводить мод до MySQL R41-2, хочу спросить, как перевести данный участок в коде? (Отрывок взят из загрузки домов).. Специально взял 3 типа - float, string и int



cache_get_row(he, 6, temp), HouseInfo[he][hExitz] = floatstr(temp);
cache_get_row(he, 7, temp), strmid(HouseInfo[he][hOwner], temp, 0, strlen(temp), 255);
cache_get_row(he, 8, temp), HouseInfo[he][hValue] = strval(temp);

Geebrox
03.03.2017, 23:07
cache_get_value_index(he, 6, temp, sizeof temp);
HouseInfo[he][hExitz] = floatstr(temp);
cache_get_value_index(he, 7, temp, sizeof temp);
strmid(HouseInfo[he][hOwner], temp, 0, strlen(temp), 255);
cache_get_value_index(he, 8, temp, sizeof temp);
HouseInfo[he][hValue] = strval(temp);

это чисто копия твоего кода, только вид в новой версии mysql. А так можно было куда проще сделать.
и еще....

Специально взял 3 типа - float, string и int

тут нет 3 типа данных, ты берешь 1 тип данных (string) и сам его переводишь в другие типы

DeimoS
03.03.2017, 23:20
Вот тебе нужные функции:

native cache_get_value_index(row_idx, column_idx, destination[], max_len = sizeof(destination));
native cache_get_value_index_int(row_idx, column_idx, &destination);
native cache_get_value_index_float(row_idx, column_idx, &Float:destination);



cache_get_value_index_float(he, 6, HouseInfo[he][hExitz]);
cache_get_value_index(he, 7, HouseInfo[he][hOwner], 255);
cache_get_value_index_int(he, 8, HouseInfo[he][hValue]);



Хотя я бы советовал обращаться к данным по имени столбца через эти функции (чисто из соображений удобства и читаемости):

native cache_get_value_name(row_idx, const column_name[], destination[], max_len = sizeof(destination));
native cache_get_value_name_int(row_idx, const column_name[], &destination);
native cache_get_value_name_float(row_idx, const column_name[], &Float:destination);



cache_get_value_name_float(he, "Имя поля, в котором хранятся данные для hExitz", HouseInfo[he][hExitz]);
cache_get_value_name(he, "Имя поля, в котором хранятся данные для hOwner", HouseInfo[he][hOwner], 255);
cache_get_value_name_int(he, "Имя поля, в котором хранятся данные для hValue", HouseInfo[he][hValue]);