Orjanp Skrevet 14. april 2003 Del Skrevet 14. april 2003 Hvordan kan jeg bruke en varabel når jeg skal foreta en database spørring ved hjelp av executeQuery? String variabelnavn = "java"; ResultSet rs = stmt.executeQuery("SELECT navn FROM studenter WHERE fag=*variabelnavn*"); variabelnavn vil i praksis få en verdi som bruker skriver inn. edit: skrivefeil. Lenke til kommentar
lk Skrevet 14. april 2003 Del Skrevet 14. april 2003 ResultSet rs = stmt.executeQuery("SELECT navn FROM studenter, WHERE fag = " + variabelnavn); Verre var det ikke lk Lenke til kommentar
Orjanp Skrevet 14. april 2003 Forfatter Del Skrevet 14. april 2003 Funker ikke. Får 'java.sql.SQLException: ORA-00904: "S001": invalid identifier'. S001 er variabel verdien. Lenke til kommentar
lk Skrevet 14. april 2003 Del Skrevet 14. april 2003 Hmm, husket å fjerne kommaet etter 'navn' og 'studenter' som du har i spørringen din? Dette burde iafall fungere ResultSet rs = stmt.executeQuery("SELECT navn FROM studenter WHERE fag = "" + variabelnavn + """); Hvis ikke er det noe galt et annet sted. lk Lenke til kommentar
Orjanp Skrevet 14. april 2003 Forfatter Del Skrevet 14. april 2003 Denne funker ResultSet rs = stmt.executeQuery( "SELECT cid, uname FROM users WHERE cid='s001'"); disse funker ikke ResultSet rs = stmt.executeQuery( "SELECT cid, uname FROM users WHERE cid=" + id_num); ResultSet rs = stmt.executeQuery( "SELECT cid, uname FROM users WHERE cid="" + id_num + """); der id_num er s001. Skriver ut variabelen rett før queryen. Har også prøvd med forskjellige verdier på id_num. Lenke til kommentar
smetho Skrevet 14. april 2003 Del Skrevet 14. april 2003 Bør du ikke ha ResultSet rs = stmt.executeQuery( "SELECT cid, uname FROM users WHERE cid= '"+variabelnavn+"'"); Eller er det jeg som roter? Lenke til kommentar
lk Skrevet 14. april 2003 Del Skrevet 14. april 2003 Kjapt googlesøk typer på at 'invalid identifier' viser til at du forsøker å bruke et felt som ikke finnes. Vil tro at det smetho foreslår burde fungere, men det virker jo rimelig teit av oracle å kreve at du bruker ' rundt stringer og nekte å bruke ". Mulig at det er en hensikt med det, men jeg kan ikke komme på hva det skulle være... lk Lenke til kommentar
smetho Skrevet 14. april 2003 Del Skrevet 14. april 2003 Vel, det er slik jeg har lært det Men forskjellige DBMS har jo forskjellige måter å gjøre ting på. Syns selv bruk av ' gjør det lettere å bygge opp SQL-setninger fra et program enn ", men det er vel en vanesak. Lenke til kommentar
Orjanp Skrevet 14. april 2003 Forfatter Del Skrevet 14. april 2003 Bør du ikke ha ResultSet rs = stmt.executeQuery( "SELECT cid, uname FROM users WHERE cid= '"+variabelnavn+"'"); Eller er det jeg som roter? Denne funket. Takk for hjelpa. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå