Start up function in library

Post Reply
bill-lancaster
Posts: 2
Joined: Tuesday 26th September 2017 3:17pm

Start up function in library

Post by bill-lancaster » Tuesday 26th September 2017 3:24pm

Does anyone know if this can be done?
At the moment I have to remember to call a startup procedure from my project each time.
GB 3.9.2

User avatar
jornmo
Site Admin
Posts: 127
Joined: Wednesday 21st September 2016 1:19pm
Location: Norway

Re: Start up function in library

Post by jornmo » Tuesday 26th September 2017 5:30pm

What exactly do you mean by a "start up function"? A function that is run when the library is accessed? In that case, if it is an object, you can utilize the constructor, _new().

bill-lancaster
Posts: 2
Joined: Tuesday 26th September 2017 3:17pm

Re: Start up function in library

Post by bill-lancaster » Wednesday 27th September 2017 6:54am

Thanks for the reply.
I have a library which that performs a number of mysql routines.
A connection to the database is required before the routines will run.

Have tried:-
Public Sub _new()
    Initialise()
End
But nothing happens.

In the Gambas wiki reference is made to automatically invoking a startup routine but this is all it says:-
"There is a better way. It will happen automatically and independently of your main project execution logic.[More to come...]"
So is there a way to avoid having always to call a startup procedure from the project us a library?

User avatar
jornmo
Site Admin
Posts: 127
Joined: Wednesday 21st September 2016 1:19pm
Location: Norway

Re: Start up function in library

Post by jornmo » Wednesday 27th September 2017 12:24pm

You cannot use _new if the library is static. A module is a static class, i.e. it cannot be created, only accessed directly. If you put the library code in a class file, you can create objects out of it, and this is where _new comes in. As the new object is created, you can have it initialise the connection with _new.

Try to read up on the Gambas object model here to get a better understanding of this: http://gambaswiki.org/wiki/doc/object-model

Taking a look in the Gambas farm on how people are doing this can also be enlightening :)

User avatar
Quincunxian
Posts: 6
Joined: Sunday 25th June 2017 12:14am

Re: Start up function in library

Post by Quincunxian » Sunday 01st October 2017 1:31am

You can still use a Module to do this I think
Use a class to instantiate your SQLite database
when the Module starts assign this class to a "$Con" variable
You can then use the _new() in the class to do what you need.

so you get something like this Mod_Global.DB.$Con.
The downside is that your library will depend on this convention always being used.
Cheers - Quin.
I code therefore I am

Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests