Upgrading from older versions of clarion for a newbie

For MySQL or PostgreSQL you can only do this using Clarion ODBC driver which kind of works, but there are issues. On of the major ones for me is that when your app is idle the server closes connection and your app crashes. Personally I’m waiting for Capesoft object based drivers to be released for MySQL and Postgres Clarion Object Based Database Drivers Documentation . Currently I do work with ODBC and MySQL/MariaDB but it does not always work as expected. Anyway, you will need a Clarion developer to do that for you or learn Clarion development yourself.

TopSpeed data file is not that bad, I use it with 20 concurrent users and the only issue I had was that I had to increase the timeout on transaction processing (which is 2 by default )

Relate:MyFile.LogoutTimeout = GETINI('Advanced','LogoutTimeout','3',MyINIFile)

Of course, MySQL or PostgreSQL would be better, but migrating from ISAM database driver to ODBC is not that simple. Especially if you don’t have the budget for 3rd party tools etc.

"with a few changes to our clarion application we can run it serverside on our cloud provider " this may be not as easy as you think. I made a few attempts myself and as long as I’m pretty confident using PostgreSQL and MySQL, using these with Clarion ODBC was a pain.
That is regardless if you are on prem or in the cloud. You still need Windows server (or desktop) to run your Clarion app. If it’s in the cloud you need some kind of rdp to connect to it.

I’m more a sys admin / devops than a Clarion developer myself now, but I have one customer using my software built with Clarion with 3 sites, 2 on prem and one in the “cloud”, however these cloud ones are a couple or physical servers running virtualization software which hosts some VM’s for databases, web and RDP servers. All connected by site to site VPN tunnel on OpenBSD firewalls + dial-in VPN servers for remote workers.

Online store is built with PHP using MariaDB (MySQL) database and Clarion app on site is adding records to it. Clarion app is also invoicing once the item is sold and is responsible for dispatching it.
From my experience, cloud can be expensive. And you can be affected by global outages when they mess things up and don’t even bother to say what happened like recently with Amazon

To improve network performance you could initially use the IP Driver/Server.

Moving to an ODBC Database such as Postgres can then be done at your leisure. The IP Driver is Database agnostic so you can easily switch from Topspeed to something else (i.e. Postgres) without have to change the client exes one everything is running under the IP Driver.

I’ve tested MSSQL, Firebird and Postgres with the IP Driver and they work fine.

I concur with Sean that Postgres is a good DB and has the benefit a large number of Clarion developers. MSSQL is good too, but the licensing gets a bit pricey when you move from SQL Express. Firebird is fast but I found the DB management tools to not be as good as Postgres or MSSQL.

I haven’t done anything with MySQL for a few years. It was okay but I think the licensing beomes an issue.

Good luck with it!

It does, that’s why they came up with MariaDB MariaDB - Wikipedia . Fully compatible with MySQL and fully Open Source. And there are new database engines. I use it a lot.

1 Like

Hi Greg,
Looks interesting. Do the ODBC connectors require compiling?
Thanks
Rohan

I’m using MySQL 5.2 ANSI Driver to connect to my Linux MariaDB 10 various versions database. The main problem is the lack on Unicode support in Clarion. But no, no requirement to compile. Just download and install.
My DB runs on Linux (Debian) for ages.

MySQLOwnerName='Driver=<123>MySQL ODBC 5.2 ANSI Driver};Server=' & CLIP(ServerName) & ';Database=' & CLIP(DBName) & ';User=' & CLIP(DBUser) & ';Password=' & CLIP(DBPass) & ';Option=3 ;Connection Timeout= ' & connect_timeout

edit

Lack of Unicode support is not an issue for English speaking countries

1 Like

Hi Greg
Thanks very much for the info.
cheers
Rohan

Thank you all for the information. I am talking to a Clarion dev to get his opinion on the matter and an estimate for his assistance. If anybody else from this thread would like to give an estimate to assist, please let me know. We plan to upgrade Clarion to 12 and implement the IP driver; migrating to a new database type isn’t necessarily a right-away plan, but it is a hope for the future.

1 Like

I have spoken to a developer and he has confirmed we are not using any 3rd party plugins of any kind. he has given us an estimate on helping us upgrade clarion and implement the Ip driver but he doesn’t have enough knowledge on how to switch database types. we are interested in this if somebody would like to share some insight or even make some money helping.

It depends on how you want to approach this.

I think I understand that initially you’ll convert the application to work with the IP Driver?

  1. Is the next step after you’ve achieved that to switch to one of the flavours of SQL still using the IP Driver?
    Or
  2. Is the next step replacing the IP driver with SQL completely?

If it’s item 2 - I’ve had a great deal of success with Capesoft’s Multi-Proj product CapeSoft Multi-Proj

If it’s number 1 I can also give the developer you’ve hired some pointers on how to achieve this.

i think we would prefer number 1 but if number 2 is better we will look into it.

I think for now, in your situation I would go with your current plan.

  • Upgrade to Clarion 12
  • IP Driver - By the way it’s “easy” to enable/disable the IP Driver in an app.
  • Then decide whether you want SQL at the backend of the IP Driver/Server or just straight to SQL - there are advantages and disadvantages in both approaches.

I have a couple of templates that help optimise some aspects of the IP Driver. If your developer wants them drop me a message. There’s no charge. Some useful bits and pieces here Index of /downloads/IPServer/

Cheers

2 Likes

we would love the templates if your offering them. im not sure if/how to send a direct message on here not sure what the best way to message you is.

Sound advice. While I’m all for SQL, transitioning in full is a significant effort especially if you’re not well versed.
This way they can actually select the platform, get familiar, build & refine the database before making the full leap if that proves to be the more beneficial move.
It may or may not be worth it.
I came to Clarion from an SQL background & found TPS to be limiting despite being convenient.
Once MSSQL Express became available I was off to the races.

I have to disagree. I think if you are putting the effort into upgrading Clarion and doing conversion work, I would skip the IP Driver and go straight to SQL implementation.
To do the IP Driver conversion you need to do that work, test and deploy the update.
The IP Driver conversion work will be thrown away when you move to SQL and you will need to do that testing effort again with the SQL conversion.
Just my 2 cents.

1 Like

but cant you use the Ip driver with SQL so you can just do both. we are also not 100% sure we will do SQL. the dev we are talking to now says he doesn’t not have sufficient knowledge of SQL to preform the migration but we are still hoping to do it at some point as it will help us.

I don’t know why you would use the IP Driver with SQL. At that point it is adding an extra transport layer, an additional point of failure and something else to maintain.
These are just my thoughts.
It sounds like you don’t have a large budget. To me that’s another reason not to do two conversion (IP Driver/TPS and SQL).

any interest in providing a quote to help us preform the integration/conversion and upgrade?

ClarionIPDriverClientTemplates.zip (3.0 KB)

:slightly_smiling_face:

thank you very much!!

1 Like

Depends on the use case.
I have clients using

  • straight SQL,
  • using IP Driver with Topspeed,
  • IP Driver with a mix of Topspeed and SQL
  • IP Driver with SQL

The IP Driver is just another great tool in the kitbag.
It’s great for ensuring no SQL injection occurs, really good if you need to create a local print manager/server if you have cloud hosted systems.
Defining SQL ODBC connections only have to occur at the IP Server not on every workstation.

There are also plenty of reasons to go straight to SQL. It really does come down to use case.

The first step is going to be to get from Clarion 8 to Clarion 12 - I wouldn’t be attempting to introduce anything new until that was achieved.

If I was going to go straight to SQL after updating to Clarion 12 - I’d recommend Capesoft’s Multi-Proj to help you get there.