Dan zal je toch even wat meer code en de melding moeten posten.
SQLException is de generieke foutmelding voor alles wat met JDBC te maken heeft: connectie maken, foute query, foute update enz. Het kan dus aan ontzettend veel zaken liggen.
SQLException is de generieke foutmelding voor alles wat met JDBC te maken heeft: connectie maken, foute query, foute update enz. Het kan dus aan ontzettend veel zaken liggen.
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Ik zal ff wat specifieker zijn
Hij geeft die fout op deze regel:
Werkadresnum is een int.
en resultaat is een Resultset, met het resultaat van een Select opdracht.
Hij geeft die fout op deze regel:
code:
1
| Werkadresnum = Integer.parseInt(resultaat.getString("Werkadresnummer"),10); |
Werkadresnum is een int.
en resultaat is een Resultset, met het resultaat van een Select opdracht.
Hum, omdat de foutmelding Nederlands is, komt hij waarschijnlijk uit je database systeem....Windoos-vernieler: Werkadresnum = Integer.parseInt(resultaat.getString("Werkadresnummer"),10);
Weet je zeker dat de kolomnaam goed is? Probeer het eens met de columnIndex?
Waarom gebruik je trouwens niet getInt("Werkadresnummer")?
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
De colomnaam is 100% zeker goed. En als die niet goed was, dan kreeg ik een andere foutmelding.
Die Melding komt van mijn Database systeem af ja, al mijn SQLExceptions zijn in het nederlands.
En bedankt voor die tip van getInt, scheelt alvast weer wat code.
Maar hiermee is nog nix opgelost
Die Melding komt van mijn Database systeem af ja, al mijn SQLExceptions zijn in het nederlands.
En bedankt voor die tip van getInt, scheelt alvast weer wat code.
Maar hiermee is nog nix opgelost
Wat gebruik je dan? MS Access en JDBC-ODBC driver?Windoos-vernieler: Die Melding komt van mijn Database systeem af ja, al mijn SQLExceptions zijn in het nederlands.
Je zou zeggen dat het een probleem in de driver moet zijn.... maar het is wel een vage melding...
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Om jullie wat meer inzicht te geven op de situatie geef ik ff de hele functie:
hopelijk hebbe jullie er wat aan
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| public void LaatWerkadresZien()
{
try
{
Connection mycon = DriverManager.getConnection("jdbc:odbc:hurk");
Statement mystatement = mycon.createStatement();
ResultSet resultaat = mystatement.executeQuery("SELECT * FROM WerkadresGegevens WHERE Debiteurnummer = "+DebiteurnummerTF.getText()+" ORDER BY Werkadresnummer");
for (int i=0;i<=WerknaamCB.getSelectedIndex();i=i+1)
{
resultaat.next();
}
Werkadresnum = resultaat.getInt("Werkadresnummer");
WerkadresTF.setText(resultaat.getString("Adres"));
WerkpostcodeTF.setText(resultaat.getString("Postcode"));
WerkplaatsTF.setText(resultaat.getString("Plaats"));
WerkafstandTF.setText(resultaat.getString("Afstand"));
WerkreistijdTF.setText(resultaat.getString("Reistijd"));
resultaat.close();
mystatement.close();
mycon.close();
}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null,"SQL Exception3: "+ex.getMessage().substring(39),"Fout",JOptionPane.ERROR_MESSAGE);
}
} |
hopelijk hebbe jullie er wat aan
Voor de eerste resultaat opvraag uit je resultset moet je altijd een .next() gedaan hebben om de pointer op de eerste positie te zetten.... Weet je zeker dat dat gebeurt?
vb:
Hij heeft namelijk bij de eerste read een fout... das verdacht... Als je er een andere voor zet, gaat die waarschijnlijk fout.
vb:
code:
1
2
3
4
5
6
| resultSet = _selectAll.executeQuery();
while(resultSet.next())
{
result.add(read(resultSet));
} |
Hij heeft namelijk bij de eerste read een fout... das verdacht... Als je er een andere voor zet, gaat die waarschijnlijk fout.
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Ik heb dit stuk code al eerder gebruikt, zonder enig probleem. nou ben ik weer wat verder aan het rommelen geweest met mijn code, zonder dat ik die functie heb veranderd. En toch geeft ie een foutmeling op die ene regel
Ik zie je trouwens bladeren tot een geselecteerd item... waarom neem je die conditie niet in je query op?
Controleer eens goed hoe het met die nexts zit... daar moet het probleem haast wel zitten...
Controleer eens goed hoe het met die nexts zit... daar moet het probleem haast wel zitten...
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
je hebt gelijk, maar ik denk dat dat deze keer niet het geval is.Op donderdag 18 oktober 2001 14:28 schreef mbravenboer het volgende:
Voor de eerste resultaat opvraag uit je resultset moet je altijd een .next() gedaan hebben om de pointer op de eerste positie te zetten.... Weet je zeker dat dat gebeurt?
jnlijk fout.
code:
1
2
3
4
| for (int i=0;i<=WerknaamCB.getSelectedIndex();i=i+1)
{
resultaat.next();
} |
Aangezien dat een SelectedIndex van een ComboBox nooit lager als 0 is, en dat betekend dat de for loop altijd minstens 1x uitgevoerd wordt. (als i=0 en WerknaamCD.getSelectedIndex()=0. loop zolang i kleiner of gelijk is aan WerknaamCD.getSelectedIndex())
Ja, das nog 's een goeie tip. ga ik meteen doen!Op donderdag 18 oktober 2001 14:31 schreef mbravenboer het volgende:
Ik zie je trouwens bladeren tot een geselecteerd item... waarom neem je die conditie niet in je query op?
Controleer eens goed hoe het met die nexts zit... daar moet het probleem haast wel zitten...
[extra info]
Ik heb toch werkadresnummers?
en die moeten van 1 t/m ... zijn. Dus die kan ik ook gebruiken
[/extra info]
Het kan zijn dat er gewoon geen Results gevonden zijn en dan kan je natuurlijk ook niets uit je ResultSet halen.
BTW gebruik i++ ipv i=i+1
BTW gebruik i++ ipv i=i+1
Bedankt voor die geweldige tip, maar nu duikt dezelfde foutmelding weer argens anders op 
op de regel: tellertje.next();
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| try
{
int j=0;
Connection mycon = DriverManager.getConnection("jdbc:odbc:hurk");
Statement mystatement = mycon.createStatement();
ResultSet tellertje = mystatement.executeQuery("SELECT count(*) FROM WerkadresGegevens WHERE Debiteurnummer = "+DebiteurnummerTF.getText());
tellertje.next();
j = tellertje.getInt(1);
tellertje.close();
ResultSet resultaat = mystatement.executeQuery("SELECT * FROM WerkadresGegevens WHERE Debiteurnummer = "+DebiteurnummerTF.getText()+" ORDER BY Werkadresnummer");
for (int i=0;i<j;i=i+1)
{
resultaat.next();
WerknaamCB.addItem(resultaat.getString("Naam"));
}
resultaat.close();
mystatement.close();
mycon.close();
WerkadresTF.setText("");
WerkpostcodeTF.setText("");
WerkplaatsTF.setText("");
WerkafstandTF.setText("");
WerkreistijdTF.setText("");
if (j>0)
{
LaatWerkadresZien();
}
}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null,"SQL Exception22: "+ex.getMessage().substring(39),"Fout",JOptionPane.ERROR_MESSAGE);
} |
op de regel: tellertje.next();
Ik dacht dat da alleen bij C++ gebruikt kon wordenOp donderdag 18 oktober 2001 14:48 schreef Trendkiller het volgende:
BTW gebruik i++ ipv i=i+1
alweer een tip rijker
[edit2]
er moet een result instaan, want hij vraagt een COUNT op.
[/edit2]
[edit3]
ben ff weg, tot straks!
[/edit3]
als een count 0 is is de resultset volgens mij leeg (of mag leeg zijn)
Ik BLIJF steeds die foutmelding terug krijgen. 
"Fout in functievolgorde"
ik heb geen idee wat ze er mee bedoelen.
wist ik dat olvast maar. misschien dat ik dan zelf de oplossing wel weet.
"Fout in functievolgorde"
ik heb geen idee wat ze er mee bedoelen.
wist ik dat olvast maar. misschien dat ik dan zelf de oplossing wel weet.
Probeer anders eens een andere database als dat mogelijk is. Ik heb zelf vanuit Java onder andere gebruik gemaakt van MS Access, MS SQL Server, MySQL, PostgreSQL en InstantDB en met geen van allen heb ik een serieus probleem als dit gehad...
InstantDB is een dbms geschreven in Java en behoorlijk goed. Het is uitermate makkelijk te installeren (beter gezegd: ke hoeft het niet te installeren
). Uiteraard heeft die dus ook een goede JDBC driver.
MySQL kan ook een goede optie zijn. Ook hiervoor zijn speciale JDBC drivers beschikbaar.
InstantDB is een dbms geschreven in Java en behoorlijk goed. Het is uitermate makkelijk te installeren (beter gezegd: ke hoeft het niet te installeren
MySQL kan ook een goede optie zijn. Ook hiervoor zijn speciale JDBC drivers beschikbaar.
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Volgens mij niet. Wel kun je NULL terugkrijgen ipv 0.Op donderdag 18 oktober 2001 15:30 schreef wasigh het volgende:
als een count 0 is is de resultset volgens mij leeg (of mag leeg zijn)
Pagina: 1