|
| 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.
| |
|
|