मैं अपने वेब ऐप में सीधे SQL क्वेरी का उपयोग करने से बचने की कोशिश कर रहा हूं। मैंने चारों ओर देखा और निष्कर्ष निकाला है कि एडीओ Recordset
एस नौकरी के लिए सबसे अच्छा या कम से कम सुरक्षित उपकरण होगा। मुझे डेटाबेस तालिका में रिकॉर्ड्स डालने की ज़रूरत है। दुर्भाग्य से मुझे नुकसान हुआ है कि रिकॉर्ड के लिए पहचान मूल्य कैसे प्राप्त किया जाए, जो अभी डाला गया था। यहाँ अब मैं क्या मिल गया है की कमी है:इस ADODB.Recordset से सम्मिलित आईडी कैसे प्राप्त करें?
<%
dim insertID, rs
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "my_table_name", conn, adOpenForwardOnly, adLockOptimistic
rs.AddNew()
Call m_map_values_to_rs(rs)
rs.Update()
insertID = rs("id")
rs.Close()
rs = Nothing
%>
कोड मैं सफलतापूर्वक रिकॉर्ड को सम्मिलित किया गया है, लेकिन मैं मुझे के जीवन के लिए बाहर नहीं समझ सकते हैं कि कैसे करने के लिए Recordset
की आईडी क्षेत्र पाने के लिए सम्मिलित करने के बाद अद्यतन करें। मैं इस Recordset
से पहचान कॉलम मान वापस कैसे प्राप्त कर सकता हूं?
अद्यतन - ऊपर दिए गए कोड के संबंध में समाधान यहां दिया गया है।
मुझे adOpenForwardOnly
के बजाय कर्सर प्रकार adOpenKeyset
में बदलना पड़ा। ऐसा करने के बाद रिकॉर्ड को स्वचालित रूप से "ऑटो नंबर" फ़ील्ड के सम्मिलित होने के बाद नए मान के साथ अपडेट किया जाता है। हालांकि यह आपको लगता है कि यह क्या है। rs("id")
का मान एक पूर्णांक या यहां तक कि एक संस्करण नहीं बनता है। यह Automation
प्रकार का कुछ प्रकार बन जाता है और इसे किसी संख्या के रूप में मूल्यांकन नहीं किया जा सकता है। न ही CInt() को किसी कारण से सीधे उस प्रकार इस्तेमाल किया जा सकता है। तो आपको वैल्यू को स्ट्रिंग में कनवर्ट करना होगा और फिर इसे Int
में परिवर्तित करना होगा। यहां बताया गया है कि मैंने कैसे प्रबंधित किया:
insertID = CInt(rs("id") & "")
उनके उत्तर के लिए डीई के लिए धन्यवाद। यह बहुत मदद की।
धन्यवाद पता है - कि बहुमूल्य जानकारी – Dee
पुराने धागा है, लेकिन रुपये ("आईडी") एक फील्ड वस्तु है। आपको आरएस ("आईडी") प्राप्त करने में सक्षम होना चाहिए। मूल्य – alfadog67