Avatar billede supa Nybegynder
06. januar 2005 - 08:39 Der er 11 kommentarer og
1 løsning

Der er en syntaksfejl, fordi?

Jeg får følgende besked frem når jeg forsøger at kontakte databasen:

Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "houseId='7' WHERE story='1'".

Dette er sætningen:
String query = "SELECT * FROM House WHERE houseId='" + houseID + "' AND story='" + story + "'";

Jeg kan ikke lige se fejlen i den, og ifølge hvad jeg kan finde ud af så er min SQL statement korrekt..?
Avatar billede jensgram Nybegynder
06. januar 2005 - 08:43 #1
Hvis houseId og/eller story er af typen INT (hvilket de sikkert er/bør være) så må du ikke have '-er omkring dem:

String query = "SELECT * FROM House WHERE houseId=" + houseID + " AND story=" + story;
Avatar billede supa Nybegynder
06. januar 2005 - 08:48 #2
De er af typen INT, og jeg har prøvet at fjerne '-erne, men det giver bare følgende fejl så:

Der er for få parametre. Der var ventet 1.

String query = "SELECT * FROM House WHERE houseId=" + houseID + " AND story=" + story;
Avatar billede erikjacobsen Ekspert
06. januar 2005 - 10:30 #3
Er du sikker på du har et felt, der hedder houseID ?
Avatar billede kjulius Novice
07. januar 2005 - 00:41 #4
Hvornår får du den fejl? Under string assignment operationen, eller når SQL strengen skal udføres?

Hvis det først er under udførelsen af SQL sætningen, kan du så lade os se strengen?
Avatar billede kjulius Novice
07. januar 2005 - 00:42 #5
Og hvilket programmeringssprog bruger du til opbygningen af SQL sætningen?
Avatar billede supa Nybegynder
07. januar 2005 - 13:40 #6
erikjacobsen:
Ja, jeg har et felt der hedder houseID..

kjulius:
Jeg bruger Java til programmering..
Det er når strengen skal udføres at der er et problem.. så smider den en SQL exception.. og siger følgeden:
Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "houseId='7' WHERE story='1'".

Og jeg er ikke lige med på hvlken operator den snakker om her.. :-/
Avatar billede erikjacobsen Ekspert
07. januar 2005 - 15:09 #7
Og det er vel Access?

Jeg får i Access/ASP fejlen

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

når jeg staver forkert efter en where, fx.  SELECT * FROM tabel WHERE adler>=18
og der skulle have stået "alder". Derfor spørger jeg om du har et felt med navnet
houseID. Check det lige een gang til ;)
Avatar billede supa Nybegynder
10. januar 2005 - 11:15 #8
Jeps.. Det er Access..

Jeg har lige luret fejlen.. Som du sagde en stave bøf, dog ikke i kolonne rækken den var rigtig, men dermod så var tabel navnet forkert..

Nu har jeg bare et problem med at sætte ind i databasen:
Her er det jeg gerne vil sætte ind:

String query = "INSERT INTO Wall (minX, minY, maxX, maxY, outer, horizontal, houseId, storyId) VALUES('"+
    Integer.toString((int)wall.getBounds().getMinX())    +"','"+
    Integer.toString((int)wall.getBounds().getMinY())    +"','"+
    Integer.toString((int)wall.getBounds().getMaxX())    +"','"+
    Integer.toString((int)wall.getBounds().getMinY())    +"','"+
    Integer.toString(outer)                    +"','"+
    Integer.toString(horizontal)                +"','"+
    Integer.toString(houseID)                +"','"+        Integer.toString(storyID)                +"')";

Og dette er min fejl..:
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i INSERT INTO-sætningen.
Avatar billede erikjacobsen Ekspert
10. januar 2005 - 11:35 #9
Hvis felterne er defineret som tal, så må der ikke komme '....' omkring.

Er det ikke dejligt med Access: Den ved udmærket hvor fejlen er, og noget mere
om, hvad der er galt. Men den vil ikke tage fornøjelsen fra os ved at fortælle det ;)
Avatar billede erikjacobsen Ekspert
10. januar 2005 - 11:37 #10
Og måske er det outer der er et reserveret ord. Prøv [outer] i stedet for.
Avatar billede supa Nybegynder
10. januar 2005 - 12:41 #11
Det virker nu, men jeg smider nok et par spørgsmål mere.. :D

Jeg har fjernet Integer.toString(), samt " ' ".. Og så satte jeg outer som [outer] og så virkede det.. outer er tydeligvis et reserveret ord..
Avatar billede supa Nybegynder
16. februar 2006 - 17:01 #12
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester