Hirdetés
- Milyen okostelefont vegyek?
- Örömhír: nem spórol Európán a OnePlus
- iPhone topik
- Amazfit Helio Strap – képernyőmentesen
- Honor Magic6 Pro - kör közepén számok
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Samsung Galaxy A54 - türelemjáték
- Okosóra és okoskiegészítő topik
- Xiaomi 15 - kicsi telefon nagy energiával
- Miért fárad gyorsabban az iPhone akku, mint az androidos?
Új hozzászólás Aktív témák
-
td
senior tag
Semmi különös okom nincs rá, csak a meglévő kódot minimálisan szerettem volna módosítani. Tranzakciót egyébként nem használok benne, szóval az insert eredménye az benne maradna a táblában (végül is ez csak amolyan demonstráció-progi, nem akarom túlvariálni, mert a lényeg nem ezen van, de még lehet, hogy beleteszem).
Amúgy meg rájöttem (olvastam), hogy egy rs = psmt.executeQuery(), aztán if (rs.next()) is megteszi.
-
td
senior tag
Köszi, ilyen szinten ismerem a settereket. Csak arra lettem volna kíváncsi, hogy mivel véd az SQL injection ellen, de ha így végiggondolom, akkor meg is van a válasz szerintem.
A másikat akkor hogy lehet jól működővé tenni? Merthogy false-ot ad vissza, ha az első eredmény egy update count vagy ha nincs eredménye az SQL-nek.
if (rs.getUpdateCount()) ?
vagy:
if (rs.getMoreResults()) ?
-
td
senior tag
Na megvan a gond. Idézőjelbe kell tenni a mezőneveket is, de oda már nem kell a user neve. Ez preparedStatement-re is igaz.
Viszont újabb probléma lépett fel:
PreparedStatement ps1 = conn.prepareStatement("INSERT INTO \"WHUSER\".\"Orders\" VALUES (?, ?, ?, ?, 0, 0, ?)");
ps1.setString(1, articleID);
ps1.setInt(2, quantity);
ps1.setString(3, customerID);
ps1.setLong(4, totalcost);
ps1.setLong(5, trackID);
if (ps1.execute()) {
...Megfogadván tanácsodat, alkalmaztam az előkészített lekérdezéseket (tényleg, miket csinálnak a háttérben a setterek?), de az if igaz ága valamiért nem fut le. Több ilyen lekérdezésnél is rendben van, de ennél az egynél valami nem tetszik neki. A furcsa viszont az, hogy az INSERT berakja a sort, tehát az execute()-nak nem kéne hamisat visszaadnia...
Ez az if azért fontos, mert az INSERT sikerétől függően kell update-elni is. setLong()-gal BIGINT mezőket állítok be, a többi varchar és integer. -
td
senior tag
Az exception ez:
org.apache.derby.client.am.SqlException: Invalid operation to read at current cursor position.
Ez akkor van, amikor egy sima SELECT * FROM tábla jellegű lekérdezést csinálok. Az rs.getFetchSize() is nullát ad vissza. Viszont ha kiadok előtte egy rs.next()-et, akkor már nem nulla, és kivétel sem keletkezik. És rendesen le is lehet kérni a mezőértékeket, persze ezeket az első sorból adja.
A SET SCHEMA nem működött sajnos. Az APP-be hogyan tudom betenni? A jobb klikk/Properties... lapon nem lehet átállítani a Schema sort, és amikor a táblát létrehoztam, akkor is csak a WHUSER volt kiválasztható (legalábbis az Owner listából).
Ezt próbáltam amúgy:
stmt.execute("SET SCHEMA=WHUSER");
ResultSet rs = stmt.executeQuery("SELECT * FROM \"WHUSER\".\"Stock\" WHERE ArticleID='" + articleID + "'");És ugyanaz lett a kivétel, mint máskor is:
org.apache.derby.client.am.SqlException: Column 'ARTICLEID' is either not in any table in the FROM list or appears within a join specification and is outside the scope of the join specification or appears in a HAVING clause and is not in the GROUP BY list. If this is a CREATE or ALTER TABLE statement then 'ARTICLEID' is not a column in the target table.Csináltam úgy is, hogy a WHUSER-t '-ok közé tettem, de semmi... (kivétel amúgy arra nem volt)
A másik ötletet (parametrizált query) köszi, majd még kipróbálom azt is. Bár most nem az injection a legnagyobb gondom.

-
Corvin84
csendes tag
Köszönöm btotyi!
Időközben nekem is összejött...Nem volt vele semmi gond az enyémmel se igazán,csak a szerver szarakodik (a Te verziód sem megy most épp rajta),de az enyém sem pedig 1órája ment... :S
Mennyiben változik a dolog,ha nem intervallumot adok meg,h 30tól-50ig dobja ki a primeket,hanem a 30. tól az 50. ig!?
Előre is köszönöm!
Bye
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Milyen videókártyát?
- Milyen okostelefont vegyek?
- One otthoni szolgáltatások (TV, internet, telefon)
- PlayStation 5
- iPhone-t használók OFF topikja
- Elektromos cigaretta 🔞
- sziku69: Fűzzük össze a szavakat :)
- Elon Musk billiomos lesz, ha kitör a gépek forradalma
- Pánikban a világ a Radeon RX 5000 és 6000 sorozat támogatása miatt
- Örömhír: nem spórol Európán a OnePlus
- További aktív témák...
- Bontatlan! Új Lenovo Thinkpad T14 G5 Tartós Üzleti Laptop 14" -45% Ultra 7 165U 16/512 FHD+ Magyar!
- Bomba Ár! Fujitsu LifeBook E751 - i5-2GEN I 4GB I 500GB I DVDRW I 15,6" HD I Cam I W10 I Gari!
- Bomba ár! Dell Latitude E6440 - i5-4GEN I 8GB I 256SSD I 14" HD I HDMI I Cam I W10 I Garancia!
- Bomba ár! Dell Latitude E6540 - i5-4GEN I 8GB I 500GB I HDMI I 15,6" HD I Cam I W10 I Garancia!
- Bomba Ár! Lenovo ThinkPad E15 G4 AMD - Ryzen 5 5625U I 8GB I 256SSD I 15,6" FHD I HDMI I W11 I Gari
- Lenovo ThinkPad X1 Active Noise Cancellation fejhallgató
- GYÖNYÖRŰ iPhone 12 Pro 256GB Graphite -1 ÉV GARANCIA - Kártyafüggetlen, MS3280, 100% akkumulátor
- Bomba ár! Dell Latitude E7440 - i5-4GEN I 8GB I 500GB I 14" HD I HDMI I Cam I W10 I Gari!
- Telefon felvásárlás!! Samsung Galaxy A50/Samsung Galaxy A51/Samsung Galaxy A52/Samsung Galaxy A53
- LG 27UP850K-W - 27" IPS LED - 3840x2160 4K - DisplayHDR 400 - USB Type-C - AMD FreeSync
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Laptopműhely Bt.
Város: Budapest








