[Lazarus] MSSQL howto catch a TMSSQLConnection Error without Messagebox?

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

[Lazarus] MSSQL howto catch a TMSSQLConnection Error without Messagebox?

Free Pascal - Lazarus mailing list
On my Raspi/Debian i got on a TMSSQLConnection a messagebox if the
server is not reachable. The connection is not my problem, but i am not
able to cach this exeption silent without poping up this messagebox.

The problem is, the messagebox pops up and want an OK or ABORT.
In my code i catch the exception, set a flag and reraise

try
       if IsOk then AConnection.Connected := true;
  except
       on E : Exception do begin
         IsOk:=false;
         raise;
       end;
  end;

The calling function does this
Quote
   Result := false;
   try
     xxxxxxxx(IsOk);
     Result := true;
   except
     on E : Exception do begin
      .........

     end;
   end;

So the exception should silent catched and i can handle if a connection
is ok or not.

How can i avoid the unwanted box ?

regards

Andreas

--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] MSSQL howto catch a TMSSQLConnection Error without Messagebox?

Free Pascal - Lazarus mailing list


On Wed, 27 Jan 2021, Andreas Frieß via lazarus wrote:

> On my Raspi/Debian i got on a TMSSQLConnection a messagebox if the
> server is not reachable. The connection is not my problem, but i am not
> able to cach this exeption silent without poping up this messagebox.
>
> The problem is, the messagebox pops up and want an OK or ABORT.
> In my code i catch the exception, set a flag and reraise
>
> try
>       if IsOk then AConnection.Connected := true;
>  except
>       on E : Exception do begin
>         IsOk:=false;
>         raise;
>       end;
>  end;
>
> The calling function does this
> Quote
>   Result := false;
>   try
>     xxxxxxxx(IsOk);
>     Result := true;
>   except
>     on E : Exception do begin
>      .........
Do you also re-raise here ?

>
>     end;
>   end;
>
> So the exception should silent catched and i can handle if a connection
> is ok or not.
>
> How can i avoid the unwanted box ?

Normally catching the exception is enough.

Michael.
--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

[Lazarus] MSSQL howto catch a TMSSQLConnection Error without Messagebox?

Free Pascal - Lazarus mailing list
Hi Michael,

no, i did not re-raise there.

I want only a silent flag. This should done by the Result:= false in the
calling function.

regards

Andreas

Am 27.01.2021 um 12:46 schrieb Michael Van Canneyt:

>
>
> On Wed, 27 Jan 2021, Andreas Frieß via lazarus wrote:
>
>> On my Raspi/Debian i got on a TMSSQLConnection a messagebox if the
>> server is not reachable. The connection is not my problem, but i am not
>> able to cach this exeption silent without poping up this messagebox.
>>
>> The problem is, the messagebox pops up and want an OK or ABORT.
>> In my code i catch the exception, set a flag and reraise
>>
>> try
>>       if IsOk then AConnection.Connected := true;
>>  except
>>       on E : Exception do begin
>>         IsOk:=false;
>>         raise;
>>       end;
>>  end;
>>
>> The calling function does this
>> Quote
>>   Result := false;
>>   try
>>     xxxxxxxx(IsOk);
>>     Result := true;
>>   except
>>     on E : Exception do begin
>>      .........
>
> Do you also re-raise here ?
>
>>
>>     end;
>>   end;
>>
>> So the exception should silent catched and i can handle if a connection
>> is ok or not.
>>
>> How can i avoid the unwanted box ?
>
> Normally catching the exception is enough.
>
> Michael.
--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] MSSQL howto catch a TMSSQLConnection Error without Messagebox?

Free Pascal - Lazarus mailing list


If you don't do a re-raise, I don't understand where the dialog box comes
from, since you're catching all exceptions...

Michael.

On Wed, 27 Jan 2021, Andreas Frieß via lazarus wrote:

> Hi Michael,
>
> no, i did not re-raise there.
>
> I want only a silent flag. This should done by the Result:= false in the
> calling function.
>
> regards
>
> Andreas
>
> Am 27.01.2021 um 12:46 schrieb Michael Van Canneyt:
>>
>>
>> On Wed, 27 Jan 2021, Andreas Frieß via lazarus wrote:
>>
>>> On my Raspi/Debian i got on a TMSSQLConnection a messagebox if the
>>> server is not reachable. The connection is not my problem, but i am not
>>> able to cach this exeption silent without poping up this messagebox.
>>>
>>> The problem is, the messagebox pops up and want an OK or ABORT.
>>> In my code i catch the exception, set a flag and reraise
>>>
>>> try
>>>       if IsOk then AConnection.Connected := true;
>>>  except
>>>       on E : Exception do begin
>>>         IsOk:=false;
>>>         raise;
>>>       end;
>>>  end;
>>>
>>> The calling function does this
>>> Quote
>>>   Result := false;
>>>   try
>>>     xxxxxxxx(IsOk);
>>>     Result := true;
>>>   except
>>>     on E : Exception do begin
>>>      .........
>>
>> Do you also re-raise here ?
>>
>>>
>>>     end;
>>>   end;
>>>
>>> So the exception should silent catched and i can handle if a connection
>>> is ok or not.
>>>
>>> How can i avoid the unwanted box ?
>>
>> Normally catching the exception is enough.
>>
>> Michael.
> --
> _______________________________________________
> lazarus mailing list
> [hidden email]
> https://lists.lazarus-ide.org/listinfo/lazarus
>
--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] MSSQL howto catch a TMSSQLConnection Error without Messagebox?

Free Pascal - Lazarus mailing list
On Wed, 27 Jan 2021 16:02:40 +0100 (CET)
Michael Van Canneyt via lazarus <[hidden email]> wrote:

> If you don't do a re-raise, I don't understand where the dialog box
> comes from, since you're catching all exceptions...

Maybe

try
     xxxxxxxx(IsOk);
except
end;

The xxxxxxx contains a ShowModal?

Mattias
--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

[Lazarus] MSSQL howto catch a TMSSQLConnection Error without Messagebox?

Free Pascal - Lazarus mailing list
No, befor the try is  a ping to test if the server itself is reachable.
This is done with a 'ShowOnTop' Form - but not showmodal. It looks like

isOk := pingtheserver(xxxx);  // <-- here is a form with showontop
created and destoyed
if isOk then begin
   try
      xxxxxxxx(IsOk);
   except
   end;
end;

No showmodal inside the try/except block. But i will check if i need the
re-raise in the inner block.

Andreas

Am 27.01.2021 um 16:12 schrieb Mattias Gaertner via lazarus:

> On Wed, 27 Jan 2021 16:02:40 +0100 (CET)
> Michael Van Canneyt via lazarus <[hidden email]> wrote:
>
>> If you don't do a re-raise, I don't understand where the dialog box
>> comes from, since you're catching all exceptions...
> Maybe
>
> try
>       xxxxxxxx(IsOk);
> except
> end;
>
> The xxxxxxx contains a ShowModal?
>
> Mattias

--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus

Screenshot 2021-01-15 113833.jpg (33K) Download Attachment