2010-05-25 9 views

cevap

3

değil. Konumsal parametreler ('?'), Tam olarak, sorgudaki konumlarına veya sıra sırasına göre belirlenir. 'IDFOLDER =?' Öğesini kaldırırsanız, sorgunun kalan kısmına yanlış parametreleri atayacaksınız ve atanmış parametrelerin sayısı sorguda beklenen sayıyla eşleşmediğinden muhtemelen bir istisna alacaksınız.

Kaynak kodunu değiştiremeyeceğinizi varsayıyorum, çünkü en basit yol budur - SQL'i ve sonra da eşleşen JDBC parametrelerini değiştirin. Aynı sayıda parametreyi kullanmanız gerekiyorsa, sorguyu IDFOLDER değerini değiştirmeyecek şekilde yazabilirsiniz, ancak ilk parametreyi kullanır.

SET IDFOLDER=CASE ISNULL(?) WHEN 0 THEN IDFOLDER ELSE IDFOLDER END 

JDBC sürücünüz adlandırılmış parametreleri destekliyorsa, bu size daha temiz bir seçenek sunabilir.

4

Hayır yapamazsınız. Gerektiğinde SQL'in bu parçasını koşullu olarak SQL dizesine eklemeniz gerekir.

4

Hayır, IDFOLDER sütununu içermeyen ikinci bir sorgu yazmanız gerekecek. Bütün parametrelerin bağlı olması gerekir.

0

javadoc açıkça bunu yapamazsınız demiyor, ama bunu çalıştığında, böyle bir istisna var: Maalesef

java.sql.SQLException: Parameter not set