Avatar billede shj Nybegynder
16. april 2000 - 13:51 Der er 3 kommentarer og
1 løsning

syntax i sql med java

Hej! Jeg sidder her og fifler med noget code der via odbc åbner en access database og laver et sql udtræk. Det virker findt hvis jeg bruger sql sætningen:
(SELECT * FROM QuerySaveIn WHERE Name ='Simon') Men ville jo være smartere hvis jeg ikke skulle hardcode min søgning, så derfor opretter jeg en String.
Altså
String test = "Simon" men det kan jeg ikkemfå til at spille. Jeg har velagt coden håber der er en der sidder inde med noget code med korrekt syntaks.

//Klassen OdbcKontakt
//OdbcKontakt henter via SQL, *
//og udskriver til skærmen.

import java.net.URL;
import java.sql.*;

class odbckontakt {

  public static void main (String args[]) {
    Kontakt();
  }

  private static void Kontakt() {
    String OdbcNavn = "Errlog";
    String BrugerNavn = "Odbc";
    String Password = "Kontakt";
    String test = "Simon";
    try {
      // Loader jdbc-odbc-driver
      Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");

      // Prøver at få kontakt til driveren
      Connection con = DriverManager.getConnection ("jdbc:odbc:" + OdbcNavn, BrugerNavn, Password);

      // Laver et statement så vi kan overføre SQL sætningen til driveren
      Statement stmt = con.createStatement ();
   
      // Sender en query, og modtager data i rs som er af typen ResultSet
      ResultSet rs = stmt.executeQuery ("SELECT * FROM QuerySaveIn Where Name ="+test); //her går det galt!

    while (rs.next()) {
        System.out.println("Kunden " + rs.getString(1) + ", hedder " + rs.getString(2) + " og har adgangskoden: " + rs.getString(3));
      }
        // Lukker rs
        rs.close();
        // Lukker statement
        stmt.close();
        // Lukker forbindelsen
        con.close();
      }
    catch (SQLException ex) {
      // A SQLException was generated
      System.out.println ("\n*** DataBase Fejl ***\n");
      System.out.println (ex.getMessage());
    }

    catch (java.lang.Exception ex) {
    }
  }
}
Avatar billede erikjacobsen Ekspert
16. april 2000 - 14:35 #1
Du skal sikkert bare have at par stoffer:

      ResultSet rs = stmt.executeQuery ("SELECT * FROM QuerySaveIn Where Name ='"+test+"'");
Avatar billede shj Nybegynder
16. april 2000 - 15:00 #2
Kanon mange tak du har lige redet min dag :-) Gælder den tegsætning kun for Strings eller et det det samme for alle var typer man evt. ville anvende i en sql query.

Avatar billede erikjacobsen Ekspert
16. april 2000 - 15:02 #3
Det gælder for strenge, og datoer (lidt afhængig af SQL-varianten kan det være
noget andet), men det gælder IKKE for tal. Der kan man bare:

  select * from personer where alder>=18

hvor der ikke skal stroffer om 18.
Avatar billede shj Nybegynder
16. april 2000 - 15:09 #4
tak for hjælpen
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
Kurser inden for grundlæggende programmering

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