mysql-native: API Refresh RC
Nick Sabalausky via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Wed Feb 1 19:52:39 PST 2017
On 02/01/2017 10:34 AM, Suliman wrote:
> On Wednesday, 1 February 2017 at 14:06:39 UTC, Suliman wrote:
>> Am I right understand that Connection instance should created at
>> constructor and be one single for all class (and it will be reused by
>> fibers) or am I wrong?
>>
>> If yes, where I should to close it? To put
>> scope(exit) c.close();
>>
>> In destructor?
>>
>> If yes, does it behavior should be same as for working in vibed pool
>> and without?
I'm not sure I understand the question here.
Whether you should use a vibed connection pool or not is completely up
to you and your program. And the choice of when to create the
connection, and when to close the connection, is also up to your own
program's needs.
If you're using a connection pool, you shouldn't need to worry about
closing the connection. The whole point is that the connections stay
open until you need to use one again. When your program ends, then
connections will close by themselves.
>
> If I right understand class MysqlDB do not throw any exceptions, So I
> can't understand how to handle wrong connection.
>
> if(connection is null)
> {
> try // useless
> {
> connection = mydb.lockConnection();
> }
> catch(Exception e)
> {
> writeln(e.msg);
> }
> }
mydb.lockConnection() does create a new connection if it needs to. And
that WILL throw an exception if there's a problem connecting to the DB
server. So your code above WILL catch an exception if the connection
information (server address/port/login/etc) is wrong.
Side note: That reminds me, I need to rename the MysqlDB class (and the
mysql.db module). It's a connection pool (using vibe-d's connection
pool), but their names make that very unclear.
More information about the Digitalmars-d-announce
mailing list