2010-01-12 14 views
5

पर अलग डीबीएक्स कनेक्शन मैंने एक छोटा ऐप बनाया जो डीबीएक्स का उपयोग कर एक mysql डीबी से जुड़ता है। यह मेरे स्थानीय mysql सर्वर के साथ ठीक काम करता है, लेकिन यह एक दूरस्थ सर्वर के साथ काम करना चाहिए।थ्रेड

रिमोट सर्वर से कनेक्ट करने से कुछ सेकंड लगते हैं, जो ऐप को फ्रीज करता है।

तो मेरा सवाल यह है कि, मैं कनेक्शन कोड को एक अलग थ्रेड में कैसे रख सकता हूं?

मुझे उस कनेक्शन को किसी भी तरह से मुख्य धागे से पास करना होगा, ताकि मेरे मुख्य फॉर्म पर डीबीग्रिड काम कर सके।

मैंने पढ़ा है कि एक अलग थ्रेड में काम कर रहे डीबी सामानों के अपने कनेक्शन होना चाहिए। तो मुझे यकीन नहीं है कि मैं क्या चाहता हूं।

कोई विचार? दूरस्थ सर्वर के साथ काम करने के बारे में पढ़ने के लिए कुछ भी?

धन्यवाद।

संपादित करें: मैं जिस घटक पर उपयोग कर रहा हूं वे हैं: TSQLConnection -> TSimpleDataSet> TDataSource> TDBGrid।

+0

क्या उपयोगकर्ता स्थापित करने के लिए कनेक्शन की प्रतीक्षा करते समय उपयोगी रूप से आपके प्रोग्राम से बातचीत कर सकता है? –

+0

अच्छा, वास्तव में नहीं, शायद "रद्द करें" बटन होना चाहिए, लेकिन नहीं। मैं सिर्फ ऐप फ्रीजिंग के बिना "कनेक्टिंग" संदेश दिखाना चाहता हूं। – Mario

उत्तर

0

यह वास्तव में रेड स्टूडियो में बहु धागा Apps करने के लिए मुझे मदद मिली है Writing multi-threaded applications Index

अगर उनकी किसी भी बात किसी और पद और बीमार कोशिश में मदद करने के

+0

मैं सहायता के उस अनुभाग को पढ़ रहा हूं, लेकिन मुझे अभी भी यकीन नहीं है कि एक अलग थ्रेड में डीबीएक्स कनेक्शन बनाने और इसे मुख्य थ्रेड के साथ साझा करने के बारे में कैसे जाना है। – Mario

1

आप केवल धागा प्रति कनेक्शन की आवश्यकता अपने सूत्र हैं एक साथ डेटाबेस पहुंच करने जा रहा है। मूल रूप से आप जो चाहते हैं, कनेक्ट करने के लिए थ्रेड के लिए है, और कनेक्शन स्थापित होने पर आप पर वापस आते हैं। आप इसे थ्रेड में कर सकते हैं, और जब थ्रेड तैयार होता है (यानी कनेक्शन स्थापित होता है), तो यह मुख्य थ्रेड पर एक संदेश भेज सकता है ताकि यह पता चल सके कि डीबीएक्स कनेक्शन अब उपलब्ध है। धागे को कैसे सेट अप करें, और थ्रेड और मुख्य वीसीएल थ्रेड के बीच संवाद करने के विचारों के लिए इस ट्यूटोरियल को देखें। Threading Tutorial

+0

+1 हां, नेटवर्क कनेक्शन जैसे संसाधन मल्टी-थ्रेडेड ऐप्स में सिंक से बाहर हो सकते हैं। एफ़टीपी कनेक्शन, फ़ाइल प्वाइंटर्स इत्यादि पर भी लागू होता है इसलिए प्रति थ्रेड एक अलग संसाधन बनाने का तरीका है। –

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