दिलचस्प पोस्ट
एन्कोड और पायसपार्क में कई विशेषताएं इकट्ठा करें टास्क बनाम थ्रेड अंतर एंड्रॉइड लॉक स्क्रीन विजेट किसी अन्य डोमेन के लिए कुकी कैसे सेट करें Android पर 'संदर्भ' क्या है? सी # में कमांड-लाइन आर्ग्यूमेंट पास करना एक वेब अनुप्रयोग में डिवाइस प्रकार का पता लगा रहा है मैं वर्तमान उपयोगकर्ता के "एप्लिकेशन डेटा" फ़ोल्डर का पथ कैसे प्राप्त करूं? सी # रेग्युलर एक्सप्रेशन, सिंगल कोट्स के बीच की स्ट्रिंग दो SQL सर्वर डेटाबेस की तुलना करने के लिए एक नि: शुल्क उपकरण क्या है? स्विफ्ट में सादा पाठ को एचटीएमएल में कनवर्ट करें अजगर – स्थानीय डेटटाइम के लिए UTC डेटटाइम स्ट्रिंग कन्वर्ट करें फ़ंक्शन से अनन्य आईपीटीआर रिटर्निंग पासवर्ड को एक निर्देशिका की सुरक्षा और यह सब सबफ़ोल्डर्स .htaccess का उपयोग कर रहा है एचटीटीपी क्लाइंट को अनुरोध के साथ क्रेडेंशियल पास कैसे करें?

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

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

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

[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(); 

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

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

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

 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 + "जहां हो गया = 'नहीं'";

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