Avatar billede mikkelbm Nybegynder
02. april 2003 - 13:48 Der er 10 kommentarer og
1 løsning

Problemer med max() i sql

Hvorfor returnerer denne metode altid 0 ???

try
{
  r = s.executeQuery ("SELECT MAX(Id) FROM kundeDB");
    return r.getInt("Id");
}
catch (SQLException q)
{
  return 0;
}
Avatar billede hsg Nybegynder
02. april 2003 - 13:52 #1
Fordi kolonnen ikke hedder Id
prøv at skrive:
return r.getInt(1);

eller

SELECT MAX(Id) as Id
og så bruge:
return r.getInt("Id");
Avatar billede mikkelbm Nybegynder
02. april 2003 - 13:59 #2
Det virker stadig ikke. Den bliver ved med at returnere 0.
Også selvom jeg har navngivet kolonnen.
Avatar billede arne_v Ekspert
02. april 2003 - 14:09 #3
r.getInt(1) bør virke.
Avatar billede disky Nybegynder
02. april 2003 - 14:09 #4
lav være med at tilgå kolonner via deres position, brug af deres navn er bedre og mere overskueligt.

Hedder din kolonne: id eller Id eller ID eller iD ? Det gør nemlig en forskel.
Avatar billede hsg Nybegynder
02. april 2003 - 14:10 #5
Hvilken fejl får du i din exception ?
Eller er "fejlen" at der ingen rækker er i din tabel?
Avatar billede hsg Nybegynder
02. april 2003 - 14:11 #6
disky>En funktion har jo intet navn...derfor select as
Ellers ja. Brug navn og ikke position
Avatar billede arne_v Ekspert
02. april 2003 - 14:15 #7
Det er generelt en god ide at bruge navne fremfor index.

Men i dette tilfælde må index være helt fint, da der jo ikke er et reelt navn.
Avatar billede mikkelbm Nybegynder
02. april 2003 - 14:18 #8
Min kolonne hedder Id. Præcis som jeg har skrevet i min metode.
Fejlen jeg får er at den ikke kan finde kolonnen. Jeg dobbelttjekker lige det hele. Så vender jeg tilbage.
Avatar billede arne_v Ekspert
02. april 2003 - 14:20 #9
try
{
  r = s.executeQuery ("SELECT MAX(Id) FROM kundeDB");
    r.next(); // <------
    return r.getInt(1);
}
catch (SQLException q)
{
  return 0;
}
Avatar billede disky Nybegynder
02. april 2003 - 14:21 #10
vigtig detalje :-)
Avatar billede mikkelbm Nybegynder
02. april 2003 - 14:24 #11
Ja, det var det der manglede - r.next();
En dum fejl, men dem lærer man selvfølgelig af.
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