如何捕捉TDatabase的错误。

时间:2022-11-20 22:28:56
当使用TDatabase打开数据库是,需要提供口令和用户名。如果打开远程数据库还要提供服务器名称。但是有时这些信息会随时发生变化,就需要在运行是改变这些参数。当提供的参数不正确时就会发生错误,我们如何捕获这些错误,给用户提供重新输入参数的机会。使得我们的程序的纠错能力得到提高,适应性也得到提高。关键的一点就是如何捕获TDatabase在Open()时发生的错误。向各位请教一下这个问题的解答方案。

9 个解决方案

#1


用try(){....}catch(...){....}不得吗

#2


应该Catch哪一种错误类型呢?请进一步说明。

#3


http://expert.csdn.net/Topic/11881.shtm

#4


这里所说的是针对TDatabase的错误处理,而不是别的对象的错误处理。在TDatabase中似乎没有提供错误处理的相关信息。我用的是BCB4.0从帮助上看他只有一个事件OnLogin.

#5


还有谁能帮忙啊。Who can help me?

#6


try
{
.....
}
catch(EDatabaseError& error)
{
   ...
}

#7


try
try
{
.....
}
catch(EDatabaseError &E)
{
  ...
}
catch(...)
{
...
}
基本同意ploto!

#8


do{
    try{
        Database1->Connected=true;
    }
    catch(...){
        // 提示用户输入连接参数
        // 如果用户选择放弃则 break;
    }
} while(!Database1->Connected)

#9


Ok,完全解决。Thanks.

#1


用try(){....}catch(...){....}不得吗

#2


应该Catch哪一种错误类型呢?请进一步说明。

#3


http://expert.csdn.net/Topic/11881.shtm

#4


这里所说的是针对TDatabase的错误处理,而不是别的对象的错误处理。在TDatabase中似乎没有提供错误处理的相关信息。我用的是BCB4.0从帮助上看他只有一个事件OnLogin.

#5


还有谁能帮忙啊。Who can help me?

#6


try
{
.....
}
catch(EDatabaseError& error)
{
   ...
}

#7


try
try
{
.....
}
catch(EDatabaseError &E)
{
  ...
}
catch(...)
{
...
}
基本同意ploto!

#8


do{
    try{
        Database1->Connected=true;
    }
    catch(...){
        // 提示用户输入连接参数
        // 如果用户选择放弃则 break;
    }
} while(!Database1->Connected)

#9


Ok,完全解决。Thanks.