From fccb838455e9b4bb05f7b290cea1e77f301bbd19 Mon Sep 17 00:00:00 2001 From: rosenfield Date: Fri, 5 Oct 2007 13:03:24 +0000 Subject: [PATCH] Bugfix: Handle errors which happen during "async" query execution. --- source/mysqlquerythread.pas | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/source/mysqlquerythread.pas b/source/mysqlquerythread.pas index b0a382a1..bfe4d5e7 100644 --- a/source/mysqlquerythread.pas +++ b/source/mysqlquerythread.pas @@ -231,18 +231,24 @@ begin end; end; end else begin - if ExpectResultSet(FSql) then begin - r := RunDataQuery (FSql,TDataSet(q),ex,FCallback); - if r then begin - if q.State=dsBrowse then begin - // WTF? + try + if ExpectResultSet(FSql) then begin + r := RunDataQuery (FSql,TDataSet(q),ex,FCallback); + if r then begin + if q.State=dsBrowse then begin + // WTF? + end; end; - end; - end else r := RunUpdateQuery (FSql,TDataSet(q),ex,FCallBack); - TMysqlQuery(FOwner).SetMysqlDataset(q); + end else r := RunUpdateQuery (FSql,TDataSet(q),ex,FCallBack); + TMysqlQuery(FOwner).SetMysqlDataset(q); - if r then SetState (MQR_SUCCESS,'SUCCESS') - else SetState (MQR_QUERY_FAIL,ex.Msg); + if r then SetState (MQR_SUCCESS,'SUCCESS') + else SetState (MQR_QUERY_FAIL,ex.Msg); + except + on E: Exception do begin + SetState (MQR_QUERY_FAIL,Format('%s', [E.Message])); + end; + end; end; end;