2010-07-23 10 views
5

हम Windows 2003 सर्वर पर एक DataSnap डेल्फी 2009 अनुप्रयोग चलाते हैं। डेटास्नाप क्लाइंट और सर्वर उसी कंप्यूटर पर हैं, जो डीआरओएम का उपयोग बोर्लैंड सॉकेट्सवर पर करते हैं। ग्राहक पृष्ठभूमि बैच नौकरी चलाता है।मैं डेल्फी DataSnap त्रुटि संदेश संवाद कैसे दबाने सकते?

कभी कभी, हमें पता चलता है कि ग्राहक सर्वर अनुप्रयोग से कनेक्ट नहीं कर सकता है और सर्वर डेस्कटॉप उदाहरण के लिए यह दर्शाता है पर एक संदेश संवाद प्रदर्शित करता है "सर्वर से कनेक्ट नहीं किया जा सका। नेटवर्क पथ नहीं पाया जा सका।" या "ऑब्जेक्ट एक्सपोर्टर नहीं मिला।"

हमारे डेल्फी क्लाइंट कोड त्रुटियों या अपवादों को दिखाने के लिए कभी भी एक संदेश संवाद का उपयोग नहीं करते हैं, इसके बजाय हम कोशिश करते हैं ... को छोड़कर .. अंत में ... कनेक्ट त्रुटियों को संभालने के लिए अंत और लॉगिंग, इसलिए मुझे लगता है कि संवाद एक द्वारा बनाया गया है डेटा स्नैप विधि। क्या इस मॉडल संवाद बॉक्स को दबाने का कोई तरीका है?

अद्यतन:

while True do 
    begin 
    Connect; 
    while True do 
    begin 
     try 
     DoMyWork; 
     except 
     Break; 
     end; 
    end; 
    Disconnect; 
    end; 

उत्तर

3

समाधान 1) शायद एक वैश्विक हुक: सभी अपवादों को निचले स्तर दिनचर्या में नियंत्रित किया जाता है, मुख्य पाश से डिस्कनेक्ट करने और जब एक अपवाद उठाया है फिर से कनेक्ट करने का ख्याल (संभाला या बिना क्रिया) लेता है अधिक application.onexception समस्या संभाल कर सकते हैं

http://www.chami.com/tips/delphi/011497D.html

समाधान 2)

से जहां अनुप्रयोग है कि त्रुटि उठाना पता लगाने के लिए आदेश में EurekaLog या MadExcept का उपयोग करें, और त्रुटि को संभाल।

समाधान 3)

आवेदन संदेश संवाद पर एक वैश्विक हुक, एक हुक उदाहरण bellow है

http://delphi.about.com/gi/o.htm?zi=1/XJ&zTi=1&sdn=delphi&cdn=compute&tm=43&f=22&su=p284.9.336.ip_p504.1.336.ip_&tt=2&bt=1&bts=1&zu=http%3A//www.delphicorner.f9.co.uk/articles/apps7.htm

आप सभी आवेदन के संदेश को क्वेरी, और जब आप उस खिड़की तो पकड़ आप पर कार्रवाई संदेश आवेदन नहीं है। क्योंकि मैं अब समय नहीं है मैं वास्तव में नहीं जानता कि जो wmessage messagedlg द्वारा उठाए गए है।

आशा व्यक्त की कि मदद की।

सादर,

+0

आवेदन madExcept और अपवाद लॉगिंग का उपयोग करता है, ऐसा लगता है कोई अपवाद नहीं है जब त्रुटि संदेश बॉक्स प्रकट होता है फेंक दिया जाता है – mjn

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