Avatar billede kunop Nybegynder
13. maj 2002 - 15:51 Der er 5 kommentarer og
2 løsninger

Forskel på SQL i java og access

Jeg har lavet en forespørgsel i access vha SQL som virker helt fint, men når jeg implementerer den i java får jeg en nullpointer exception. Er der forskel på hvordan jeg skal skrive forespørgslen i java i forhold til access.

Herunder følger koden:

Sådan ser det ud i SQL:

SELECT SUM([kapacitet].[maksimum]) AS Pladstimer
FROM reservation, lokale, kapacitet
WHERE ([reservation].[lokaleID]=[lokale].[lokaleID]) And ([lokale].[kapacitetsID]=[kapacitet].[kapacitetsID]) And ([reservation].[dato] Between [Start dato feks 03-04-2002] And [Slut dato feks 09-04-2002]);

Sådan ser det ud i java:

rs4= MDA.query(    "SELECT SUM(kapacitet.maksimum) AS Pladstimer "+
                                "FROM reservation, lokale, kapacitet "+
                                "WHERE (reservation.lokaleID=lokale.lokaleID) "+
                                "AND (lokale.kapacitetsID=kapacitet.kapacitetsID) "+
                                "AND (reservation.dato BETWEEN '"+startdato+"' "+
                                "AND '"+slutdato+"');");
                               
        while(rs4.next())
        {
            tid2= rs4.getDouble(1);
        }
Avatar billede disky Nybegynder
13. maj 2002 - 16:28 #1
hvad er MDA for en type ?

Forresten det du kalder SQL: er ikke sql, det er access'es forvrængning af sql.

hvis MD4 er et object af type java.sql.Statement skulle det være i orden.

p.s. res

tid2=rs4.getDouble(1);
til
tid2=rs4.getDouble("Pladstimer");

Det er langt pænere java.
Avatar billede kunop Nybegynder
13. maj 2002 - 16:39 #2
MyDatabaseApp MDA = new MyDatabaseApp("booking");

MyDatabaseApp har metoden query som returnerer et resultset. (Metoden virker fint).

Men der er nogle SQL sætninger der fungerer i klasse, men ikke alle! Du har ikke en ide til hvad der kunne være galt?
Avatar billede disky Nybegynder
13. maj 2002 - 17:58 #3
hvor opstår den exception du får ?
Altså hvilken linie af ovenstående kode ?
Avatar billede kunop Nybegynder
13. maj 2002 - 18:10 #4
Jeg får ingen fejl når jeg compiler men når jeg kører programmet skriver den følgende: Exception in thread "main" java.lang.NullPointerException
at StatistikUdregn.tid(StatistikUdregn.java:96)

hvor linie 96 er: while(rs4.next())
Avatar billede disky Nybegynder
13. maj 2002 - 22:13 #5
Så er det din MDA.query() metode som af en eller anden årsag returnerer null.
Avatar billede kunop Nybegynder
13. maj 2002 - 22:18 #6
Jeg tror måske jeg har fundet ud af hvorfor den returnerer null. Der kan være problemer med at indtaste variablen dato i SQl forespørgslen. Ved du hvordan det skal indtastes i java?

Når jeg kører min SQL i access er der ingen problemer med at indtaste  startdato og slutdato , men i java er der problemer. Hvad skal jeg skrive?

Dato er af typen kort datoformat i access! dvs dd-mm-yyyy
Avatar billede kunop Nybegynder
14. maj 2002 - 21:20 #7
Jeg har fundet ud af det fra et andet spørgsmål. Min forespørgsel returnerede null fordi dato ikke blev opfattet korrekt. Men disky havde dog lidt ret i det han sagde så derfor deler jeg point'ene
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