2010-05-25 26 views

Trả lời

3

Đáng tiếc là không. Tham số vị trí ('?') Là chính xác, được xác định bởi vị trí hoặc thứ tự xuất hiện của chúng trong truy vấn. Nếu bạn xóa 'IDFOLDER =?', Thì bạn sẽ chỉ định các tham số sai cho phần còn lại của truy vấn và có thể có ngoại lệ vì số tham số được gán không khớp với số được mong đợi trong truy vấn.

Tôi giả sử bạn không thể thay đổi mã nguồn, vì đó là tuyến đường đơn giản nhất - thay đổi SQL và sau đó là các tham số JDBC để khớp. Nếu bạn cần sử dụng cùng một số tham số, bạn có thể viết truy vấn theo cách không thay đổi giá trị của IDFOLDER, nhưng vẫn sử dụng tham số đầu tiên.

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

Nếu trình điều khiển JDBC của bạn hỗ trợ các tham số có tên, có thể cung cấp cho bạn một giải pháp thay thế sạch hơn.

4

Không, bạn không thể. Bạn cần phải có điều kiện chèn một phần của SQL vào chuỗi SQL khi cần thiết.

4

Không, bạn sẽ phải viết truy vấn thứ hai không bao gồm cột IDFOLDER. Tất cả các thông số phải được ràng buộc.

0

Các javadoc không rõ ràng nói rằng bạn có thể không, nhưng khi tôi thử nó, tôi có một ngoại lệ như thế này:

java.sql.SQLException: Parameter not set 
Các vấn đề liên quan