दिलचस्प पोस्ट
जावा स्ट्रिंग टू SHA1 नीचे दाएं कोने पर बॉर्डरलेस विंडो का आकार बदलें आप ActionBarSherlock में मल्टी-चयन और प्रासंगिक क्रिया मोड कैसे लागू कर सकते हैं? PHP में फ़ाइल करने के लिए एक नई पंक्ति लेखन आप पहले से ही एक्स सक्रिय कर चुके हैं, लेकिन आपके Gemfile को वाई की आवश्यकता है श्रोताओं का उपयोग करते हुए एएनएएनएलआरआर में / अगर अन्य बयान मैं एक चुनिंदा बॉक्स के विकल्पों को पॉप्यूलेट करने के लिए JSON डेटा का उपयोग कैसे कर सकता हूं? Google Compute Engine में विशिष्ट पोर्ट 9 9090 में कैसे खोलें सी # से कोड सी + + के लिए संभव है? .NET का उपयोग करना, आप फ़ाइल हस्ताक्षर के आधार पर फ़ाइल का माइम प्रकार कैसे प्राप्त कर सकते हैं, विस्तार नहीं उचित संस्कृति के साथ स्ट्रिंग को दोहरे रूपांतरित करने के लिए कैसे करें टेम्पलेट क्लास में टेम्पलेट फंक्शन के स्पष्ट विशेषज्ञता के लिए सी ++ सिंटैक्स? 'स्ट्रक्चर' को 'और ' में कैसे परिवर्तित किया जाए? त्रुटि कोड: 2013. क्वेरी के दौरान MySQL सर्वर से कनेक्शन खो गया कैसे सी # में डेस्कटॉप पर प्रभावी ढंग से आकर्षित?

तालिका नाम सेट करने के लिए तैयार वक्तव्य का उपयोग करना

मैं से डेटा का चयन करने के लिए एक टेबल नाम सेट करने के लिए तैयार बयान का उपयोग करने की कोशिश कर रहा हूं, लेकिन जब मैं क्वेरी निष्पादित करता हूं तो मुझे एक त्रुटि मिलती रहती है

त्रुटि और नमूना कोड नीचे प्रदर्शित किया गया है

[Microsoft][ODBC Microsoft Access Driver] Parameter 'Pa_RaM000' specified where a table name is required. private String query1 = "SELECT plantID, edrman, plant, vaxnode FROM [?]"; //?=date public Execute(String reportDate){ try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn = DriverManager.getConnection(Display.DB_MERC); PreparedStatement st = conn.prepareStatement(query1); st.setString(1, reportDate); ResultSet rs = st.executeQuery(); 

क्या हो सकता है इस पर कोई विचार?

Solutions Collecting From Web of "तालिका नाम सेट करने के लिए तैयार वक्तव्य का उपयोग करना"

एक तालिका नाम का पैरामीटर के रूप में उपयोग नहीं किया जा सकता यह मुश्किल कोडित होना चाहिए। तो आप ऐसा कुछ कर सकते हैं:

 private String query1 = "SELECT plantID, edrman, plant, vaxnode FROM [" + reportDate + "?]"; 

यह एक वैकल्पिक हल के साथ तकनीकी रूप से संभव है, लेकिन बहुत खराब अभ्यास।

 String sql = "IF ? = 99\n"; sql += "SELECT * FROM first_table\n"; sql += "ELSE\n"; sql += "SELECT * FROM second_table"; PreparedStatement ps = con.prepareStatement(sql); 

और फिर जब आप first_table से चयन करना चाहते हैं तो आप पैरामीटर को सेट करते हैं

 ps.setInt(1, 99); 

या यदि नहीं, तो आप इसे कुछ और करने के लिए सेट करें

जैसा कि कई लोगों ने कहा है, आप किसी तालिका के नाम के लिए एक स्टेटमेंट पैरामीटर का उपयोग नहीं कर सकते, केवल हालत के भाग के रूप में चर के लिए।

इस तथ्य के आधार पर आपके पास कम से कम दो तालिका नामों के साथ एक चर तालिका नाम है, शायद यह एक विधि बनाने के लिए सबसे अच्छा होगा जो आपके द्वारा संग्रहीत इकाई लेता है और एक तैयार कथन वापस करता है

 PreparedStatement p = createStatement(table); 

मुझे यकीन नहीं है कि आप तालिका का नाम निर्दिष्ट करने के लिए तैयार किए गए स्थान का उपयोग कर सकते हैं, बस कुछ फ़ील्ड के मान वैसे भी, आप एक ही प्रश्न की कोशिश कर सकते हैं लेकिन, कोष्ठक के बिना:

 "SELECT plantID, edrman, plant, vaxnode FROM ?" 
 String table="pass"; String st="select * from " + table + " "; PreparedStatement ps=con.prepareStatement(st); ResultSet rs = ps.executeQuery(); 

तालिका के नाम को एक चर के रूप में पास करने का एक तरीका है

स्ट्रिंग नेमऑफ़टेबल = "test.Employee";

स्ट्रिंग Fquery = "SELECT * FROM" + NameOfTable + "जहां हो गया = 'नहीं'";

ध्यान दें: एफओआर से और बाद में "और बीच" और जहां कीवर्ड के बीच एक स्थान होना चाहिए