# PreparedStatement - anzahl ParameterValues



## bronks (30. Jan 2005)

Ich benutze ein PreparedStatement:


```
String sql = ... blabla ...
PreparedStatement pstmt = conn.prepareStatement(sql)
pstmt.setString(1, ... blabla ...);
... blabla blabla ...
```

ParameterValues, wie auch staticSqlStrings gibt es nur 6 bzw. 7 Stück. Ich brauche aber 16 bzw. 17. Hab im Net schon ausgiebig gesucht. Gefunden habe ich nur Beispiele mit 2 ParameterValues und ähnliches Kleinzeug.

Sobald man das 7te ParameterValue füllt bekommt man auch diese elegante Fehlermeldung, die eigentlich auch alles sagt: java.sql.SQLException: Parameter index out of range (7 > number of parameters, which is 6).

Was muß ich tun, damit ich mehr als 6 ParameterValues verwenden kann?


----------



## abollm (30. Jan 2005)

Was für eine DB nutzt du und mit welchem Treiber gehst du an die DB?


----------



## bronks (30. Jan 2005)

abollm hat gesagt.:
			
		

> Was für eine DB nutzt du und mit welchem Treiber gehst du an die DB?


Mysql mit mysql-connector-java-3.0.16-ga-bin.jar

Könnte es daran liegen?


----------



## Bleiglanz (31. Jan 2005)

in deinem SQL sind wohl nur sechs ?

da kannst du kein setXXX(7,wert) machen...


----------



## bronks (31. Jan 2005)

Bleiglanz hat gesagt.:
			
		

> in deinem SQL sind wohl nur sechs ?
> 
> da kannst du kein setXXX(7,wert) machen...


Problem gelöst! Ich habe 16 ? im SQL schon immer dringehabt. Nur dummerweise habe ich einge ? mit ' eingeschlossen ...  :noe:  Aber, die unsinnige Reihenfolge der der 6 ParamValues fällt einem erst in der 100ten Debugsession auf.


----------



## bronks (31. Jan 2005)

Gibt es eine Möglichkeit dem PreparedStatement den SQL-String zu entlocken, welcher an die DB geschickt wird?


----------



## Bleiglanz (1. Feb 2005)

leider nein 

das wollte ich auch schon IMMER, aber die API gibts wohl nicht her

=> vielleicht protokollierung der DB aktivieren und dort nachschauen

=> oder den Quelltext des Treibers besorgen, das Statement in die konkrete Implementierungsklasse "runtercasten" und vielleicht dort Glück haben


----------

