2010-05-25 18 views

उत्तर

3

दुर्भाग्य से नहीं। पोजिशनल पैरामीटर ('?') बिल्कुल वही हैं, जो उनकी स्थिति या क्वेरी में उपस्थिति के क्रम से पहचाने जाते हैं। यदि आप 'IDFOLDER =?' को हटाते हैं, तो आप शेष पैरामीटर को गलत पैरामीटर असाइन करेंगे, और संभवतः एक अपवाद प्राप्त होगा क्योंकि असाइन किए गए पैरामीटर की संख्या क्वेरी में अपेक्षित संख्या से मेल नहीं खाती है।

मुझे लगता है कि आप स्रोत कोड नहीं बदल सकते हैं, क्योंकि यह सबसे आसान मार्ग है - एसक्यूएल और फिर जेडीबीसी पैरामीटर को मिलान करने के लिए बदलें। यदि आपको पैरामीटर की एक ही संख्या का उपयोग करने की आवश्यकता है, तो आप क्वेरी को ऐसे तरीके से लिख सकते हैं जो IDFOLDER के मान को नहीं बदले, फिर भी पहले पैरामीटर का उपयोग करता है।

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

यदि आपका जेडीबीसी ड्राइवर नामित पैरामीटर का समर्थन करता है, तो यह आपको क्लीनर विकल्प दे सकता है।

4

नहीं, आप नहीं कर सकते। आवश्यकता होने पर आपको SQL स्ट्रिंग में एसक्यूएल के उस हिस्से को सशर्त रूप से डालने की आवश्यकता है।

4

नहीं, आपको एक दूसरी क्वेरी लिखनी होगी जिसमें IDFOLDER कॉलम शामिल नहीं है। सभी मानकों को बाध्य होना है।

0

जावाडोक स्पष्ट रूप से कहते हैं कि यह नहीं है कि आप नहीं कर सकते कि, लेकिन जब मैं इसे करने की कोशिश, मैं इस तरह एक अपवाद है:

java.sql.SQLException: Parameter not set 
संबंधित मुद्दे