@@ -177,6 +177,17 @@ void CServiceTabStatistics::onStartStatistics()
177177 return ;
178178 }
179179
180+ auto handle_error = [&](const char * text, int sqlcode = 0 , int fbcode = 0 )
181+ {
182+ writeFooterToLogFile ();
183+ EnableWindow (GetDlgItem (hDlg, IDOK ), TRUE );
184+ EnableWindow (GetDlgItem (hDlg, IDC_BUTTON_VIEW_LOG ), !logPathFile.IsEmpty ());
185+
186+ char buffer[1024 ];
187+ sprintf (buffer, " sqlcode %d, fbcode %d - %s" , sqlcode, fbcode, text);
188+ MessageBox (NULL , buffer, TEXT (" Error!" ), MB_ICONERROR | MB_OK );
189+ };
190+
180191 try
181192 {
182193 DWORD dwWritten;
@@ -221,25 +232,11 @@ void CServiceTabStatistics::onStartStatistics()
221232 }
222233 catch (const SQLException &ex)
223234 {
224- writeFooterToLogFile ();
225- EnableWindow ( GetDlgItem ( hDlg, IDOK ), TRUE );
226- EnableWindow ( GetDlgItem ( hDlg, IDC_BUTTON_VIEW_LOG ), !logPathFile.IsEmpty () );
227-
228- char buffer[1024 ];
229- JString text = ex.getText ();
230- sprintf (buffer, " sqlcode %d, fbcode %d - %s" , ex.getSqlcode (), ex.getFbcode (), (const char *)text );
231- MessageBox ( NULL , buffer, TEXT ( " Error!" ), MB_ICONERROR | MB_OK );
235+ handle_error (ex.getText (), ex.getSqlcode (), ex.getFbcode ());
232236 }
233237 catch (const std::exception &ex)
234238 {
235- writeFooterToLogFile ();
236- EnableWindow ( GetDlgItem ( hDlg, IDOK ), TRUE );
237- EnableWindow ( GetDlgItem ( hDlg, IDC_BUTTON_VIEW_LOG ), !logPathFile.IsEmpty () );
238-
239- char buffer[1024 ];
240- JString text = ex.what ();
241- sprintf (buffer, " sqlcode %d, fbcode %d - %s" , 0 , 0 , (const char *)text );
242- MessageBox ( NULL , buffer, TEXT ( " Error!" ), MB_ICONERROR | MB_OK );
239+ handle_error (ex.what ());
243240 }
244241
245242 services.closeService ();
0 commit comments