2013-03-08 1 views
0

일부 데이터를 테이블에 저장하려고합니다. 나는 데이타베이스로부터 데이타를 얻고 그것은 잘 작동한다. 내 문제는 데이터가 테이블에 저장되지 않는다는 것입니다. 그것은 테이블 = {}와 같은 lua 테이블이며 데이터베이스 테이블이 아닙니다.Corona sdk, 함수가 잘못된 순서로 실행됩니까?

아마도 저장되었지만 나중에 호출해도 저장 전에 인쇄가 완료된 것처럼 보입니다. 사실 내 네트워크 요청이 내 프로그램에서 마지막으로 수행 된 것처럼 보일지라도 먼저 호출합니다.

나는 진짜 이유를 알고 싶습니다. 어떤 아이디어? 여기

코드이다

---TESTING! 

print("Begin teting!") 

--hej = require ("test2") 

local navTable = { 
    Eng_Spd = 0, 
    Spd_Set = 0 
} 

local changeTab = function() 
    navTable.Eng_Spd = 2 
end 

printNavTable = function() 
    print("navTable innehåller: ") 
    print(navTable.Eng_Spd) 
    print(navTable.Spd_Set) 
end 


require "sqlite3" 
local myNewData 
local json = require ("json") 
local decodedData 



local SaveData2 = function() 
    local i = 1 
    local counter = 1 
    local index = "livedata"..counter 
    local navValue = decodedData[index] 
    print(navValue) 

    while (navValue ~=nil) do 
     --tablefill ="INSERT INTO navaltable VALUES (NULL,'" .. navValue[1] .. "','" .. navValue[3] .."','" .. navValue[4] .."','" .. navValue[5] .."','" .. navValue[6] .."');" 
     --print(tablefill) 
     --db:exec(tablefill) 
     if  navValue[3] == "Eng Spd" then navTable.Eng_Spd = navValue[4] 
     elseif navValue[3] == "Spd Set" then navTable.Spd_Set = navValue[4]  
     else print("blah") 
     end 
     print(navTable.Eng_Spd) 
     print(navTable.Spd_Set) 
     counter=counter+1 
      index = "livedata"..counter 
       navValue = decodedData[index]   

    end 
end 

local function networkListener(event) 
    if (event.isError) then 
      print("Network error!") 
    else 
      myNewData = event.response 
      print("From server: "..myNewData) 
      decodedData = (json.decode(myNewData)) 
    SaveData2() 
    --db:exec("DROP TABLE IN EXISTS navaltable") 
    end 
end 

--function uppdateNavalTable() 
    network.request("http://127.0.0.1/firstMidle.php", "GET", networkListener) 

--end 
changeTab() 
printNavTable() 
--uppdateNavalTable() 
printNavTable() 

print("Done!") 

그리고 여기에 출력된다 :

Copyright (C) 2009-2012 C o r o n a L a b s I n c . 
     Version: 2.0.0 
     Build: 2012.971 
Begin teting! 
navTable innehåller: 
2 
0 
navTable innehåller: 
2 
0 
Done! 
From server: {"livedata1":["1","0","Eng Spd","30","0","2013-03-15 11:35:48"],"li 
vedata2":["1","1","Spd Set","13","0","2013-03-15 11:35:37"]} 
table: 008B5018 
30 
0 
30 
13 

그리고 BTW가 navTable innehà ¥ 크 로스 navTable가 포함 된 것을 의미한다.

+0

왜 인쇄가 잘못된 순서인지 꼭 알려주세요. 프로그램이 순차적으로 실행되도록 고안되어 있지 않습니까? – Dave

답변

1

답변은 networklistener가 나머지 코드와 함께 parallell을 실행한다는 것입니다.