SQL Problem (insert)

dadom110

Erfahrenes Mitglied
Guten Tag zusammen,

habe folgendes Problem beim Dateneinfügen in eine Access Datenbank, die betroffene Tabelle hat 10 Spalten, von der die erste ein AutoWert ist (ich nehme an das Java damit ein Problem hat), alle anderen sind als "Text" deklariert.

Wenn ich mir mein SQL Statement baue, und das direkt in Access einfüge, funktioniert es:

Insert into tblmov(Titel,Dauer,Schauspieler,Produktinfo,Trailer,Trailer2,Beschreibung,Kategorie,Bild) values("ewr","rwer","werw","rewr","erewrwe","rwee","rwerwer","rewrwe","rwewre")

Wenn ich das ganze über Java handeln will, bekomm ich einen Parameter Fehler:

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 9 Parameter wurden erwartet, aber es wurden zu wenig Parameter übergeben.

Im Grunde bastel ich mir im Code nur das SQL Statement zusammen, aber hier mal beide Codeteile die ich probiert habe:

Code:
String sql="Insert into tblmov(Index,Titel,Dauer,Schauspieler,Produktinfo,Trailer,Trailer2,Beschreibung,Kategorie,Bild) values(";
				sql=sql + "\"";
				sql=sql+ "";
				sql=sql + "\",";
				sql=sql + "\"";
				sql=sql+ getTxt_titel().getText();
				sql=sql + "\",";
				sql=sql + "\"";
				sql=sql+ getTxt_dauer().getText();
				sql=sql + "\",";
				sql=sql + "\"";
				sql=sql+ getTxt_schauspieler().getText();
				sql=sql + "\",";
				sql=sql + "\"";
				sql=sql+ getTxt_produktinfo().getText();
				sql=sql + "\",";
				sql=sql + "\"";
				sql=sql+ getTxt_trailer1().getText();
				sql=sql + "\",";
				sql=sql + "\"";
				sql=sql+ getTxt_trailer2().getText();
				sql=sql + "\",";
				sql=sql + "\"";
				sql=sql+ getTxt_beschreibung().getText();
				sql=sql + "\",";
				sql=sql + "\"";
				sql=sql+ getTxt_kategorie().getText();
				sql=sql + "\",";
				sql=sql + "\"";
				sql=sql+ getTxt_bild().getText();
				sql=sql + "\")";
				System.out.println(sql);
				Vector vec=new Vector();
				result.einfuegen(sql);

und

Code:
String sql="Insert into tblmov(Titel,Dauer,Schauspieler,Produktinfo,Trailer,Trailer2,Beschreibung,Kategorie,Bild) values(";
				sql=sql + "\"";
				sql=sql+ getTxt_titel().getText();
				sql=sql + "\",";
				sql=sql + "\"";
				sql=sql+ getTxt_dauer().getText();
				sql=sql + "\",";
				sql=sql + "\"";
				sql=sql+ getTxt_schauspieler().getText();
				sql=sql + "\",";
				sql=sql + "\"";
				sql=sql+ getTxt_produktinfo().getText();
				sql=sql + "\",";
				sql=sql + "\"";
				sql=sql+ getTxt_trailer1().getText();
				sql=sql + "\",";
				sql=sql + "\"";
				sql=sql+ getTxt_trailer2().getText();
				sql=sql + "\",";
				sql=sql + "\"";
				sql=sql+ getTxt_beschreibung().getText();
				sql=sql + "\",";
				sql=sql + "\"";
				sql=sql+ getTxt_kategorie().getText();
				sql=sql + "\",";
				sql=sql + "\"";
				sql=sql+ getTxt_bild().getText();
				sql=sql + "\")";
				System.out.println(sql);
				Vector vec=new Vector();
				result.einfuegen(sql);

Also einmal mit Index Übergabe und einmal ohne, beides endet mit nem Paramter Konflikt, wie gesagt nehme an es liegt an dem AutoWert-Feld in der Access Datenbank, wie verwendet man das in Java?

Vielen dank
Dom
 
Zuletzt bearbeitet:
Hallo!

Lass die Autoincrement Felder bei deinem SQL Befehl weg....
Beispiel:
Eine Tabelle test mit den Spalten ID, Foo, Bar wobei ID eine Autowert Spalte ist.
Ein entsprechendes Insert Statement dazu schaut dann folgendermaszen aus:
INSERT INTO test (Foo,Bar) values ('foo','bar')

Btw. SQL Statements auf diese Art und Weise zusammenzuknaupen ist schon fast prähistorisch...

Gruss Tom
 
Thomas Darimont hat gesagt.:
Hallo!
Btw. SQL Statements auf diese Art und Weise zusammenzuknaupen ist schon fast prähistorisch...

Alt ist nicht immer schlecht, ist ein Überbleibsel aus meiner VB-Zeit... Ich mag meine SQL-Statement-Zusammenbau-Taktik, soll ich das ganze hintereieinander wegschreiben? Wie bewerkwstelligt es denn unser Guru ;) ? Ich hoffe eine Variante die auch ein normalsterblicher möglicherweise übernehmen kann :D

Grüße und schönes Wochenende
Dom

PS: Ich mach mal nicht "erledigt" damit Thomas mir aus meiner prähistorischen Phase helfen kann :D
PS#2: SQL Hat so geklappt, habs mal wieder vermasselt ;) lag an den doppelt Hochkommatar " durch ' ersetzt und fertig war das "Kunststück"
PS#3: Ich hab im Duden nachgesehen, konnte den Begriff "knaupen" nicht finden (wenn ich dich in Javafragen schon nicht verbessern kann, hab ich wenigstens meinen Duden parat
PS#4: Recherche erfolgreich: umgangssprachlich im Saarland: "Knaupen ist die Kunst, etwas so falsch zu machen, dass es wieder passt" aber das ist gar nicht falsch, ich bastel mir nur einen String zusammen....ahh ich brauch Wochenende, noch nen Edit gibts nicht :D
 
Zuletzt bearbeitet:
Zurück