What code tells Xojo "This project requires a Database Servers license in order to build"?

I’m using ARGen for a desktop project using the SQLite database am unable to build because my licence is a simple macOS only desktop licence.

According to Xojo, that should be fine (I think) for SQLite projects ( https://xojo.com/store/index.php ). But I could be wrong and ARGen could be using something in its active record pipeline that requires some connection not allowed in the budget version of Xojo.

I’ve tried to remove every reference I can find to other databases in the code ARGen produces, but still am unablae to build.

So, either I’m missing something, or ARGen requires a “Desktop Full” licence to use. If it’s the latter, I’ll upgrade, but I really don’t want to spend the extra $300 if I don’t need to.

Anyone know?

Hi @Dave Kondris

It should be fine… just make sure you’re using only SQLite methods and functions, otherwise that could be the cause of the error message. If there is not reference for “generic” database methods (or other database classes methods) then I guess you should contact ARGen developer to find the origin of the problem.

Hope you can fix it!

Javier Rodríguez
Evangelista Xojo en Español, Desarrollador, Consultor y Formador Xojo
Autor del libro “Programación Multiplataforma Xojo
Autor del plug-in GuancheMOS para Xojo
Snippery para OS X: editor y gestor de fragmentos… ¡y más!

Yes, the thing is, ARGen creates a ton of functions and it’s really hard to tell if I’ve deleted them all.

ARGen is great, by the way. It’s super useful, but some parts are not very clear. For example, it does not handle saving pictures to a database very elegantly, even though the code contains a comment like this:

' static arsAllowPrefix() as string = Array("m_", "m_id","i","s","dtm","dt","b","d","v","pict")

and seems to deal with blobs in its BKS_ActiveRecord.MapFieldInfo method. But there are workarounds for that.

Now I just need the workaround for building! :slight_smile:

You can also access databases using MBS SQL Plugin.
An alternative way to connect to various databases.

Thanks Christian. I clicked the link and started the video. Almost from the beginning you note that the plug-in requires a Database connectivity Xojo licence. That sort of brings me back to my original question.

What is going on in a project that lets Xojo know such a licence is required? I suspect ARGen also requires such a licence, but I don’t remember coming across that in its limited documentation.

The PDF sent me by the developer says:

[quote]ARGen is a utility made by BKeeney Software that can save a Xojo developer many hours of tedious coding by automatically generating code and user interface elements for their database applications.

ARGen works by scanning the database of your choice: CubeSQL, ODBC, Oracle, Microsoft SQL Server (Windows only), MySQL, Postgres, and SQLite. After specifying which tables and views you want to use in your application, you tell ARGen which User Interface elements you want to create as well. It will automatically create List and Edit forms in windows, webpages, or containers and you’ll have stubbed in code to finish later.[/quote]

Is “scanning the database of your choice” what is keeping me from building? Unlike you, they do not specify if a Xojo Database connectivity licence is required. I am in fact trying to use only SQLite.

SQLite should not need such a license.
Only if you use classes for MySQL, PostgreSQL, MSSQL or Oracle from Xojo.

MBS SQL Plugin with SQLConnectionMBS class does not need the database plugin license from Xojo.

The easiest would be if you upgrade to a Xojo Desktop license.

Thanks. That gives me some hope. Obviously easier to upgrade, but that would cost $300 which I want to avoid at this point as I’ve budgeted from some other plugins later this summer.

I’ll keep combing the code and expect the developer will get back to me, too.

the ActiveRecord code references MySQL/Postgres/SQLite/etc. And that is what it probably tripping up the “must have database license” code. The is just an educated guess. I would reach out to @Bob Keeney and ask him.

Yes, I realize these references, but I’ve removed them all.

I have reached out to BKeeney support, but my original question is a little more broad.

What EXACTLY makes Xojo complain?

For example, this boolean : kIncludeSQLiteDatabase defaults to TRUE.

I removed all other such booleans for Oracle, etc., etc., and all references in the project I can find. But something is still triggering.

Now I know I can solve this together with BKeeney, but theoretically, the issue could stem from any other plug-in. So, that’s back to the original question “what code tells Xojo…”

And based on what Christian said, SQLite should still work, but it’s not.

What code tells Xojo that you need a database license ?
Any code that would be compiled that requires a database plugin other than SQLite
And thats code in your project

Specifically I cant say what in your project it is but it has to be there

Quit xojo, remove the database plugins, launch it again, build your project and you see where the compiler complains.
Remove all code using those plugins and be happy.

In my opinion you waste time looking around instead of upgrading and working on your project.

This is exactly what I what I would recommend. It’s probably a remnant that we didn’t wrap properly. I have Tim looking at this but I don’t think it would be hard for you to figure out on your own.

I’m not aware of anyone using ARGen that didn’t have the full desktop license so it’s never come up before.

Ah. Looks like Dave removed the database server plugins from his plugins and restarted Xojo and everything works fine. I guess the plugins were at fault on this.

Removing the plug-ins did the trick. There were still some Xojo complaints in the BKSActiveRecord.DatabaseAdapter.BindValues method. But removing that seems to have fixed it. MySQLPreparedStatement and related things.