Callback error parameter count does not match format specifier length

Okay.. I get this error everytime i buy a vehicle. Quote: mysql_tquery - callback parameter count does not match format specifier length Everytime i buy a vehicle it wont save the vehicle in my mysql

Okay..
I get this error everytime i buy a vehicle.

Everytime i buy a vehicle it wont save the vehicle in my mysql table and it gives me a bug. Which says i got 1 vehicle but it dosent show the stats of the vehicle even its supposed to. I noticed in my user table in my mysql it saves the vehicle in the user table but not in the ownedvehicle table.

Код:

stock OnOwnedVehicleInsert(vehid)
{
	VehicleInfo[vehid][carID] = cache_insert_id();
	return 1;
}

stock OnPlayerBuyCar(playerid, vehid, model, color1, color2, slot, Float:ParkX, Float:ParkY, Float:ParkZ, Float:ParkA, plate[], owner[])
{
	//======================================================================================
	format(query, sizeof(query), "INSERT INTO `ownedvehicles` (model, color1, color2, parkx, parky, parkz, parka, plate, owner, owned, slot) VALUES (%d, %d, %d, %f, %f, %f, %f, '%s', '%s', %d, %d)",
	model, color1, color2, ParkX, ParkY, ParkZ, ParkA, plate, owner, 1, slot);
	mysql_function_query(dbHandle, query, true, "OnOwnedVehicleInsert", "%d", vehid);
	//======================================================================================
	format(query, sizeof(query), "UPDATE `ownedvehicles` SET `alarm` = %d, `lock` = %d, `immob` = %d, `insurances` = %d, `destroys` = %d, `gps` = %d, `fuel` = %d, `registered` = %d, `broken` = %d WHERE `owner` = '%s' AND `slot` = %d",
	0, 0, 0, 2, 0, 0, 50, 1, 0, GetName(playerid), slot);
	mysql_function_query(dbHandle, query, false, "", "");
	//======================================================================================
	format(query, sizeof(query), "UPDATE `ownedvehicles` SET `weapons` = '%s' WHERE `owner` = '%s' AND `slot` = %d", "0=0|0=0|0=0|0=0|0=0|0=0|0=0|0=0|0=0|0=0", GetName(playerid),slot);
	mysql_function_query(dbHandle, query, false, "", "");
	//======================================================================================
	format(query, sizeof(query), "UPDATE `ownedvehicles` SET `comp0` = %d, `comp1` = %d, `comp2` = %d, `comp3` = %d, `comp4` = %d, `comp5` = %d, `comp6` = %d WHERE `owner` = '%s' AND `slot` = %d",
	0, 0, 0, 0, 0, 0, 0, GetName(playerid), slot);
	mysql_function_query(dbHandle, query, false, "", "");
	//=====================================================================================
	format(query, sizeof(query), "UPDATE `ownedvehicles` SET `comp7` = %d, `comp8` = %d, `comp9` = %d, `comp10` = %d, `comp11` = %d, `comp12` = %d, `comp13` = %d, `paintjob` = %d WHERE `owner` = '%s' AND `slot` = %d",
	0, 0, 0, 0, 0, 0, 0, 3, GetName(playerid), slot);
	mysql_function_query(dbHandle, query, false, "", "");
	//=====================================================================================
	format(query, sizeof(query), "UPDATE `ownedvehicles` SET `radio` = %d, `tickets` = '%s', `dupkey` = %d, `comps` = %d WHERE `owner` = '%s' AND `slot` = %d", 0, "0|0|0|0|0|0|0|0|0|0", VehicleInfo[vehid][carDupKey], 0, GetName(playerid), slot);
	mysql_function_query(dbHandle, query, false, "", "");
	//=====================================================================================
	format(query, sizeof(query), "UPDATE `ownedvehicles` SET `drugs` = '%s' WHERE `owner` = '%s' AND `slot` = %d", "0=0|0=0|0=0|0=0|0=0|0=0|0=0|0=0|0=0|0=0|0=0|0=0|0=0|0=0|0=0|0=0|0=0|0=0|0=0|0=0", GetName(playerid), slot);
	mysql_function_query(dbHandle, query, false, "", "");
	//=====================================================================================
	format(query, sizeof(query), "UPDATE `users` SET `vehicles` = %d WHERE `name` = '%s'", PlayerInfo[playerid][pVehicles], GetName(playerid));
	mysql_function_query(dbHandle, query, false, "", "");
	//======================================================================================
	if(slot == 1)
	{
		format(query, sizeof(query), "UPDATE `users` SET `veh1` = '%s' WHERE `name` = '%s'", VehicleNames[model-400], GetName(playerid));
		format(PlayerVehicle[playerid][pVeh1], 128, "%s", VehicleNames[model-400]);
		mysql_function_query(dbHandle, query, false, "", "");
	}
	else if(slot == 2)
	{
		format(query, sizeof(query), "UPDATE `users` SET `veh2` = '%s' WHERE `name` = '%s'", VehicleNames[model-400], GetName(playerid));
		format(PlayerVehicle[playerid][pVeh2], 128, "%s", VehicleNames[model-400]);
		mysql_function_query(dbHandle, query, false, "", "");
	}
	else if(slot == 3)
	{
		format(query, sizeof(query), "UPDATE `users` SET `veh3` = '%s' WHERE `name` = '%s'", VehicleNames[model-400], GetName(playerid));
		format(PlayerVehicle[playerid][pVeh3], 128, "%s", VehicleNames[model-400]);
		mysql_function_query(dbHandle, query, false, "", "");
	}
	//======================================================================================
	return 1;
}

stock UpdateVehicleStatus(playerid, vehicle)
{
	new slot = PlayerInfo[playerid][pVehSlot];
	VehicleStatus[playerid][slot][carAlarm] = VehicleInfo[vehicle][carAlarm];
	VehicleStatus[playerid][slot][carLock] = VehicleInfo[vehicle][carLock];
	VehicleStatus[playerid][slot][carImmob] = VehicleInfo[vehicle][carImmob];
	VehicleStatus[playerid][slot][carInsurances] = VehicleInfo[vehicle][carInsurances];
	VehicleStatus[playerid][slot][carDestroyed] = VehicleInfo[vehicle][carDestroyed];
	VehicleStatus[playerid][slot][carGps] = VehicleInfo[vehicle][carGps];
	return 1;
}

Короче не работает данный вариант. mysql_log вылазит

[19:31:21] [ERROR] mysql_tquery - callback parameter count does not match format specifier length

forward OnPlayerAccountCheckAdmin(playerid, player_name[], targetid);
public OnPlayerAccountCheckAdmin(playerid, player_name[], targetid)
{
	new
		account_id,
        level,
        rip[16],
        lip[16],
        rdata[16],
        donat,
        game_time,
        game_yesterday,
        afk_today,
        afk_yesterday,
        cash,
        bank;
	if(player_name[0] == '')
    {
	    account_id = cache_get_field_content_int(0, "IDacc"),
	    level = cache_get_field_content_int(0, "level"),
	    cache_get_field_content(0, "Rip", rip, 16),
	    cache_get_field_content(0, "Lip", lip, 16),
	    cache_get_field_content(0, "datereg", rdata, 16),
	    game_time = cache_get_field_content_int(0, "InGameT"),
	    game_yesterday = cache_get_field_content_int(0, "InGameDay"),
	    afk_today = cache_get_field_content_int(0, "AFKDay"),
	    afk_yesterday = cache_get_field_content_int(0, "InAFKDay"),
	    cash = cache_get_field_content_int(0, "money"),
	    bank = cache_get_field_content_int(0, "Bank");
        static const fmt_str[] =
        "Номер аккаунта:tt%dn
        Уровень:ttt%dn
        IP адресс (регис.):t%sn
        IP адресс (послед.):t%sn
        Дата регистрации:t%sn
        Донат:ttt%dnn
        В игре сегодня:t%sn
        В игре вчера:t%sn
        AFK сегодня:t%sn
        AFK вчера:t%snn
        Наличные:t%dn
        Осн.банк счёт:t%dn";
        new str[sizeof fmt_str + 700];
        format(str, sizeof(str), fmt_str, account_id, level, rip, lip, rdata, donat, game_time, game_yesterday, afk_today, afk_yesterday, cash, bank);
        ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, player_name, str, "Закрыть", "");
        format(query, sizeof(query), "[A][GET] %s[%i] просматривает данные игрока %s", Player[playerid][pName], playerid, player_name);
        SendAdminMessage(COLOR_GREY, query);
    }
    else
    {
    	account_id = cache_get_field_content_int(0, "IDacc"),
        level = cache_get_field_content_int(0, "level"),
        cache_get_field_content(0, "Rip", rip, 16),
        cache_get_field_content(0, "Lip", lip, 16),
        cache_get_field_content(0, "datereg", rdata, 16),
        game_time = cache_get_field_content_int(0, "InGameT"),
        game_yesterday = cache_get_field_content_int(0, "InGameDay"),
        afk_today = cache_get_field_content_int(0, "AFKDay"),
        afk_yesterday = cache_get_field_content_int(0, "InAFKDay"),
        cash = cache_get_field_content_int(0, "money"),
        bank = cache_get_field_content_int(0, "Bank");
		static const fmt_str[] =
        "Номер аккаунта:tt%dn
        Уровень:ttt%dn
        IP адресс (регис.):t%sn
        IP адресс (послед.):t%sn
        Дата регистрации:t%sn
        Донат:ttt%dnn
        В игре сегодня:t%sn
        В игре вчера:t%sn
        AFK сегодня:t%sn
        AFK вчера:t%snn
        Наличные:t%dn
        Осн.банк счёт:t%dn";
        new str[sizeof fmt_str + 700];
        format(str, sizeof(str), fmt_str, account_id, level, rip, lip, rdata, donat, game_time, game_yesterday, afk_today, afk_yesterday, cash, bank);
        ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, player_name, str, "Закрыть", "");
        format(query, sizeof(query), "[A][GET] %s[%i] просматривает данные игрока %s", Player[playerid][pName], playerid, player_name);
        SendAdminMessage(COLOR_GREY, query);
    }
    return 1;
}

CMD:get(playerid, params[])
{
    if(Player[playerid][pAdmin] < 2) return 0;
    new string[144], pname[25];
    if(!sscanf(params, "s[25]", pname))
    {
        format(string, sizeof string, "SELECT * FROM `accounts` WHERE `name` = '%s'", pname);
        mysql_function_query(connect_mysql, string, true, "OnPlayerAccountCheckAdmin", "ds[25]d", playerid, pname, 0);
    }
    else if(!sscanf(params, "d", strval(pname)))
    {
        format(string, sizeof string, "SELECT * FROM `accounts` WHERE `name` = '%d'", pname);
        mysql_function_query(connect_mysql, string, true, "OnPlayerAccountCheckAdmin", "ds[25]d", playerid, '', pname);
    }
    else return SendClientMessage(playerid, COLOR_GREY, "Используйте /get [ник игрока или номер аккаунта]");
    return 1;
}

Что не так?


  1. 16.09.2015, 00:11


    #1

    Аватар для _TranE_

    Пользователь


    sscanf warning

    Здравствуйте. Летят варнинги в логи сервера при каждом использовании:

    Код HTML:

    sscanf warning: Format specifier does not match parameter count.

    Как исправить?

    PHP код:


    if(text[0] == '!')
          {
              
    strdel(text,0,1);
            if(
    strlen(text) == 0) return 0;
            new 
    sid = -1;
            if(
    sscanf(text,"p< >d{s}",sid)) return 0;
            if(!
    IsPlayerConnected(sid)) return 0;
            new 
    bool:sfp false;
            for(new 
    0strlen(text); i++)
            {
                if(!
    sfp)
                {
                    if(
    text[i] == ' ')
                    {
                        
    sfp true;
                        
    strdel(text,0,i+1);
                        
    0;
                    }
                }
                else
                {
                    if(
    text[i] == ' ')
                    {
                        
    strdel(text,0,i+1);
                        
    i--;
                    }
                       else break;
                }
            }
            if(
    strlen(text) == 0) return 0;
            new 
    sn[32],tn[32],stext[144];
            
    GetPlayerName(playerid,sn,32);
            
    GetPlayerName(sid,tn,32);
            
    format(stext,144,"%s [%d]: {ffffff}%s, %s",snplayeridtntext);
            
    SendClientMessageToAll(GetPlayerColor(playerid),stext);
            return 
    0;
        } 





  2. 16.09.2015, 00:53


    #2

    Аватар для #Vito

    #define


    PHP код:


    if(sscanf(text,"p< >d{s}",sid)) return 0



    При использовании sscanf нужно устанавливать размер массива.

    То есть:

    PHP код:


    if(sscanf(text,"p< >d{s[32]}",sid)) return 0



    Skype: vitya.saveliev



  3. 16.09.2015, 00:58


    #3

    Аватар для _TranE_

    Пользователь


    Не помогло..

    PHP код:


    [01:57:45] [chat] [_TranE_]: !0 тест
    [01:57:45sscanf warningFormat specifier does not match parameter count.
    [
    01:57:48] [chat] [_TranE_]: !0 тест
    [01:57:48sscanf warningFormat specifier does not match parameter count.
    [
    01:57:49] [chat] [_TranE_]: !0 тест
    [01:57:49sscanf warningFormat specifier does not match parameter count.
    [
    01:57:49] [chat] [_TranE_]: !0 тест
    [01:57:49sscanf warningFormat specifier does not match parameter count





  4. 16.09.2015, 01:09


    #4

    Аватар для #Vito

    #define


    Вгляделся в код, немного не понял что делает эта сис-ма.. Но

    PHP код:


    if(sscanf(text,"p< >d{s}",sid)) return 0



    Зачем тебе два параметра, если массив один?

    sid — ID игрока?
    Попробуй так..

    PHP код:


    if(sscanf(text,"d",sid)) return 0



    Skype: vitya.saveliev



  5. Пользователь сказал cпасибо:


  6. 16.09.2015, 01:18


    #5

    Аватар для _TranE_

    Пользователь


    Цитата Сообщение от #Vito
    Посмотреть сообщение

    Вгляделся в код, немного не понял что делает эта сис-ма.. Но

    PHP код:


    if(sscanf(text,"p< >d{s}",sid)) return 0



    Зачем тебе два параметра, если массив один?

    sid — ID игрока?
    Попробуй так..

    PHP код:


    if(sscanf(text,"d",sid)) return 0



    Спасибо, помогло, с меня +. Тему можно закрывать.


 

  1. ОШИБКА — [00:21:57 04/25/19] [ERROR] mysql_tquery — callback parameter count does not match format specifier length (Query: «SELECT * FROM accounts WHERE name = ‘Enique_Guddi'»)

  2. format(query, sizeof(query), «SELECT * FROM «TABLE_ACCOUNT» WHERE name = ‘%s'»,PlayerInfo[playerid][pSendername]);

  3. mysql_tquery(mysql, query, «GetPassword», «ds[100]», playerid,inputtext);

  4. function GetPassword(playerid,inputtext[100])

  5. {

  6. if(cache_get_row_count(mysql)>0)

  7. {

  8. new pass[100];

  9. cache_get_field_content(0, «password», pass, mysql);

  10. if(!strcmp(MD5_Hash(inputtext),pass, true))

  11. {

  12. format(query, sizeof(query), «SELECT * FROM «TABLE_ACCOUNT» WHERE name = ‘%s'»,PlayerInfo[playerid][pSendername]);

  13. mysql_tquery(mysql, query, «GetPos», «d», playerid);

  14. }

  15. else

  16. {

  17. new logtires = 3 — PlayerLogTries[playerid];

  18. PlayerLogTries[playerid]++;

  19. if(PlayerLogTries[playerid] == 4)

  20. {

  21. SendClientMessage(playerid,CLIGHTRED,»Введите «/q» для выхода с сервера»);

  22. Kick(playerid, FIX_FUNCTION, 1200);

  23. return true;

  24. }

  25. static const fmt_str[] = «{F85A5A}Вы ввели неправельный пароль. Осталось: %i попыток вводаnnПри подборе пароля Вы будете заблокированы!»;

  26. new str1[sizeof(fmt_str)+1];

  27. format(str1, sizeof(str1), fmt_str,logtires);

  28. ShowPlayerDialog(playerid, 7, DIALOG_STYLE_MSGBOX, «Ошибка», str1, «Назад»,»»);

  29. }

  30. }

  31. else Kick(playerid, FIX_FUNCTION, 1200);

  32. return 1;

  33. }

Здравствуйте , собственно проблема в следующем, при «вырезки» системы из мода столкнулся с проблемой в логе сервера.
Звучит она так:

sscanf warning: Format specifier does not match parameter count.

А вот «паблик» с сохранением:

 
 

public LoadVeh()
{
new rows, fields;
cache_get_data(rows, fields);
if(rows)
{
for(new idx = 1; idx &lt;= rows; idx++)
{
VInfo[idx][id] = cache_get_field(idx-1, «id», MYSQL_CONNECT);
VInfo[idx][vmodel] = cache_get_field(idx-1, «model», MYSQL_CONNECT);
VInfo[idx][vx] = cache_get_field(idx-1, «x», MYSQL_CONNECT);
VInfo[idx][vy] = cache_get_field(idx-1, «y», MYSQL_CONNECT);
VInfo[idx][vz] = cache_get_field(idx-1, «z», MYSQL_CONNECT);
VInfo[idx][vfa] = cache_get_field(idx-1, «fa», MYSQL_CONNECT);
VInfo[idx][vcolor1] = cache_get_field(idx-1, «color1», MYSQL_CONNECT);
VInfo[idx][vcolor2] = cache_get_field(idx-1, «color2», MYSQL_CONNECT);
VInfo[idx][vname] = cache_get_field(idx-1, «name», MYSQL_CONNECT);
VInfo[idx][vcost] = cache_get_field(idx-1, «cost», MYSQL_CONNECT);
VInfo[idx][vx1] = cache_get_field(idx-1, «xx», MYSQL_CONNECT);
VInfo[idx][vy1] = cache_get_field(idx-1, «yy», MYSQL_CONNECT);
VInfo[idx][vz1] = cache_get_field(idx-1, «zz», MYSQL_CONNECT);
VInfo[idx][vfa1] = cache_get_field(idx-1, «fafa», MYSQL_CONNECT);
VInfo[idx][vtunings] = cache_get_field(idx-1, «tuning», MYSQL_CONNECT);
VInfo[idx][vto] = cache_get_field(idx-1, «to», MYSQL_CONNECT);
VInfo[idx][vsvet] = cache_get_field(idx-1, «svet», MYSQL_CONNECT);
TOTALV++;
sscanf(VInfo[idx][vtunings], «p&lt;,&gt;a&lt;i&gt;[17]»,VInfo[idx][vtunings]);
if(!strcmp(VInfo[idx][vname],»None»,true))
{
VInfo[idx][vcar] = CreateVehicle(VInfo[idx][vmodel], VInfo[idx][vx1], VInfo[idx][vy1], VInfo[idx][vz1], VInfo[idx][vfa1], VInfo[idx][vcolor1], VInfo[idx][vcolor2], 172800);
static const fmt_string2[] = «{f7ae11}%s{FFFFFF}nЦена: {f7ae11}$%i»;
new str2[sizeof(fmt_string2)+64+10];
format(str2, sizeof(str2), fmt_string2,VehicleNameS[VInfo[idx][vmodel]-400],VInfo[idx][vcost]);
CarLable[idx] = Create3DTextLabel( str2, -1, 0.0, 0.0, 0.0, 10.0, 0, 1 );
Attach3DTextLabelToVehicle(CarLable[idx], VInfo[idx][vcar], 0.0, 0.0, 1.0);
}
else
{
if(floatround(VInfo[idx][vx]) == 0) VInfo[idx][vcar] = CreateVehicle(VInfo[idx][vmodel], VInfo[idx][vx1], VInfo[idx][vy1], VInfo[idx][vz1], VInfo[idx][vfa1], VInfo[idx][vcolor1], VInfo[idx][vcolor2], 172800);
else VInfo[idx][vcar] = CreateVehicle(VInfo[idx][vmodel], VInfo[idx][vx], VInfo[idx][vy], VInfo[idx][vz], VInfo[idx][vfa], VInfo[idx][vcolor1], VInfo[idx][vcolor2], 172800);
SetVehicleToRespawn(VInfo[idx][vcar]);
}
}
}
printf(» [LOAD]: Успешная загрузка ‘LoadVeh1’ — загружено %d», TOTALV);
mysql_free_result();
return true;
}

Я в Pawno программирование недавно (2 дня) и не знаю как решить проблему , но знаю что проблема в том что
кол-во параметров не сходится с кол-вом переменных.
Если кто то поможет решить эту проблему я буду очень благодарен тому человеку.

  • Remove From My Forums
  • Question

  • User2056586890 posted

     Hello,

     I need to read data from an excel file and then insert that data into a sql database table.

     
    I am using the following code for this purpose:

      public  class TestClass : Accounting
        {
           public  ArrayList objlist = new ArrayList();
            public void O2Ireland ()
            {
            }
            public void Insert_Data()
            {
                string ExcelFile = «»;
                StringCollection objStr = new StringCollection();   

                DataSet ds = new DataSet();
              //  DataRow dr = new DataRow ();
               // SqlHelper objSqlHelper = new SqlHelper();

                try
                {
                   // SqlCommand  comand = new SqlCommand ();

                    

                    ExcelFile = System.Configuration.ConfigurationManager.AppSettings[«ExcelFilePath»];
                    ExcelManager.GetSheetsNames(ExcelFile, ref objStr);
                    //string qury = «Select * from [» + objStr[0] + «] WHERE GSM IS NOT NULL;»;
                    string qury = «Select GSM,[Data Nat#] from [» + objStr[0] + «] WHERE GSM IS NOT NULL;»;
                    ExcelManager.ExecuteDataSet(ExcelFile,qury, ref ds);
                    string conn = System.Configuration.ConfigurationManager.AppSettings[«O2IConnectionString»];
                    string sp = System.Configuration.ConfigurationManager.AppSettings[«add_Accounting»];
                    //string str = Convert.ToString(SqlHelper.ExecuteScalar(conn, sp,ds.Tables[0] ));

                
                   // if (myDataReader[«EmployeeAge»] != System.DBNull.Value)
                   // TestClass obj_test = new TestClass();
                    foreach (DataRow dr in ds.Tables[0].Rows)
                    {
                        //if (dr.IsNull())
                        //{

                        TestClass obj_test = new TestClass();
                            obj_test.CallingNumber = dr[«GSM»].ToString();
                            // obj_test.Raddate = dr[«Call1»].ToString();
                            obj_test.TotalData = Convert.ToInt32(dr[«Data Nat#»]);

                       

                            objlist.Add(obj_test);
                        //}

                     

                    }

                 
                        string str = Convert.ToString(SqlHelper.ExecuteScalar(conn, sp, objlist[0]));

            
                   

                   

                    //  string str = Convert.ToString(SqlHelper.ExecuteScalar(conn, sp,obj_test.CallingNumber,obj_test.TotalData));

                   // ExcelManager.ExecuteDataSet(ExcelFile, «Select * from [» + objStr[0] + «]», ref ds);

                }
                catch (Exception ex)
                {
                    System.Diagnostics.Trace.Write(ex.StackTrace);
                }

    it gives me the following error:

     Parameter count does not match Parameter Value count.

    help me pls, to sort out this issue.

    Regards,

    junior
     

Понравилась статья? Поделить с друзьями:
  • Callable not found or import error
  • Call to httpclient begin declared with attribute error obsolete api use begin wificlient url
  • Call to arms ошибка при запуске приложения 0xc0000142
  • Call to arms gates of hell ostfront ошибка program will be terminated
  • Call to arms gates of hell ostfront ошибка failed to allocate memory