我在java中编写这个简单的类只是为了测试它的一些功能.
public class class1 {
public static Integer value=0;
public class1() {
da();
}
public int da() {
class1.value=class1.value+1;
return 5;
}
public static void main(String[] args) {
class1 h = new class1();
class1 h2 = new class1();
System.out.println(class1.value);
}
}
Run Code Online (Sandbox Code Playgroud)
输出是:
2
但是在这段代码中:
public class class1 {
public static Integer value=0;
public void class1() {
da();
}
public int da() {
class1.value=class1.value+1;
return 5;
}
public static void main(String[] args) {
class1 h = new class1();
class1 h2 = …Run Code Online (Sandbox Code Playgroud) 问题简介:
主要问题不在连接过程中,我可以成功连接到数据库,并在我的数据库中插入一些行(第一个代码块显示这个),但在关闭连接后,如果有人试图在数据库中插入一行,matlab将突然终止没有任何明确的错误消息,(我希望有一个功能来检查连接是否打开或关闭或获取错误消息来处理错误,但没有发生这些事情,只是因为致命的错误而关闭了matlab)
我写了以下代码连接到matlab中的MS SQL SERVER数据库:
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);
Run Code Online (Sandbox Code Playgroud)
一切都很好.
然后我试图插入另一行(以检查错误消息是什么)然后Matlab关闭(由于致命错误)而没有显示任何错误消息.
在插入新raw之前,我尝试使用以下函数来获取数据库连接的状态:
isconnection(conn);
ping(conn);
Run Code Online (Sandbox Code Playgroud)
但它说
未定义的函数'ping'表示'database.ODBCConnection'类型的输入参数.
对于'database.ODBCConnection'类型的输入参数,未定义的函数'isconnection'
即使我试图使用try-catch块,但它没有工作和Matlab关闭致命错误.
所以我想知道是否有任何方法来解决原生ODBC的状态,以防止在关闭连接的情况下突然关闭matlab?
更新:
>> 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'
Run Code Online (Sandbox Code Playgroud)
在关闭连接之前和之后没有更改任何属性或消息,问题是我不知道如果在程序的其他部分中连接仍然打开或关闭,如何检查!在这种情况下如果我在连接关闭之前使用插入命令,matlab突然终止(并显示消息MATLAB(R2013B)已停止工作),所以我想知道有没有办法检查本机odbc连接是否有关闭之前?
进一步更新
>> …Run Code Online (Sandbox Code Playgroud)