# Bei Insert nicht alles übergeben



## Vril (19. Aug 2005)

Hallo,

ich hab eine Access Datenbank, mit den Spalten Name, Vorname und Nr. Nr ist in Access als AutoWert und PK definiert.

Jetzt möchte ich in die DB schreiben, das mache ich wie folgt:

```
"INSERT INTO test VALUES ("+Name+",'"+Vorname+"')");
```
So bekomme ich aber eine Fehlermeldung weil nicht alle Spalten in der *.mdb gefüllt werden. In die Spalte Nr möchte ich aber von Java aus nichts reinschreiben da ja hier die Verwaltung Access übernimmt. 

Wie stelle ich es an damit das funktioniert?


----------



## DP (19. Aug 2005)

insert into tab (spatle1, spalte 5) values ('wert1', 'wert5');

ferner würde ich an deiner stelle mit stringbuffer arbeiten und nicht mit string + sting + string


----------



## Vril (20. Aug 2005)

Thx. Anscheinend geht das sonst nich anders!


----------



## bronks (20. Aug 2005)

DP hat gesagt.:
			
		

> ... ferner würde ich an deiner stelle mit stringbuffer arbeiten und nicht mit string + sting + string


Das ist interessant. Hättest Du evtl. einen Link zu einem passenden Beispiel? Danke!


----------



## DP (21. Aug 2005)

nicht 


```
String s = "ich" + "bin" + "ein" + "string";
```

sondern


```
StringBuffer sb = new StringBuffer("ich");
sb.append("bin");
sb.append("ein");
sb.append("stringbuffer");
```


----------



## Guest (21. Aug 2005)

Schau dir lieber PreparedStatement an.


----------



## DP (21. Aug 2005)

wieso "lieber"?


----------



## Guest (22. Aug 2005)

DP hat gesagt.:
			
		

> wieso "lieber"?


Wieso nicht? :bae:
Erstens macht es keinen Sinn überall mit StringBuffer Strings zusammen zu tackern,
wenn es nicht gerade um Batchbetrieb geht. Besteht hier ein Grund zur Optimierung?
Zweitens ist eine Lösung mit PS weniger Fehleranfällig (denke allein schon an die Formatierung
von Timestamp/Date/Datetime etc.), übersichtlicher, leichter änderbar, und letztendlich
auch schneller.


----------



## DP (22. Aug 2005)

eben. prepared stmt ist nur bei massen-dml sinnvoll, nicht bei einem insert am tag.

ferner verstehe ich nicht was der stringbuffer mit prepared stmt zu tun hat. auch dort kommt es vor, dass man sich seine strings zusammentackern muss.

das eine hat mit dem anderen nichts zu tun.


----------

