Avatar billede cliffha Nybegynder
26. marts 2008 - 22:14 Der er 2 kommentarer og
1 løsning

Problem med sql

Jeg skal have funde den sidste af mine members id. Dette vil jeg mene skal gøres sådan:

  public int getNextPlayerID() throws Exception
    {
    Connection con = DriverManager.getConnection(url);
    try
    {
        Statement st = con.createStatement();
        ResultSet rs = st.executeQuery("SELECT TOP 10 MembersID FROM Members ORDER BY MembersID ASC");

    int nextPlayerID = rs.getInt("MembersID");
        return nextPlayerID;

    } finally
    {
        con.close();
    }
    }

Men jeg får fejlen: [Microsoft][ODBC Driver Manager] Markørtilstanden er ugyldig.
Avatar billede fsconsult.dk Nybegynder
26. marts 2008 - 22:24 #1
ja, du skal bruge rs.next() før du kan læse en record.

f.eks:

if (rs.next())
  nextPlayerId=rs.getInt("MembersID");


Hvorfor bruger du iøvrigt ODBC bridgen?  den er fuld af fejl.  Brug en rigtig JDBC driver. (medmindre det er til Access eller en anden tekstfil)
Avatar billede cliffha Nybegynder
26. marts 2008 - 22:45 #2
Det er access jeg bruger.

Vil det betyde jeg skal skrive det sådan?

    public int getNextPlayerID() throws Exception
    {
    int nextPlayerId = -1;
    Connection con = DriverManager.getConnection(url);
    try
    {
        Statement st = con.createStatement();
        ResultSet rs = st.executeQuery("SELECT TOP 1 MembersID FROM Members ORDER BY MembersID DESC");
        if (rs.next())
        {
        nextPlayerId = rs.getInt("MembersID");
        }
        nextPlayerId++;
        return nextPlayerId;

    } finally
    {
        con.close();
    }
    }

eller er der en nemmere måde at pludse med en til nextPlayerID.
Men det virker da nu tak! :D
Avatar billede fsconsult.dk Nybegynder
27. marts 2008 - 05:35 #3
ja, det ser mere rigtigt ud.  next() returnerer nemlig true, hvis den fandt en række og ellers false (bruges også i while-løkker for at gennemløbe et resultsæt)
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