Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2022-01-09, 21:25


flimbo123







Wiek: 33
Na forum: 5776 dni
Posty: 93
Nick w MP: Flimbo

Piwa: 190

Respekt: 60

Problem polega na tym, ?e potrzebuj? aby kod wysy?a? polecenie dbExec, natomiast wychodzi na to ?e jest sk?adniowiec. Wisz? nad nim od d?u?szego czasu i nie wiem o co mu chodzi.

Kod:

dbExec(db, "DELETE FROM Save WHERE owner="usunTo"")



Otrzymuj? nast?puj?c? zwrotk?:
Kod:

ERROR: Loading script failed: privcar/server.lua.5: ')' expected near 'usunTo'


Niby wymaga domkni?cia nawiasu, ale gdzie? nawet notepad++ wariuje i nie pokazuje ?adnych nawias?w do zamkni?cia.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2022-01-09, 21:29


Janusz_GRA

NO NAME






Wiek: 26
Na forum: 3716 dni
Posty: 223
Nick w MP: michalMonster

Piwa: 175

Respekt: 85,8

Spr?buj zamieni? "usunTo" na 'usunTo'

Postaw piwo autorowi tego posta
 

 
Wysłany: 2022-01-09, 21:41


flimbo123







Wiek: 33
Na forum: 5776 dni
Posty: 93
Nick w MP: Flimbo

Piwa: 190

Respekt: 60

Wtedy otrzymuj? b??d "no such column".

Postaw piwo autorowi tego posta
 

 
Wysłany: 2022-01-09, 21:52


Janusz_GRA

NO NAME






Wiek: 26
Na forum: 3716 dni
Posty: 223
Nick w MP: michalMonster

Piwa: 175

Respekt: 85,8

Jeste? pewny ?e istnieje kolumna owner i rekord w niej usunTo?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2022-01-09, 22:12


kamison

Przyszły programista .lua






Wiek: 25
Na forum: 3302 dni
Posty: 391
Nick w MP: kamison

Piwa: 594

Respekt: 205,3
Respekt: 205,3Respekt: 205,3

"flimbo123" napisał/a:

Problem polega na tym, ?e potrzebuj? aby kod wysy?a? polecenie dbExec, natomiast wychodzi na to ?e jest sk?adniowiec. Wisz? nad nim od d?u?szego czasu i nie wiem o co mu chodzi.

Kod:

dbExec(db, "DELETE FROM Save WHERE owner="usunTo"")



Otrzymuj? nast?puj?c? zwrotk?:
Kod:

ERROR: Loading script failed: privcar/server.lua.5: ')' expected near 'usunTo'


Niby wymaga domkni?cia nawiasu, ale gdzie? nawet notepad++ wariuje i nie pokazuje ?adnych nawias?w do zamkni?cia.


Rozwi?zanie jest naprawd? proste
Odkryta wiadomość / Unhidden message(aby ją zobaczyć nie musisz nic robić)

Kod:

dbExec(db, "DELETE FROM Save WHERE owner="usunTo"")

W/w dbExec ma w sobie usunTo czyli zmienna i teraz:
Kod:

dbExec(db, "DELETE FROM Save WHERE owner="..usunTo..")

lub
Kod:

dbExec(db, "DELETE FROM Save WHERE owner=?", usunTo)


Komentarz The Psychol dodany 2022-01-10, 22:34Pomagając użytkownikowi, pomagasz również innym użytkownikom z podobnym problemem. Nie używaj hide w takich przypadkach.
Podpis
Coś tam kiedyś robiłem.

DC: kamison_.
Ostatnio zmieniony przez The Psychol 2022-01-10, 22:33, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
flimbo123
Wysłany: 2022-01-10, 16:24


flimbo123







Wiek: 33
Na forum: 5776 dni
Posty: 93
Nick w MP: Flimbo

Piwa: 190

Respekt: 60

"kamison" napisał/a:

"flimbo123" napisał/a:

Problem polega na tym, ?e potrzebuj? aby kod wysy?a? polecenie dbExec, natomiast wychodzi na to ?e jest sk?adniowiec. Wisz? nad nim od d?u?szego czasu i nie wiem o co mu chodzi.

Kod:

dbExec(db, "DELETE FROM Save WHERE owner="usunTo"")



Otrzymuj? nast?puj?c? zwrotk?:
Kod:

ERROR: Loading script failed: privcar/server.lua.5: ')' expected near 'usunTo'


Niby wymaga domkni?cia nawiasu, ale gdzie? nawet notepad++ wariuje i nie pokazuje ?adnych nawias?w do zamkni?cia.


Rozwi?zanie jest naprawd? proste
--- phpBB : The Protected Message is not copied in this quote ---[/hide]



Twoje polecenie zwraca nast?puj?ce b??dy:

Kod:

ERROR: Loading script failed: privcar\server.lua:3: unfinished string near '")'


Druga wersja polecenia za?aduje ca?y kod, natomiast nie wykona si? za?o?enie (nie usunie z bazy rekord?w, gdzie w tabeli "owner" wyst?puje warto?? 'usunTo'.

Wpisuj?c polecenie SQL: DELETE FROM Save WHERE owner="usunTo" w oprogramowanie bazy danych wykonuje si? poprawnie i zgodnie z za?o?eniami, nie mog? tylko zrobi? tego, aby by?o to egzekwowane przez kod.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2022-01-11, 20:57


kamison

Przyszły programista .lua






Wiek: 25
Na forum: 3302 dni
Posty: 391
Nick w MP: kamison

Piwa: 594

Respekt: 205,3
Respekt: 205,3Respekt: 205,3

Rozumiem, ?e chcesz usum?? rekord kt?ry zosta? zmieniony na usunTo, je?li tak to wtedy w ten spos?b.


dbExec(db"DELETE FROM Save WHERE owner=usunTo")
--lub
local owner "usunTo"
dbExec(db"DELETE FROM Save WHERE owner=?"owner)
--lub to samo z innsk?adni?
local owner "usunTo"
dbExec(db"DELETE FROM Save WHERE owner="..owner)


My?la?em, ?e usunTo - to zmienna w kodzie

Postaw piwo autorowi tego posta
 

 
Wysłany: 2022-01-12, 18:58


flimbo123







Wiek: 33
Na forum: 5776 dni
Posty: 93
Nick w MP: Flimbo

Piwa: 190

Respekt: 60

Kod:

WARNING: privcar\server.lua.3: dbExec failed; (1) no such column: usunTo


Warianty z deklaracj? zmiennej nie wchodz? w gr?, bo zmienna owner ju? istnieje par?na?cie linijek kodu p??niej, przy ustawianiu elementDaty pojazdu.


konkretnie przy zapisywaniu rekordu do bazy:
Kod:

local owner=getElementData(v,"owner") or "usunTo"


I przy odczycie rekordu z bazy, do spawnowania auta przy starcie systemu:
Kod:

setElementData(car,"owner",v.owner)





Mo?e rozwi?za? to jako? w taki spos?b, ?eby zwyczajnie tego nie zapisywa??

Kod:

local owner=getElementData(v,"owner") or (nie zapisuj, nic nie r?b je?li pojazd nie ma ownera)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2022-01-12, 19:14


kamison

Przyszły programista .lua






Wiek: 25
Na forum: 3302 dni
Posty: 391
Nick w MP: kamison

Piwa: 594

Respekt: 205,3
Respekt: 205,3Respekt: 205,3

Aaa, trzeba by?o tak od razu, my?la?em ?e w bazie danych je?li jest kolumna owner i w niej 'usunTo' to ma usun??.

Normalnie

local owner=getElementData(v,"owner") or (nie zapisuj, nic nie r?b je?li pojazd nie ma ownera)
if owner then
...
end

Postaw piwo autorowi tego posta
 

 
Wysłany: 2022-01-12, 19:18


flimbo123







Wiek: 33
Na forum: 5776 dni
Posty: 93
Nick w MP: Flimbo

Piwa: 190

Respekt: 60

To mo?e inaczej, jak by? rozwi?za? t? pl?tanin?? podrzucam fragment kodu odpowiadaj?cy za DB i za zapis:

Kod:

local db=dbConnect("sqlite","save.db")
dbExec(db,"CREATE TABLE IF NOT EXISTS `Save` (ID INTEGER, Model INTEGER, owner VARCHAR, c1 INTEGER, c2 INTEGER, c3 INTEGER, c4 INTEGER, c5 INTEGER, c6 INTEGER, tuning VARCHAR, x VARCHAR, y VARCHAR, z VARCHAR, przebieg INTEGER, hp INTEGER, paliwo INTEGER, rot INTEGER, driveType INTEGER, numberOfGears INTEGER, maxVelocity INTEGER, engineAcceleration INTEGER, steeringLock INTEGER, rejka VARCHAR, opis VARCHAR)")




addCommandHandler("save",function(plr)
dbExec(db,"DELETE FROM `Save`")
for _,v in ipairs(getElementsByType("vehicle"))do
local owner=getElementData(v,"owner") or "usunTo"
local c1,c2,c3,c4,c5,c6=getVehicleColor(v,true)
local model=getElementModel(v)
local rejka=getVehiclePlateText(v)
local id=getElementData(v,"v:id") or math.random(1,10000)
local hp=getElementHealth(v)
local opis=getElementData(v,"pojazd_opis") or ""
local przebieg=getElementData(v,"przeb") or 0
local paliwo=getElementData(v,"fuel") or 0
local x1,y1,z1=getElementPosition(v)
local _,_,rot1=getVehicleRotation(v)
local x=getElementData(v,"x") or x1
local y=getElementData(v,"y") or y1
local z=getElementData(v,"z") or z1
local rot=getElementData(v,"rot") or rot1
local hd = getVehicleHandling(v)
local driveType = hd["driveType"]
local numberOfGears = hd["numberOfGears"]
local maxVelocity = hd["maxVelocity"]
local engineAcceleration = hd["engineAcceleration"]
local steeringLock = hd["steeringLock"]

local tuning = toJSON(getVehicleUpgrades(v))
dbExec(db,"INSERT INTO `Save` (ID,Model,owner,c1,c2,c3,c4,c5,c6,przebieg,hp,paliwo,tuning,x,y,z,rot,driveType,numberOfGears,maxVelocity,engineAcceleration,steeringLock,rejka,opis) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",id,model,owner,c1,c2,c3,c4,c5,c6,przebieg,hp,paliwo,tuning,x,y,z,rot,driveType,numberOfGears,maxVelocity,engineAcceleration,steeringLock,rejka,opis)
end
end)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2022-01-12, 19:51


kamison

Przyszły programista .lua






Wiek: 25
Na forum: 3302 dni
Posty: 391
Nick w MP: kamison

Piwa: 594

Respekt: 205,3
Respekt: 205,3Respekt: 205,3

Chcesz usun??/doda?/zaktualizowa? dane w bazie? Bo tutaj jako? dziwnie to jest zrobione

Postaw piwo autorowi tego posta
 

 
Wysłany: 2022-01-12, 20:12


flimbo123







Wiek: 33
Na forum: 5776 dni
Posty: 93
Nick w MP: Flimbo

Piwa: 190

Respekt: 60

Problematyka jest nast?puj?ca: w bazie generuj? si? rekordy z brakiem w?a?ciciela (owner=usunTo), co sprawia ?e auta generowane przez inny skrypt/map? kt?re maj? by? og?lnodost?pne zapisuj? si?, i duplikuj?, i na dodatek s? bezu?yteczne bo je?li kto? nie jest w?a?cicielem to nie mo?e z nich korzysta?. S? dwie opcje:

- Wy??czenie w jaki? spos?b zapisywania si? aut, kt?re nie maj? w?a?ciciela (tej elementDaty w?a?nie)
- Nie robienie nic w kodzie, ale implementacja funkcji, kt?ra takie rekordy z bazy b?dzie usuwa? permanentnie. (np. co start skryptu).

Postaw piwo autorowi tego posta
 

 
Wysłany: 2022-01-12, 20:13


kamison

Przyszły programista .lua






Wiek: 25
Na forum: 3302 dni
Posty: 391
Nick w MP: kamison

Piwa: 594

Respekt: 205,3
Respekt: 205,3Respekt: 205,3

A co do nie domkni?tego nawiasu to tutaj jest problem
Kod:

local owner=getElementData(v,"owner") or "usunTo"

Zr?b
Kod:

local owner=getElementData(v,"owner") or false


[ Dodano: 2022-01-12, 20:16 ]
"flimbo123" napisał/a:

Problematyka jest nast?puj?ca: w bazie generuj? si? rekordy z brakiem w?a?ciciela (owner=usunTo), co sprawia ?e auta generowane przez inny skrypt/map? kt?re maj? by? og?lnodost?pne zapisuj? si?, i duplikuj?, i na dodatek s? bezu?yteczne bo je?li kto? nie jest w?a?cicielem to nie mo?e z nich korzysta?. S? dwie opcje:

- Wy??czenie w jaki? spos?b zapisywania si? aut, kt?re nie maj? w?a?ciciela (tej elementDaty w?a?nie)
- Nie robienie nic w kodzie, ale implementacja funkcji, kt?ra takie rekordy z bazy b?dzie usuwa? permanentnie. (np. co start skryptu).


Kod:



local db=dbConnect("sqlite","save.db")
dbExec(db,"CREATE TABLE IF NOT EXISTS `Save` (ID INTEGER, Model INTEGER, owner VARCHAR, c1 INTEGER, c2 INTEGER, c3 INTEGER, c4 INTEGER, c5 INTEGER, c6 INTEGER, tuning VARCHAR, x VARCHAR, y VARCHAR, z VARCHAR, przebieg INTEGER, hp INTEGER, paliwo INTEGER, rot INTEGER, driveType INTEGER, numberOfGears INTEGER, maxVelocity INTEGER, engineAcceleration INTEGER, steeringLock INTEGER, rejka VARCHAR, opis VARCHAR)")




addCommandHandler("save",function(plr)
--dbExec(db,"DELETE FROM `Save`")
for _,v in ipairs(getElementsByType("vehicle"))do
local owner=getElementData(v,"owner")
if not owner then return end
local c1,c2,c3,c4,c5,c6=getVehicleColor(v,true)
local model=getElementModel(v)
local rejka=getVehiclePlateText(v)
local id=getElementData(v,"v:id") or math.random(1,10000)
local hp=getElementHealth(v)
local opis=getElementData(v,"pojazd_opis") or ""
local przebieg=getElementData(v,"przeb") or 0
local paliwo=getElementData(v,"fuel") or 0
local x1,y1,z1=getElementPosition(v)
local _,_,rot1=getVehicleRotation(v)
local x=getElementData(v,"x") or x1
local y=getElementData(v,"y") or y1
local z=getElementData(v,"z") or z1
local rot=getElementData(v,"rot") or rot1
local hd = getVehicleHandling(v)
local driveType = hd["driveType"]
local numberOfGears = hd["numberOfGears"]
local maxVelocity = hd["maxVelocity"]
local engineAcceleration = hd["engineAcceleration"]
local steeringLock = hd["steeringLock"]

local tuning = toJSON(getVehicleUpgrades(v))
dbExec(db,"INSERT INTO `Save` (ID,Model,owner,c1,c2,c3,c4,c5,c6,przebieg,hp,paliwo,tuning,x,y,z,rot,driveType,numberOfGears,maxVelocity,engineAcceleration,steeringLock,rejka,opis) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",id,model,owner,c1,c2,c3,c4,c5,c6,przebieg,hp,paliwo,tuning,x,y,z,rot,driveType,numberOfGears,maxVelocity,engineAcceleration,steeringLock,rejka,opis)
end
end)


[ Dodano: 2022-01-12, 20:17 ]
To teraz wiadomo o co ci chodzi, w/w kod nie wpisze nic do bazy je?li nie b?dzie w?a?ciciela ale og?lnie to nie wiem dlaczego chcesz wpisywa? nowy rekord skoro powiniene? robi? update jak jest w?a?ciciel

Postaw piwo autorowi tego posta
 

 
Wysłany: 2022-01-12, 20:33


flimbo123







Wiek: 33
Na forum: 5776 dni
Posty: 93
Nick w MP: Flimbo

Piwa: 190

Respekt: 60

Ok, brzmi sensownie, ale czy w momencie kiedy nie b?dzie na samochodzie elementDaty w?a?ciciela, to on pominie procedur? i nie doda nowego rekordu, czy doda, ale nie wpisze w?a?ciciela? W za?o?eniu ma w og?le nie dodawa? i w og?le nie bra? takich samochod?w pod uwag? w systemie, od tego s? inne skrypty, np. skrypty prac kt?re maj? spawnowa? swoje auta.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2022-01-12, 21:15


kamison

Przyszły programista .lua






Wiek: 25
Na forum: 3302 dni
Posty: 391
Nick w MP: kamison

Piwa: 594

Respekt: 205,3
Respekt: 205,3Respekt: 205,3

Warunek jest prosty, pobiera date z pojazdu czyli "owner" je?li pojazd nie posiada takiej daty to pominie go i wykona si? kolejny warunek do innego pojazdu, tak jest w zamy?le bo nie pami?tam czy return nie zablokuje ca?ej p?tl.

Je?li by blokowa? to wtedy zamiast
Kod:

return end

u?yj
Kod:


if owner then
--wykonaj caly kod
end


Postaw piwo autorowi tego posta
 

 
Tagi: dbexec :: gdzie :: literówka?
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku