समस्या का संक्षिप्त परिचय:matlab में देशी ओडीबीसी कनेक्शन की स्थिति की जांच कैसे करें?
मुख्य समस्या कनेक्शन प्रक्रिया में नहीं है, मैं सफलतापूर्वक डेटाबेस से कनेक्ट कर सकता है, और मेरे डेटाबेस में कुछ पंक्तियां सम्मिलित (एफआईआर कोड ब्लॉक इस से पता चलता है), लेकिन बाद यदि कोई डेटाबेस में कोई पंक्ति डालने का प्रयास करता है तो कनेक्शन बंद करना, मैटलैब बिना किसी स्पष्ट त्रुटि संदेश के अचानक समाप्त हो जाएगा, (मुझे लगता है कि कनेक्शन खुला है या बंद है या त्रुटि को संभालने के लिए त्रुटि संदेश प्राप्त करने के लिए कोई फ़ंक्शन है लेकिन इनमें से कोई भी नहीं हुआ और केवल घातक त्रुटि के कारण मैटलैब बंद हुआ)
मैं matlab में एमएस SQL सर्वर डाटाबेस से कनेक्ट करने के लिए निम्न कोड लिखा है:
conn=database.ODBCConnection('MS SQL SERVER','','');
insert(conn,'trace',{'obj_id','obj_type_id','time_step','pos_x','pos_y','vel_x','vel_y'},[1,1,1,0,0,0,0]);
close(conn);
और हर चीज ठीक था।
तो मैंने त्रुटि संदेश त्रुटि संदेश देखने के लिए एक और पंक्ति (डालने का प्रयास किया) तो मैटलैब बंद हुआ (घातक त्रुटि के कारण) कोई त्रुटि संदेश दिखाए बिना।
मैं निम्नलिखित कार्य नई raws डालने से पहले डेटाबेस कनेक्शन की स्थिति प्राप्त करने के लिए उपयोग करने के लिए करने की कोशिश की:
isconnection(conn);
ping(conn);
लेकिन यह कहते
अपरिभाषित समारोह प्रकार के इनपुट तर्क के लिए 'पिंग' 'डेटाबेस .ODBCConnection '।
प्रकार 'database.ODBCConnection'
के इनपुट तर्क के लिए अपरिभाषित समारोह 'isconnection' भी मैं कोशिश-कैच ब्लॉक का उपयोग करने की कोशिश की, लेकिन यह काम नहीं किया और मैटलैब बंद गंभीर त्रुटि के लिए।
इसलिए मैं जानना चाहता हूं कि बंद कनेक्शन के मामले में अचानक मैटलैब के करीब बंद होने से देशी ओडीबीसी की चेक स्थिति का कोई तरीका है ??
अद्यतन:
>> conn=database.ODBCConnection('MS SQL SERVER','','')
conn =
ODBCConnection with properties:
Instance: 'MS SQL SERVER'
UserName: ''
Message: []
Handle: [1x1 database.internal.ODBCConnectHandle]
TimeOut: 0
AutoCommit: 0
Type: 'ODBCConnection Object'
>> close(conn)
>> conn
conn =
ODBCConnection with properties:
Instance: 'MS SQL SERVER'
UserName: ''
Message: []
Handle: [1x1 database.internal.ODBCConnectHandle]
TimeOut: 0
AutoCommit: 0
Type: 'ODBCConnection Object'
कोई गुण या संदेश से पहले बदल गया है और कनेक्शन बंद करने के बाद, समस्या मैं कैसे जांच करने के लिए नहीं पता है कि अगर एक कनेक्शन है कि अभी भी एक कार्यक्रम के अन्य हिस्सों में खुला या बंद! इस मामले में यदि कोई कनेक्शन बंद होने पर मैं एक सम्मिलित आदेश का उपयोग करता हूं, मैटलैब अचानक समाप्त हो जाता है (और संदेश दिखाएं MATLAB (R2013B) ने काम करना बंद कर दिया है), इसलिए मैं जानना चाहता हूं कि मूल ओडीबीसी कनेक्शन पहले बंद कर दिया है?
इसके अलावा अद्यतन
>> conn=database('MS SQL SERVER','','')
conn =
Instance: 'MS SQL SERVER'
UserName: ''
Driver: []
URL: []
Constructor: [1x1 com.mathworks.toolbox.database.databaseConnect]
Message: []
Handle: [1x1 sun.jdbc.odbc.JdbcOdbcConnection]
TimeOut: 0
AutoCommit: 'on'
Type: 'Database Object'
>> isconnection(conn)
ans =
1
>> close(conn)
>> isconnection(conn)
ans =
0
मैं "isconnection" JDBC कनेक्शन जो 1 लौटाता है यदि एक कनेक्शन है, तो कनेक्शन से पहले बंद कर दिया खुला है और 0 के लिए उपरोक्त उदाहरण की तरह एक समारोह मतलब है।
tnx एक बहुत, मैं अपने जवाब के जवाब में सवाल अद्यतन, मुझे लगता है कि matlab में या "देशी ODBC" परत में त्रुटि तब, इसलिए वहाँ कनेक्शन वस्तु में कोई संदेश, –