08. maj 2002 - 10:15Der er
12 kommentarer og 1 løsning
Sql i java
Jeg kan ikke komme videre med denne sql-sætning i java. Jeg får en sql-exception med en "general error" fejlmeddelelse, når jeg udfylder mine tekstfelter i en GUI. Koden: ResultSet rs= s.executeQuery( "SELECT DISTINCT LokaleType.LokaleType, Lokale.LokaleID, Lokale.Kapacitet, Bygninger.Betegnelse "+ " FROM (Bygninger INNER JOIN Reservation ON [Bygninger].[BygningsID]=[Reservation].[BygningsID]) INNER JOIN ((((Lokale LEFT JOIN OH ON [Lokale].[LokaleID]=[OH].[LokaleID]) LEFT JOIN PC ON [Lokale].[LokaleID]=[PC].[LokaleID]) LEFT JOIN WB ON [Lokale].[LokaleID]=[WB].[LokaleID]) INNER JOIN LokaleType ON [Lokale].[LokaleTypeID]=[LokaleType].[LokaleTypeID]) ON [Reservation].[LokaleID]=[Lokale].[LokaleID] "+ " WHERE ([LokaleType].[LokaleType]) Like "+LokaleType.getText()+" AND ([Lokale].[Kapacitet]) Between "+ KapacitetMin.getText()+" AND "+ KapacitetMax.getText()+" AND ([Reservation].[Dato])= "+ Dato.getText()+ " AND ([Reservation].[Start]) Not Between "+ StartTid.getText()+ " And "+ SlutTid.getText());
som jeg har sagt tidligere hvor du spurgte om det samme, man sætter altså ikke [] rundt om felt navn i SQL kode, jeg mener du skrev at access åd den uden problemmer, men access er heller ikke en SQL database.
Nu har jeg fjernet alle [], også får jeg en exception, der siger at jeg mangler en operator i min WHERE-sætning: ResultSet rs= s.executeQuery( "SELECT DISTINCT LokaleType.LokaleType, Lokale.LokaleID, Lokale.Kapacitet, Bygninger.Betegnelse "+ " FROM (Bygninger INNER JOIN Reservation ON Bygninger.BygningsID=Reservation.BygningsID) INNER JOIN ((((Lokale LEFT JOIN OH ON Lokale.LokaleID=OH.LokaleID) LEFT JOIN PC ON Lokale.LokaleID=PC.LokaleID) LEFT JOIN WB ON Lokale.LokaleID=WB.LokaleID) INNER JOIN LokaleType ON Lokale.LokaleTypeID=LokaleType.LokaleTypeID) ON Reservation.LokaleID=Lokale.LokaleID "+ " WHERE (LokaleType.LokaleType) Like "+LokaleType.getText()+" AND (Lokale.Kapacitet) Between "+ KapacitetMin.getText() +" AND "+ KapacitetMax.getText() +" AND (Reservation.Dato)= "+ Dato.getText() + " AND (Reservation.Start) Not Between "+ StartTid.getText() + " And "+ SlutTid.getText());
Prøv at ret where til: " WHERE LokaleType.LokaleType Like "+LokaleType.getText()+" AND (Lokale.Kapacitet Between "+ KapacitetMin.getText() +" AND "+ KapacitetMax.getText() +") AND Reservation.Dato= "+ Dato.getText() + " AND (Reservation.Start Not Between "+ StartTid.getText() + " And "+ SlutTid.getText())+")";
Den sidste parentes i WHERE skal vel afslutte: ResultSet rs= s.executeQuery(
Jeg har så prøvet at flytte parentesen før + ud før ; , så det kommer til at hedde: " WHERE LokaleType.LokaleType Like "+LokaleType.getText()+" AND (Lokale.Kapacitet Between "+ KapacitetMin.getText() +" AND "+ KapacitetMax.getText() +") AND Reservation.Dato= "+ Dato.getText() + " AND (Reservation.Start Not Between "+ StartTid.getText() + " And "+ SlutTid.getText()+")");
Jeg har selv løst problemet vha. "#" og "'" i koden, ellers kan Access ikke finde ud af om det er en tal, streng, dato osv.
Der er dog opstået et andet problem ved min SELECT. Hvordan skriver man fra sql i java, at man vil lede i en specifik tabel. Eks. Tabel.TabelID Ved at skrive ligesom eksemplet får jeg en exception, som siger, at den ikke kan finde kolonnen
Dit svar kl. 15:23:48 fungerede ikke. Men jeg skal nok huske at oprette et nyt spørgsmål, når jeg selv finder svaret på det tidligere. Jeg har dog ikke modtaget noget fra dig, der fungerede, men du skal nok få pointene for din ulejlighed.
Synes godt om
Ny brugerNybegynder
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.