NetTalk Central

The Rest Of NetTalk => The Rest - Ask For Help => Topic started by: olu on May 22, 2013, 01:43:57 AM

Title: Using Host app to run mssql and mysql
Post by: olu on May 22, 2013, 01:43:57 AM
Hello I have on a host app that I would like it to run two different application running on MySQL and mssql and using the fm3 connection procedure. Please anyone done this and how?
Title: Re: Using Host app to run mssql and mysql
Post by: Bruce on May 22, 2013, 03:18:35 AM
Hi Olu,

so to be clear;

you are running the Host.Exe example program?
and you've compiled 2 apps - both as DLL's and attached them to the program?
the DLL's are using different MsSql databases?

assuming all of the above - what problem are you having?

cheers
Bruce
Title: Re: Using Host app to run mssql and mysql
Post by: olu on May 22, 2013, 04:50:31 AM
Hi Bruce,
   Yes you are correct, but I keep getting connection error until I remove one of them and because both apps use fm3 do I need to add fm3 sql connection to the host program as well?
Title: Re: Using Host app to run mssql and mysql
Post by: Bruce on May 22, 2013, 09:27:38 PM
I presume both DLL's are using a variable like say
glo:owner
and this is _threaded_ ?

And you are setting the correct value of this in the WebHandler procedure, ProcessLink method, before parent call?

Is it just FM3 conversions that's not working - or are you completely unable to connect to the database?

cheers
Bruce
Title: Re: Using Host app to run mssql and mysql
Post by: olu on May 22, 2013, 11:46:25 PM
Hi Bruce,
    Thanks for reply. Ok how do I do this as at the moment I think properly that is where am going wrong as I am not doing any of the things you mentioned below:(but yes both are DLL's and using glo:owner)

I presume both DLL's are using a variable like say
glo:owner
and this is _threaded_ ?

And you are setting the correct value of this in the WebHandler procedure, ProcessLink method, before parent call?
Title: Re: Using Host app to run mssql and mysql
Post by: Bruce on May 23, 2013, 01:39:00 AM
Hi Olu,

There are a couple ways to do it, but the way I recommend is
a) glo:owner is threaded. this is a lot more flexible for you in the long run.
b) in the WebHandler, ProcessLink method, before parent call, set the glo:owner to the correct connection string.

Now in your case the string is likely to be the same value for all threads. However as you scale up you may want to make different users connect to different databases. By using this technique now you give yourself options later on.

If you don't know what should go into a connection string, then that's a slightly different topic. But get this part right first, then we can discuss that.

cheers
Bruce

Title: Re: Using Host app to run mssql and mysql
Post by: olu on May 23, 2013, 04:50:05 AM
Hi Bruce,
      So am I making this changes in the host program or my individual DLL's application and please what is the connection string that I need to use?

Thanks
Title: Re: Using Host app to run mssql and mysql
Post by: lkeyser on May 23, 2013, 05:30:47 AM
Hi Bruce an Olu

I have the same question (How should the connection string typical look like using, FM3 with MS-SQL on your dll side ?
The multi-site documentation explains how to connect to tps file and i have done this on a few sites - works great:) Thanks Bruce

Lack of SQL connection string  "know how "stops me to converting to SQL.
Will be great if you can five us a sample.

Regards
Louis
Title: Re: Using Host app to run mssql and mysql
Post by: kevin plummer on May 23, 2013, 03:57:16 PM
I set the following in the webhandler process link method

Glo:dbOwner = clip(self.GetSessionValue('SHO:Server')) & ',' & Clip(self.GetSessionValue('SHO:Database')) & ',' & Clip(self.GetSessionValue('SHO:SQLUserName')) & ',' & Clip(self.GetSessionValue('SHO:SQLUserPassword'))


The session values are loaded when the user logs in so I am serving up data from multiple sql db's from the one program.

I'm not using multi-host but I think the above still applies.
Title: Re: Using Host app to run mssql and mysql
Post by: Bruce on May 24, 2013, 02:15:11 AM
Kevin's approach is correct.
Also - this goes in the WebHandler for each of your DLL's - not the host.

cheers
Bruce
Title: Re: Using Host app to run mssql and mysql
Post by: olu on May 28, 2013, 12:52:51 PM
Hi Bruce please can show with an example as i have tried the suggestions and not getting too far with this. Here is what i have done so far
i have add as suggested to webhandler of each dll app before parent code in the proceeslink  as fllows:

the MYSQL app
Glo:Owner = 'DRIVER=MySQL ODBC 5.1 Driver;SERVER=101.1.150.3;USER=olu;PASSWORD=olu;DATABASE=test;'

the MSSQL app
Glo:Owner = 'OLU-LAPTOP\OLUSQL' & ',' & 'test2' & ',' & 'mide' & ',' & 'olu'

Do i take out fm3 in this apps and only have fm3 in host?

i did add a message to sql_connect procedure to show Glo:Owner and it is alway blank. Not sure how fm3 works and to be honest i am really confused  so please help.
Title: Re: Using Host app to run mssql and mysql
Post by: kevin plummer on May 29, 2013, 02:41:07 AM
Try running one of the programs outside of Host app to narrow down the prob - it could be specific to running inside the host. Make sure glo:owner is threaded. SQL_Connect is irrelevant and apart from if you use it on startup, it should never be used again. Examine the code in the SQL_connect procedure to see what it does - it's more relevant for desktop apps where glo:dbowner is not threaded.
Title: Re: Using Host app to run mssql and mysql
Post by: olu on May 29, 2013, 07:14:13 AM
Thanks kevin,
      That did push me in the right direction, now got it working , by taking out fm3 off my dlls but still want to let fm3 handle file upgrades, any ideas how I can still make this happen?
Title: Re: Using Host app to run mssql and mysql
Post by: kevin plummer on May 29, 2013, 03:13:56 PM
Just create a separate app to do the upgrades on startup. I've created one that loops through all my DB's.