/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Nybegynder - hjælp hvis I kan
Fra : Jens Nielsen


Dato : 09-12-04 10:03

Hej , har I en god ide om hvordan jeg skal komme videre.

Jeg denne sql. forespørgsel jeg får fejl i. Jeg kører andre SQL
forspørgsler på tilsvarende måde uden problemer men her kommer der en fejl.
Programmet kan compile men når jeg kalder metoden via main , så kommer
fejlen.

Det er en metode der henter data fra en accessdatabase og bruger dem via en
subklasse.
-----------------------------


public Vector getSufagtilskud()

// GØR: Finder alle SU
student oplysninger i databasen hvor faget er den valgte fagkode

// og indsætter dem som
student objekter i en vektor.

// Der ændres ikke på
tilstanden af det student objekt metoden kaldes på.

//

// RETUR: En vektor med student
objekter indeholdende data.

{

Vector list = new Vector();

ResultSet rs;

String sql;



sql = "SELECT
STUDERENDE.Cprnummer, STUDERENDE.Navn, STUDERENDE.ordning,


STUDERENDE.SUtilskud,STUDERENDE.SUungtilskud, STUDERENDE.VUaldertilskud,
STUDERENDE.VUekstratilskud,

STUDERENDE.Fagkode,
FAG.Fagnavn, FAG.Fagtilskudsprocent ";

sql += "FROM STUDERENDE INNER
JOIN FAG ON STUDERENDE.Fagkode = FAG.Fagkode ";

sql += "WHERE Fag.Fagkode = '"
+ valgtfag + "';";

sql += "AND WHERE
STUDERENDE.ordning = '"+ "SU" +"';";



DB db = new DB();

db.openDBConnection();

try



{

rs =
db.getResultSet(sql);

Fejlbesked peger på denne linie while (rs.next())

{ // skabelse af
student objekt i hukommelsen og referencen til objektet indsættes i
vektoren,

// så garbage
collector ikke sletter objektet når metoden er færdig.



Sustudent u = new
Sustudent(rs.getString("Cprnummer"), rs.getString("Navn"),
rs.getString("Ordning"), rs.getDouble("SUtilskud"),


rs.getDouble("SUungtilskud"), rs.getDouble("VUaldertilskud"),
rs.getDouble("VUekstratilskud"), rs.getString("Fagkode"),

rs.getString ("Fagnavn"),
rs.getShort("Fagtilskudsprocent"));

list.addElement(u);

}



rs.close();

}





catch (SQLException e)

{

System.out.println("Fejl i
udførelsen af SQL."+e);

list = null;

}

db.closeDBConnection();

return (list);







}

---------------------------------------------------------------------------
----------------------------------------------------------------------------
------------------



Fejlbesked " Fejl i udførelsen af SQL.java.sql.SQLExeption:
[Miscrosoft][ODBC Microsoft Access-driver] Der er fundet tegn efter
slutningen af SQL-sætningen.

Exception in thread "Main" java.lang.NullPointerExeption"



----------------------------------------------------------------------------
--



Med venlig hilsen Jens



 
 
Filip Larsen (09-12-2004)
Kommentar
Fra : Filip Larsen


Dato : 09-12-04 10:15

Jens Nielsen skrev

> Jeg denne sql. forespørgsel jeg får fejl i.

Din SQL-forspørgelse har vist et par semikoloner for meget.


Mvh,
--
Filip Larsen



Filip Larsen (09-12-2004)
Kommentar
Fra : Filip Larsen


Dato : 09-12-04 10:27

Jeg skrev

> Din SQL-forspørgelse har vist et par semikoloner for meget.

Suk, selv et et-linje svar kræver åbenbart korrekturlæsning. Det hedder
selvfølgelig "forespørgsel".

--
Filip Larsen



Bertel Lund Hansen (09-12-2004)
Kommentar
Fra : Bertel Lund Hansen


Dato : 09-12-04 11:23

Jens Nielsen skrev:

>Hej , har I en god ide om hvordan jeg skal komme videre.

Ved SQL bruger jeg somme tider den fidus at opbygge kommandoen i
en streng. Så kan jeg bede om at få den skrevet ud og derved
bliver det nemmere at gennemskue SQL-syntaksen.

Jeg har ikke nærlæst din kode.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Søren Klintsø (26-12-2004)
Kommentar
Fra : Søren Klintsø


Dato : 26-12-04 15:14

Der er vist også lidt galt i din sql-syntakt

sql += "AND WHERE STUDERENDE.ordning = '"+ "SU" +"';";

Den går ikke... (et Where for meget)

mvh Søren

"Jens Nielsen" <snopp@webmailidanmarkogandrelande.dk> skrev i en meddelelse
news:41b814d7$0$165$edfadb0f@dread11.news.tele.dk...
> Hej , har I en god ide om hvordan jeg skal komme videre.
>
> Jeg denne sql. forespørgsel jeg får fejl i. Jeg kører andre SQL
> forspørgsler på tilsvarende måde uden problemer men her kommer der en
fejl.
> Programmet kan compile men når jeg kalder metoden via main , så kommer
> fejlen.
>
> Det er en metode der henter data fra en accessdatabase og bruger dem via
en
> subklasse.
> -----------------------------
>
>
> public Vector getSufagtilskud()
>
> // GØR: Finder alle SU
> student oplysninger i databasen hvor faget er den valgte fagkode
>
> // og indsætter dem
som
> student objekter i en vektor.
>
> // Der ændres ikke på
> tilstanden af det student objekt metoden kaldes på.
>
> //
>
> // RETUR: En vektor med
student
> objekter indeholdende data.
>
> {
>
> Vector list = new Vector();
>
> ResultSet rs;
>
> String sql;
>
>
>
> sql = "SELECT
> STUDERENDE.Cprnummer, STUDERENDE.Navn, STUDERENDE.ordning,
>
>
> STUDERENDE.SUtilskud,STUDERENDE.SUungtilskud, STUDERENDE.VUaldertilskud,
> STUDERENDE.VUekstratilskud,
>
> STUDERENDE.Fagkode,
> FAG.Fagnavn, FAG.Fagtilskudsprocent ";
>
> sql += "FROM STUDERENDE INNE
R
> JOIN FAG ON STUDERENDE.Fagkode = FAG.Fagkode ";
>
> sql += "WHERE Fag.Fagkode =
'"
> + valgtfag + "';";
>
> sql += "AND WHERE
> STUDERENDE.ordning = '"+ "SU" +"';";
>
>
>
> DB db = new DB();
>
> db.openDBConnection();
>
> try
>
>
>
> {
>
> rs =
> db.getResultSet(sql);
>
> Fejlbesked peger på denne linie while (rs.next())
>
> { // skabelse af
> student objekt i hukommelsen og referencen til objektet indsættes i
> vektoren,
>
> // så garbage
> collector ikke sletter objektet når metoden er færdig.
>
>
>
> Sustudent u = new
> Sustudent(rs.getString("Cprnummer"), rs.getString("Navn"),
> rs.getString("Ordning"), rs.getDouble("SUtilskud"),
>
>
> rs.getDouble("SUungtilskud"), rs.getDouble("VUaldertilskud"),
> rs.getDouble("VUekstratilskud"), rs.getString("Fagkode"),
>
> rs.getString ("Fagnavn"),
> rs.getShort("Fagtilskudsprocent"));
>
> list.addElement(u);
>
> }
>
>
>
> rs.close();
>
> }
>
>
>
>
>
> catch (SQLException e)
>
> {
>
> System.out.println("Fejl i
> udførelsen af SQL."+e);
>
> list = null;
>
> }
>
> db.closeDBConnection();
>
> return (list);
>
>
>
>
>
>
>
> }
>
> -------------------------------------------------------------------------
--
> --------------------------------------------------------------------------
--
> ------------------
>
>
>
> Fejlbesked " Fejl i udførelsen af SQL.java.sql.SQLExeption:
> [Miscrosoft][ODBC Microsoft Access-driver] Der er fundet tegn efter
> slutningen af SQL-sætningen.
>
> Exception in thread "Main" java.lang.NullPointerExeption"
>
>
>
> --------------------------------------------------------------------------
--
> --
>
>
>
> Med venlig hilsen Jens
>
>



anonymous (27-12-2004)
Kommentar
Fra : anonymous


Dato : 27-12-04 00:45

Jens Nielsen wrote:
> Hej , har I en god ide om hvordan jeg skal komme videre.
>
> Jeg denne sql. forespørgsel jeg får fejl i. Jeg kører andre SQL
> forspørgsler på tilsvarende måde uden problemer men her kommer der en fejl.
> Programmet kan compile men når jeg kalder metoden via main , så kommer
> fejlen.
>
> Det er en metode der henter data fra en accessdatabase og bruger dem via en
> subklasse.
> -----------------------------
>
>
> public Vector getSufagtilskud()
>
> // GØR: Finder alle SU
> student oplysninger i databasen hvor faget er den valgte fagkode
>
> // og indsætter dem som
> student objekter i en vektor.
>
> // Der ændres ikke på
> tilstanden af det student objekt metoden kaldes på.
>
> //
>
> // RETUR: En vektor med student
> objekter indeholdende data.
>
> {
>
> Vector list = new Vector();
>
> ResultSet rs;
>
> String sql;
>
>
>
> sql = "SELECT
> STUDERENDE.Cprnummer, STUDERENDE.Navn, STUDERENDE.ordning,
>
>
> STUDERENDE.SUtilskud,STUDERENDE.SUungtilskud, STUDERENDE.VUaldertilskud,
> STUDERENDE.VUekstratilskud,
>
> STUDERENDE.Fagkode,
> FAG.Fagnavn, FAG.Fagtilskudsprocent ";
>
> sql += "FROM STUDERENDE INNER
> JOIN FAG ON STUDERENDE.Fagkode = FAG.Fagkode ";
>
> sql += "WHERE Fag.Fagkode = '"
> + valgtfag + "';";
>
> sql += "AND WHERE
> STUDERENDE.ordning = '"+ "SU" +"';";
>
>
>
> DB db = new DB();
>
> db.openDBConnection();
>
> try
>
>
>
> {
>
> rs =
> db.getResultSet(sql);
>
> Fejlbesked peger på denne linie while (rs.next())
>
> { // skabelse af
> student objekt i hukommelsen og referencen til objektet indsættes i
> vektoren,
>
> // så garbage
> collector ikke sletter objektet når metoden er færdig.
>
>
>
> Sustudent u = new
> Sustudent(rs.getString("Cprnummer"), rs.getString("Navn"),
> rs.getString("Ordning"), rs.getDouble("SUtilskud"),
>
>
> rs.getDouble("SUungtilskud"), rs.getDouble("VUaldertilskud"),
> rs.getDouble("VUekstratilskud"), rs.getString("Fagkode"),
>
> rs.getString ("Fagnavn"),
> rs.getShort("Fagtilskudsprocent"));
>
> list.addElement(u);
>
> }
>
>
>
> rs.close();
>
> }
>
>
>
>
>
> catch (SQLException e)
>
> {
>
> System.out.println("Fejl i
> udførelsen af SQL."+e);
>
> list = null;
>
> }
>
> db.closeDBConnection();
>
> return (list);
>
>
>
>
>
>
>
> }
>
> ---------------------------------------------------------------------------
> ----------------------------------------------------------------------------
> ------------------
>
>
>
> Fejlbesked " Fejl i udførelsen af SQL.java.sql.SQLExeption:
> [Miscrosoft][ODBC Microsoft Access-driver] Der er fundet tegn efter
> slutningen af SQL-sætningen.
>
> Exception in thread "Main" java.lang.NullPointerExeption"
>
>
>
> ----------------------------------------------------------------------------
> --
>
>
>
> Med venlig hilsen Jens
>
>
Jeg plejer at prototype min SQL i et egnet værktøj (SQL+ på Oracle,
f.eks.) Når min SQL så fungerer, kan jeg inkludere den i et program. I
dit tilfælde ville jeg bruge en stored procedure under alle
omstændigheder, men den går nok ikke til en opgave. Hvis du kører din
SQL fra et shell script eller lignende, vil du se, at du har en where
clause for meget, dvs, din 2. where er forkert.

Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409079
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste