# MySQL Befehl ausführen



## b0unc3 (28. Okt 2006)

na ihr, hab mal wieder n kleines prob  ..

also wenn ich diesen Befehl:


```
String sql = "INSERT INTO Rezepte" +
	"			(name, zutat1, zutat2, zutat3, zutat4, zutat5, zutat6, zutat7, zutat8, zutat9, zutat10, zutat11, zutat12, zutat13, zutat14, zutat15, zutat16, zutat17, zutat18, zutat19, zutat20)" +
	"		VALUES" +
	"			('" + z[0] + "', '" + z[1] + "', '" + z[2] + "', '" + z[3] + "', '" + z[4] + "', '" + z[5] + "', '" + z[6] + "', '" + z[7] + "', '" + z[8] + "', '" + z[9] + "', '" + z[10] + "', '" + z[11] + "', '" + z[12] + "', '" + z[13] + "', '" + z[14] + "', '" + z[15] + "', '" + z[16] + "', '" + z[17] + "', '" + z[18] + "', '" + z[19] + "', '" + z[20] + "');";
```

hier ausführen:


```
try {
			int res = state.executeUpdate(sql); 
		} catch ( SQLException e ) {
			JOptionPane.showMessageDialog(null, "Kann Rezept nicht eintragen");
			System.out.println(e);
		}
```

das z array wird hier befüllt


```
z[0]	=	tName.getText();
			z[1]	=	tZutat1.getText();
			z[2]	=	tZutat2.getText();
			z[3]	=	tZutat3.getText();
			z[4]	=	tZutat4.getText();
			z[5]	=	tZutat5.getText();
			z[6]	=	tZutat6.getText();
			z[7]	=	tZutat7.getText();
			z[8]	=	tZutat8.getText();
			z[9]	=	tZutat9.getText();
			z[10]	=	tZutat10.getText();
			z[11]	=	tZutat11.getText();
			z[12]	=	tZutat12.getText();
			z[13]	=	tZutat13.getText();
			z[14]	=	tZutat14.getText();
			z[15]	=	tZutat15.getText();
			z[16]	=	tZutat16.getText();
			z[17]	=	tZutat17.getText();
			z[18]	=	tZutat18.getText();
			z[19]	=	tZutat19.getText();
			z[20]	=	tZutat20.getText();
```

Hinweis: ich habe auch im ersten Feld nut einen String und in den letzten Feldern nur Integer eingetragen.. 

Ich bekomme beim eintragen folgenden Fehler:



> com.mysql.jdbc.MysqlDataTruncation: Data truncation: Out of range value adjusted for column 'zutat1' at row 1




weiß jemand was das heißt und wie ich das berichtigen kann?


----------



## SlaterB (28. Okt 2006)

ist es nicht möglich, erstmal

String sql = "INSERT INTO Rezepte" +
   "         (name, zutat1)" +
   "      VALUES" +
   "         ('" + z[0] + "', '" + z[1] + "')";

zu testen?
die anderen Zutaten werden doch hoffentlich nicht auf NOT NULL gesetzt sein..,

und dann ist es doch total logisch, erstmal diesen String auszugeben?!
System.out.println(sql);
das einfachste auf der Welt?!

nenene, man kann sich jeden Fehler auch so schwer wie möglich machen 

--------

Informationen über die Tabelle in der Datenbank wären auch hilfreich, z.B. Datentypen usw.,
am besten das Skript zur Erzeugung der Tabelle (aber bitte Zutat 2 bis 3745 durch (..) ersetzen)

--------

allgemein wäre es günstig, einen zweiten Zugang zur Datenbank zu haben,
eine SQL-Konsole oder sowas, wo du SQL-Befehle wie den, der bei 
System.out.println(sql);
rauskommt, zu testen,
ist das möglich?


----------



## b0unc3 (29. Okt 2006)

erstmal danke für deine antwort.. hab den fehler gefunden ich habe alles (auch die integer werte die ich eintragen will) in einem string array gehabt  :roll:  jetzt hab ich sie in nem int array und so gehts

jetzt hab ich aber noch ein problem:

wenn jetzt "scheinbar" alles erfolgreich eingetragen wurde steht der Name auf "null" und alle anderenw erte auf "0"

so wird das array und der name jetzt befüllt:




```
name	=	tName.getText();
			z[1]	=	Integer.parseInt(tZutat1.getText());
			z[2]	=	Integer.parseInt(tZutat2.getText());
			z[3]	=	Integer.parseInt(tZutat3.getText());
			z[4]	=	Integer.parseInt(tZutat4.getText());
			z[5]	=	Integer.parseInt(tZutat5.getText());
			z[6]	=	Integer.parseInt(tZutat6.getText());
			z[7]	=	Integer.parseInt(tZutat7.getText());
			z[8]	=	Integer.parseInt(tZutat8.getText());
			z[9]	=	Integer.parseInt(tZutat9.getText());
			z[10]	=	Integer.parseInt(tZutat10.getText());
			z[11]	=	Integer.parseInt(tZutat11.getText());
			z[12]	=	Integer.parseInt(tZutat12.getText());
			z[13]	=	Integer.parseInt(tZutat13.getText());
			z[14]	=	Integer.parseInt(tZutat14.getText());
			z[15]	=	Integer.parseInt(tZutat15.getText());
			z[16]	=	Integer.parseInt(tZutat16.getText());
			z[17]	=	Integer.parseInt(tZutat17.getText());
			z[18]	=	Integer.parseInt(tZutat18.getText());
			z[19]	=	Integer.parseInt(tZutat19.getText());
			z[20]	=	Integer.parseInt(tZutat20.getText());
```


----------



## b0unc3 (29. Okt 2006)

ok habs jetzt gelöst.. ich habe den String sql an den anfang des try catch blocks getan, wo ich auch den befehl ausführe


----------

