2009-08-06 9 views
9

मैं एक डेल्फी 7 एप्लिकेशन लिख रहा हूं जिसे एक ही SQL सर्वर डेटाबेस को कई अलग-अलग धागे से एक्सेस करने की आवश्यकता है।क्या डेल्फी का टैडोकोनक्शन थ्रेड-सुरक्षित है?

क्या मैं एक साझा साझा TADOConnection का उपयोग कर सकता हूं, या प्रत्येक धागे को अपना स्वयं का बनाना चाहिए?

उत्तर

18

ब्लॉर्गबीर्ड, आपको अपने प्रत्येक थ्रेड के लिए अलग TAdoconnection इंस्टेंस बनाना, प्रारंभ करना और खोलना होगा।

एडीओ एक COM- आधारित तकनीक है। यह अपार्टमेंट-थ्रेडेड ऑब्जेक्ट्स का उपयोग करता है, को कॉल करना प्रारंभ करें (शून्य)।

procedure TMyThread.Execute; 
begin 
    CoInitialize(nil); 
    try 
    try 
     // create a connection here 
    except 
    end; 
    finally 
    CoUnInitialize; 
    end; 
end; 
9

नहीं, ऐसा नहीं है। एडीओ एक COM- आधारित तकनीक है। यह अपार्टमेंट-थ्रेडेड ऑब्जेक्ट्स का उपयोग करता है, इस प्रकार आप थ्रेड सीमाओं में एडीओ कनेक्शन का उपयोग नहीं कर सकते हैं। प्रत्येक थ्रेड को अपने कनेक्शन की आवश्यकता होती है।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^