[Lazarus] Handling Firebird connection
A. Fortuny
aforsprl at gmail.com
Mon Aug 25 14:16:12 CEST 2014
Le
[...] 25/08/2014 12:13, Richard Mace a écrit :
> Hi Antonia,
>
> This sequence does not protect against the server disconnection
> between two consecutive database calls.
>
>
> Would you mind giving me an example of this?
What I mean is that the physical TCP/IP connection between the
aplication (the client) and the firebird server is not systematically
tested on every function call to the library accessing the firebirs
server. If you assume the following sequence of operations:
MySql.Database := MyDatabase;
[...]
MyDatabase.Connect;
(1)
Mysql.Sql.text := 'select any from thedatabase';
MyTransaction.StartTransaction;
(2)
Mysql.Open:
(3)
while Mysql.EOF = False do begin
// do whatever to do with database records
Mysql.Next
(4)
end;
(5)
Mysql.close;
(6)
MyTransaction.Commit;
(7)
MyDatabase.Connected := False;
After each statement noted (1) thru (7) the TCP/IP link initiated by the
MyDatabase.Connect can be broken anywhere betwenn (1) and (7) unless you
code something to test it. This can be any function looking something
like a:
telnet host_name(or IP address) 3050 (or whatever firebird port is used
in host) issued in in a command line.
In a Lazarus program you would need something like Indy ping component
(any other is also OK) wich will test the firebird server awakeness. Its
is really a heavy workloa anyway.
I usually keep going with my former exemple. When the server connection
is critical I fill in the except part some code to figure out witch is
the failing part using either the exception code or the exception text
itself. I can also specialize the different exception sources using the
On MyException:Exception do
In the top example of code I'll insert try..except's (or finally's if I
don't care about exceptions) around the critical places I can't miss.
But this depends on the application as well
Antonio.
> Thanks
>
> Richard
>
>
>
> --
> _______________________________________________
> Lazarus mailing list
> Lazarus at lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection avast! Antivirus est active.
http://www.avast.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20140825/19ffec80/attachment-0003.html>
More information about the Lazarus
mailing list