Wysłany: 2016-07-20, 15:08
marcin778
Krytyk serwerów MTA
Wiek: 24 Na forum: 4149 dni Posty: 2268
Nick w MP: Marcineg
Piwa : 4662
Witam, ponownie w sprawie sqlite. mam taki kod
local connect = dbConnect ( "sqlite" , "test.db" )
if connect then
outputDebugString ( "Po??czono z baz? danych" )
else
outputDebugString ( "Nie uda?o si? po??czy? z baz? danych" )
end
function zapis ()
for k , v in ipairs ( getElementsByType ( "vehicle" )) do
local paliwo = getElementData ( v , "fuel" ) or 0
local przebieg = getElementData ( v , "przebieg" ) or 0
local woda = getElementData ( v , "zapelnienie" ) or 0
dbQuery ( connect , "INSERT INTO dane VAULES(?,?,?)" , paliwo , przebieg , woda )
end
end
addEventHandler ( "onResourceStop" , resourceRoot , zapis )
function odczyt ()
dbQuery ( connect , "SELECT * FROM dane" )
end
addEventHandler ( "onResourceStart" , resourceRoot , odczyt )
function aktualizacja ()
for k , v in ipairs ( getElementsByType ( "vehicle" )) do
local id = getElementData ( v , "car_id" )
if id then
local paliwo = getElementData ( v , "fuel" ) or 0
local przebieg = getElementData ( v , "przebieg" ) or 0
local woda = getElementData ( v , "zapelnienie" ) or 0
dbExec ( connect , "UPADTE dane SET paliwo = " .. paliwo .. ", przebieg = " .. przebieg .. ", woda = " .. woda .. "" "WHERE id=" .. id .. "" )
end
end
end
setTimer ( aktualizacja , 1000 , 0 )
Chc? aby w trakcie zatrzymania zasobu zapisywa?o dane takie jak przebieg,paliwo,woda ( w pojazdach psp) a po starcie wczytywa?o zapisane dane. Lecz nie zapisuje tych danych. Co mo?e by? ?le?
Ostatnio zmieniony przez marcin778 2016-07-20, 16:15, w całości zmieniany 1 raz
Wysłany: 2016-07-20, 15:43
Brzysiek
Skrypter pralek
Wiek: 27 Na forum: 5198 dni Posty: 488
Nick w MP: Brzysiek
Piwa : 1034
B??d sk?adni:
dbQuery ( connect , "INSERT INTO dane VALUES(?,?,?)" , paliwo , przebieg , woda )
Wszystko pisze w /debugscript 3 :v
I ten zapis b?dzie s?abo dzia?a?. Za ka?dym razem gdy zatrzymasz zas?b zostan? wpisane nowe dane, a powiniene? odwo?ywa? si? do id wpisanych pojazd?w w bazie i aktualizowa? je zapytaniem UPDATE.
Wysłany: 2016-07-20, 16:20
eject
kurdebele
Wiek: 30 Na forum: 3659 dni Posty: 182
Nick w MP: EjecT
Piwa : 2456
dbQuery ( connect , "INSERT INTO dane (nazwa_kolumny_paliwo,to_samo_przebieg,to_samo_woda) VALUES(?,?,?)" , paliwo , przebieg , woda )
Wysłany: 2016-07-20, 16:26
marcin778
Krytyk serwerów MTA
Wiek: 24 Na forum: 4149 dni Posty: 2268
Nick w MP: Marcineg
Piwa : 4662
tamto sobie ogarn??em.
local connect = dbConnect ( "sqlite" , "test.db" )
if connect then
outputDebugString ( "Po??czono z baz? danych" )
else
outputDebugString ( "Nie uda?o si? po??czy? z baz? danych" )
end
function zapis ()
for k , v in ipairs ( getElementsByType ( "vehicle" )) do
local paliwo = getElementData ( v , "fuel" ) or 0
local przebieg = getElementData ( v , "przebieg" ) or 0
local woda = getElementData ( v , "zapelnienie" ) or 0
dbQuery ( connect , "INSERT INTO dane VALUES(?,?,?)" , paliwo , przebieg , woda )
end
end
addEventHandler ( "onResourceStop" , resourceRoot , zapis )
function odczyt ()
dbQuery ( connect , "SELECT * FROM dane" )
end
addEventHandler ( "onResourceStart" , resourceRoot , odczyt )
function aktualizacja ()
for k , v in ipairs ( getElementsByType ( "vehicle" )) do
local id = getElementData ( v , "car_id" )
if id then
local paliwo = getElementData ( v , "fuel" ) or 0
local przebieg = getElementData ( v , "przebieg" ) or 0
local woda = getElementData ( v , "zapelnienie" ) or 0
dbExec ( connect , "UPADTE dane SET paliwo = " .. paliwo .. ", przebieg = " .. przebieg .. ", woda = " .. woda .. "" )
end
end
end
setTimer ( aktualizacja , 1000 , 0 )
teraz mam db z dbExec
WARNING:nuaka/baza.lua:33: dbExec failed; (1) near "UPDATE" : syntax error
Wysłany: 2016-07-20, 16:37
eject
kurdebele
Wiek: 30 Na forum: 3659 dni Posty: 182
Nick w MP: EjecT
Piwa : 2456
W zapytaniach dbExec nie u?ywa sie "nick="..costam.."nick="
Musisz to zast?pi?:
Zapomniales o id pojazdu gdzie ma to ustawic
dbExec ( connect , "UPDATE dane SET paliwo=? and przebieg=? and woda=? WHERE id=?" , paliwo , przebieg , woda , id )
Wysłany: 2016-07-20, 16:51
marcin778
Krytyk serwerów MTA
Wiek: 24 Na forum: 4149 dni Posty: 2268
Nick w MP: Marcineg
Piwa : 4662
eject , Zaraz przetestuje.
Hmm nie u?ywa si? ?
dbExec ( handler , "UPDATE pojazdy SET x='" .. x .. "', y='" .. y .. "', z='" .. z .. "', rot='" .. rot .. "', ca='" .. color1 .. "', cb='" .. color2 .. "', cc='" .. color3 .. "', przebieg='" .. przebieg .. "', paliwo='" .. paliwo .. "' WHERE id='" .. id .. "'" )
Fragment systemu pojazd?w YNL
Wysłany: 2016-07-20, 16:53
eject
kurdebele
Wiek: 30 Na forum: 3659 dni Posty: 182
Nick w MP: EjecT
Piwa : 2456
marcin778 , Mo?na u?ywa? lecz jest to obci??enie dla servera oraz to jest wygodniejsze
Wysłany: 2016-07-20, 17:05
marcin778
Krytyk serwerów MTA
Wiek: 24 Na forum: 4149 dni Posty: 2268
Nick w MP: Marcineg
Piwa : 4662
debuga ze zaktuaalizowano pokazuje ale no tabela w pliku nadal pusta
local connect = dbConnect ( "sqlite" , "test.db" )
if connect then
outputDebugString ( "Po??czono z baz? danych" )
else
outputDebugString ( "Nie uda?o si? po??czy? z baz? danych" )
end
function zapis ()
for k , v in ipairs ( getElementsByType ( "vehicle" )) do
local id = getElementData ( v , "car_id" )
if id then
local paliwo = getElementData ( v , "fuel" ) or 0
local przebieg = getElementData ( v , "przebieg" ) or 0
local woda = getElementData ( v , "zapelnienie" ) or 0
dbQuery ( connect , "INSERT INTO dane (paliwo,przebieg,woda, id) VALUES(?,?,?)" , paliwo , przebieg , woda , id )
end
end
end
addEventHandler ( "onResourceStop" , resourceRoot , zapis )
function odczyt ()
dbQuery ( connect , "SELECT * FROM dane" )
end
addEventHandler ( "onResourceStart" , resourceRoot , odczyt )
function aktualizacja ()
for k , v in ipairs ( getElementsByType ( "vehicle" )) do
local id = getElementData ( v , "car_id" )
if id then
local paliwo = getElementData ( v , "fuel" ) or 0
local przebieg = getElementData ( v , "przebieg" ) or 0
local woda = getElementData ( v , "zapelnienie" ) or 0
dbExec ( connect , "UPDATE dane SET paliwo=? and przebieg=? and woda=? WHERE id=?" , paliwo , przebieg , woda , id )
outputDebugString ( "Zaktualizowano dane" )
end
end
end
setTimer ( aktualizacja , 50 , 0 )
Wysłany: 2016-07-20, 17:09
eject
kurdebele
Wiek: 30 Na forum: 3659 dni Posty: 182
Nick w MP: EjecT
Piwa : 2456
Czy pojazd kt?ry ma sie zapisa? napewno posiada Elementdate car_id ?
[ Dodano : 2016-07-20, 17:11 ]
dodaj sobie komende debugow? do funkcji zapis
Wysłany: 2016-07-20, 17:13
marcin778
Krytyk serwerów MTA
Wiek: 24 Na forum: 4149 dni Posty: 2268
Nick w MP: Marcineg
Piwa : 4662
eject , jakie? pojazdy elementdate car_id maj? bo to pobiera wszystkie pojazdy z mapy.
[ Dodano : 2016-07-20, 17:17 ]
Jak usunalem warunek if id then te? nic. Komend? zrobi?em debug pokazuje, ?e niby zapisuje no ale nie zapisuje ;-;
Wysłany: 2016-07-20, 17:17
eject
kurdebele
Wiek: 30 Na forum: 3659 dni Posty: 182
Nick w MP: EjecT
Piwa : 2456
Mo?e czy paliwo,przebieg,id,woda maj? w tabeli typ INT ?
Wysłany: 2016-07-20, 17:20
marcin778
Krytyk serwerów MTA
Wiek: 24 Na forum: 4149 dni Posty: 2268
Nick w MP: Marcineg
Piwa : 4662
INTEGER, a jaki maj? mie? typ ?. Przy NUMERIC sypie db
Wysłany: 2016-07-20, 17:20
eject
kurdebele
Wiek: 30 Na forum: 3659 dni Posty: 182
Nick w MP: EjecT
Piwa : 2456
Masz dobrze bo myslalem ze masz numeric daj mi tw?j ca?y obecny kod
Wysłany: 2016-07-20, 17:22
marcin778
Krytyk serwerów MTA
Wiek: 24 Na forum: 4149 dni Posty: 2268
Nick w MP: Marcineg
Piwa : 4662
eject , local connect = dbConnect ( "sqlite" , "test.db" )
if connect then
outputDebugString ( "Po??czono z baz? danych" )
else
outputDebugString ( "Nie uda?o si? po??czy? z baz? danych" )
end
function zapis ()
for k , v in ipairs ( getElementsByType ( "vehicle" )) do
local id = getElementData ( v , "car_id" )
--if id then
local paliwo = getElementData ( v , "fuel" ) or 0
local przebieg = getElementData ( v , "przebieg" ) or 0
local woda = getElementData ( v , "zapelnienie" ) or 0
dbQuery ( connect , "INSERT INTO dane (paliwo,przebieg,woda, id) VALUES(?,?,?)" , paliwo , przebieg , woda , id )
end
end
-- end
addEventHandler ( "onResourceStop" , resourceRoot , zapis )
function odczyt ()
dbQuery ( connect , "SELECT * FROM dane" )
end
addEventHandler ( "onResourceStart" , resourceRoot , odczyt )
function aktualizacja ()
for k , v in ipairs ( getElementsByType ( "vehicle" )) do
local id = getElementData ( v , "car_id" )
--if id then
local paliwo = getElementData ( v , "fuel" ) or 0
local przebieg = getElementData ( v , "przebieg" ) or 0
local woda = getElementData ( v , "zapelnienie" ) or 0
local test = dbExec ( connect , "UPDATE dane SET paliwo=? and przebieg=? and woda=? WHERE id=?" , paliwo , przebieg , woda , id )
if test then
outputDebugString ( "Zaktualizowano dane" )
end
end
end
-- setTimer ( aktualizacja , 50 , 0 )
addCommandHandler ( "zapisuj" , aktualizacja )
Wysłany: 2016-07-20, 17:23
eject
kurdebele
Wiek: 30 Na forum: 3659 dni Posty: 182
Nick w MP: EjecT
Piwa : 2456
ta linijka od zapisywania
[lua]dbQuery(connect, "INSERT INTO dane (paliwo,przebieg,woda, id) VALUES(?,?,?)", paliwo, przebieg, woda,id)[lua]
zamien na
[lua]dbQuery(connect, "INSERT INTO dane (paliwo,przebieg,woda, id) VALUES(?,?,?,?)", paliwo, przebieg, woda,id)[lua]
braklo zapytajnika
Tagi: pierwszy :: zapis :: sql
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: