# [ACCESS ODBC] INSERT INTO Fehler



## eddi89 (3. Jun 2010)

Hallo zusammen,
ich erstelle z.Zt. eine JSP Anwendung, die auf eine Datenbank zugreift.
Abfragen etc. kriege ich wunderbar hin. Nur leider klappt die INSERT INTO Anweisung bei mir nicht.
Ausschnitt aus dem Code:

```
String sql=("INSERT INTO levelOne(ID,foreignLanguage, firstLanguage, secondAcceptation, thirdAcceptation, fourthAcceptation, fifthAcceptation, level, registered,exampleSentence) VALUES(?,?,?,?,?,?,?,?,?,?)");
			try 
			{
				java.sql.Date date=new java.sql.Date(0000-00-00);
				QueryUtilities.getCurrDate();
				String registeredDate=QueryUtilities.getDate();
				PreparedStatement pstmt=DatabaseUtilities.getConn().prepareStatement(sql);
				pstmt.setInt(1, id);
				pstmt.setString(2,foreignLanguageList.get(foreignLanguageIndex) );
				pstmt.setString(3,firstLanguageList.get(foreignLanguageIndex) );
				pstmt.setString(4,secondAcceptationList.get(foreignLanguageIndex) );
				pstmt.setString(5,thirdAcceptationList.get(foreignLanguageIndex) );
				pstmt.setString(6,fourthAcceptationList.get(foreignLanguageIndex) );
				pstmt.setString(7,fifthAcceptationList.get(foreignLanguageIndex) );
				pstmt.setInt(8, _LEVEL);
				pstmt.setDate(9,date.valueOf(registeredDate) );
				pstmt.setString(10, exampleSentenceList.get(foreignLanguageIndex));
				pstmt.executeUpdate();
```
Aufbau der Access DB:
ID - Zahl
foreignLanguage - Text
firstLanguage - Text
secondAcceptation - Text
thirdAcceptation - Text
fourthAcceptation - Text
fifthAcceptation - Text
level - Zahl
registered - Datum
learningDate - Datum
failed - Zahl
exampleSentence - Text

Ich kanns mir beim besten Willen langsam nicht mehr erklären...
Bis auf learningDate und failed sollen alle Felder gefüllt werden. Liegt es daran, dass ich 2 auslasse?
Manche Felder werden auch mit "" gefüllt, da keine Daten eingegeben wurden (und eig auch nicht zwangsweise sollen). Kann es das sein?

liebe Grüße,
eddi89


----------



## Antoras (3. Jun 2010)

Gibt es keine Fehlermeldung?

Ansonsten: ODBC mit Access ist ziemlicher Müll, das hat noch nie richtig funktioniert. Nimm JDBC und ein anderes DBMS.


----------



## eddi89 (3. Jun 2010)

Hallo Antoras,

Sorry! Es ist JDBC. War nur grad vorher in der ODBC Administration und muss wohlm so darauf gekommen sein.
Fehler: Syntaxfehler in der INSERT INTO-Anweisung.


----------



## Antoras (3. Jun 2010)

Also, da haben wir es doch. Füge ein 
	
	
	
	





```
System.out.println(sql)
```
 vor dein 
	
	
	
	





```
pstmt.executeUpdate()
```
 ein und guck dann wo der Syntax-Fehler auftritt.


----------



## eddi89 (3. Jun 2010)

Hi Antoras!
Vielen Dank.
Eben nach der Mittagspause kam mir die Idee:
Access kann nicht damit leben, wenn man etwas in die Spalte "level" eintragen möchte.
Abfragen etc. funktionieren jedoch.
Naja, umbenannt in Lektion und gut ist.

Aber trotzdem vielen Dank!!


----------

