执行SQL语句异常
以下这个方法有什么问题吗?
//---------------------------------
bool TForm1::Update(AnsiString str)
{
int res ;
if ( this->ADOQuery1->Active ) {
this->ADOQuery1->Close() ;
}
try {
this->ADOQuery1->SQL->Clear() ;
this->ADOQuery1->SQL->Add(str) ;
res = this->ADOQuery1->ExecSQL() ;
this->ADOQuery1->Open() ;
return res > 0 ; //SQL语句正确并且执行成功,当却出异常?
}
catch ( ... ) {
ShowMessage("异常");
return false ;
}
}
[解决办法]
[解决办法]
ADOQuery1->ExecSQL()与ADOQuery1->Open()不要同时出现,这些是由SQL语句确定的。
ExecSQL()没有返回值,如果你是在记录集有记录时返回真值,这样的写法并不好,在SQL语句中用查询查找出符合条件的记录条数,Select Count(*) As num From Table1 Where "条件"。根据Query1->FieldByName("num")->AsInteger的值判断返回的值。
[解决办法]