2011-03-31 12 views
8

मैं अपने वेब ऐप में सीधे 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") & "") 

उनके उत्तर के लिए डीई के लिए धन्यवाद। यह बहुत मदद की।

+0

धन्यवाद पता है - कि बहुमूल्य जानकारी – Dee

+1

पुराने धागा है, लेकिन रुपये ("आईडी") एक फील्ड वस्तु है। आपको आरएस ("आईडी") प्राप्त करने में सक्षम होना चाहिए। मूल्य – alfadog67

उत्तर

3

यह आलेख उदाहरण कोड के साथ पहचान मान प्राप्त करने के साधन बताता है। आप के बाद और अधिक मदद की जरूरत है यह हमें अद्यतन के लिए

+0

धन्यवाद, मैंने उसे देखा/स्किम किया था लेकिन जाहिर है कि मैंने अंतिम भाग की प्रासंगिकता को याद किया था। – sholsinger

+0

मैं उस फील्ड वैल्यू के साथ एक समस्या में भाग गया जो उसके बाद लौटा दिया गया था। मैंने इसे कैसे संभाला है इसके लिए प्रश्न देखें। – sholsinger

+4

इस उत्तर में यूआरएल अब और काम नहीं करता है। – lpacheco