SQL_FetchInt

Тема в разделе "Программирование / Скриптинг", создана пользователем Someone, 4 июн 2016.

  1. Someone

    Someone

    Сообщения:
    136
    Симпатии:
    44
    L 06/04/2016 - 23:09:51: [SM] Native "SQL_FetchInt" reported: Error fetching data from field 4
    L 06/04/2016 - 23:09:51: [SM] Displaying call stack trace for plugin "dlvltime.smx":
    L 06/04/2016 - 23:09:51: [SM] [0] Line 107, C:\csgo\1.7\addons\sourcemod\scripting\dlvltime.sp::SQL_TimeCallback()

    Как эту ошибку исправить?


    PHP:
    public SQL_TimeCallback(Handle:ownerHandle:hndl, const String:error[], any:Datapack){
        if(
    hndl == INVALID_HANDLE)
        {
            
    LogError("[ABp™] Query Fail: %s"error);
            
    PrintToServer(error);
            return;
        }
        
    ResetPack(Datapack);
        new 
    iClient ReadPackCell(Datapack);
        
    CloseHandle(Datapack);
        if(!
    SQL_HasResultSet(hndl) || SQL_GetRowCount(hndl) ==0)
        {
            
    ShowTopTime(iClient);
            return;
        }
     
     
        new 
    time;
        new 
    hours;
        new 
    minutes;
     
        if(
    SQL_HasResultSet(hndl) && SQL_FetchRow(hndl))
        {

            
    time SQL_FetchInt(hndl,4);
            
    hours RoundToFloor(time/3600.0);
            
    time time-(hours*3600);
            
    minutes RoundToFloor(time/60.0);
            
    time time-(minutes*60);

            
    CGOPrintToChat(iClient"[{RED}ABp™{DEFAULT}] {BLUE}Ваше время на проекте{DEFAULT}:{LIME} %d:%d:%d",hours,minutes,time);
        }
    }
     
  2. SourceSamil

    SourceSamil

    Сообщения:
    121
    Симпатии:
    24
    Отсчет записанных столбцов идет с нуля
    Т.е. если по счету ты записал time четвертым, пиши time = SQL_FetchInt(hndl,3);
     
  3. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.718
    Симпатии:
    455
    либо так (что бы точно).
    PHP:
    new filednum;
    SQL_FieldNameToNum(hndl"НАЗВ. КОЛОНКИ  В ТАБЛИЦЕ"filednum);
    PrintToServer("num -  %i"filednum);
    time SQL_FetchInt(hndlfilednum);
     
  4. Someone

    Someone

    Сообщения:
    136
    Симпатии:
    44
    Это да, знаю, но все равно не работало.

    Спасибо, помогло.