I am having the most difficult time figuring out this one piece of my app. So much so, that I would like to hire someone to build me a sample project that does want I want so I can figure it out and understand it better (and of course integrate I with my web app).
My web app is using Xojo Cloud. I store many settings in mySQL on my Cloud instance and have no problems with connecting and doing whatever I need with that data.
However, my web app is a tool I use to help make my work life easier. I previously built this as a desktop app and it worked great but I wanted the versatility and easy upgradability across all platforms where I access this. So I decided to convert to a web app.
I need the web app to be able to connect to databases not on my Xojo Cloud instance. For example, if I open the app in a browser on my laptop and I have a local database on that laptop (whether it be MS SQL, SQLite, Oracle, whatever) I want to be able to fill in the fields in the web app and connect to that local data.
I don’t know if this is a library limitation of Xojo Cloud and I need to add more libraries or if the way I am trying to connect is wonky but its driving me nuts. I have worked on this for nearly 2 weeks.
So I would like to hire someone to make this happen for me. LMK if this is doable or not (I dont see why it wouldnt be) and if you are interested.
I’m no database expert but this sounds like an issue with the required ports being open on the computer hosting the database. This wouldn’t be an issue when connecting locally but the required ports on your laptop are probably shut to incoming traffic from your web app instance.
I have been able to have all my applications (Desktop, Web and iOS) connect to SQL databases, but only by using SQLDatabaseMBS.
I have one Method where I pass it the SQLBrand, host, port, username, password, database name, etc and it either returns Nil or an SQLDatabaseMBS. Once I have the database, 99% of the rest of the code is the same.
I have been successful in connecting to:
macOS (Desktop or Web): CubeSQL, MSSQL, MySQL, PostgreSQL and SQLite
Windows (Desktop or Web): CubeSQL, IBM DB2, MSSQL, MySQL, PostgreSQL and SQLite
iOS: CubeSQL and SQLite
More combinations might be possible, but you will need the drivers. I am happy to share the code, it it’ll help.
I think I need to add more libraries to my app on Cloud but I am unsure exactly how to do so. If you are willing to take some time to give me a hand with this whole bit I am more than happy to compensate you for your it.
For your web app on xojo cloud to connect to the database on your laptop, your router that your laptop connects to will need to have ports forwarded to your laptop. You also need to allow connections on your laptop’s firewall. I think xojo cloud also requires your web app to open ports for outgoing connections.
I would recommend a vpn product like ZeroTier. You can get Xojo to install client on your Xojocloud server. You will need to install a client on your laptop as well. Then your local instance should be visible via the vpn from the Xojocloud server.
This is not how web works, this is how desktop apps work. With web you just test locally (debugrun) and use #if debugbuild as codional compilation. If you want to connect to a remote server with mysql or so, you can try using a ssh tunnel by running a shell class instance.