Adam’s March 2019 Meeting Summary


  • Home-grown RAD Server – Brian Long & Nick Gabb
  • Advanced SELECT SQL: Nested statements, other tips and tricks, cursors and procedures – Adam Brett
  • SQL Server black-box – Mark Jacobs

Adam’s Summary

Developers Group Update March 2019
A new venue: We met at The Green Man pub, which has a cellar bar/function room. It is 1 minute from zone 1 tube station, and close to London rail terminals. Members seemed pretty happy with it.

Brian Long hosted (very well!) and gave some updates about the “new release” Delphi 10.3.1. I think these can be mostly summarized as “Meh”: Some useful small improvements & some annoying additional bugs. Noteworthy bits: Parnassus components which were previously 3rd party have now been bought in-house by EMB and can be added to your RAD Studio IDE via GetIt.

MacOS 64bit and Android 64bit compilation is still not supported, customers are getting increasingly annoyed with this, EMB are promising to gete it out fairly soon.

You can now declare variables in-line (if you don’t mind sytnax highlighting breaking!) and there are a bunch of new visual templates for applications.

Members discussed difficulties with re-installing RAD Studio, and Brian reminded us all that RegEdit allows us to Save a copy of sections of the registry, and that we really should be doing this prior to major updates / upgrades. In RegEdit.exe, right click on a registry folder in the tree-view and select “Export”…

The reinstallation experiences seemed very varied: Some members quoting 45mins, with a “simple install over” others saying it took them days.

Answering a member’s problem in the Problem Clinic, Brian pointed to the Android.Manifest.Template.xml file, when building to Android, which RAD Studio uses to create an installation targetting a specific Android version. Replacing the “%targetSDKversion%” text in this file allows you to specify specific versions of Android for the application to be allowed to install onto.

Brian and Nick gave a session on Homegrown RAD Server
In this internet era, many products fetch data from REST Endpoint back-ends, usually web-servers, which serve out JSON formatted data from database storage.

Commercial packages to do this work are still horrendously expensive. RAD Server is an example. These commercial packages are often quite complex, requiring much specialized knowledge.
Brian and Nick have developed code that effectively creates a super-thin server, which accepts client data requests and simply passes them through to a DLL. The DLL is a Delphi program which exports a very small number of functions, which the super-thin server can access.
An elegant solution, this way of working allows the applications and databases served by the super-thin server to extend easily, as the server is “dumb”. New clients, customers, data-requests, report requirements etc., can be added without the server being rebuilt, as it is merely a conduit for the messages.

Nick made the incredibly generous offer of making the code for this super-thin server available to the group. I really hope we can take this on and start using it. Hopefully members can also make extensions and improvements which they will also share.

Marc gave a session on “Black Box SQL Server”
This was a case study of a nightmare project: to provide users with access to a database without any information about its schema, operations or function, and having to give access over the internet without exposing the database to threats of hacking.
Mark showed the use of file-based webpages without fancy back-end executables, which can carry C# and HTML Code. The C# is only visible on the server side, and allows creation of a route to access the database without surfacing source-code on the client-side.
Mark is able to give users access to detailed graphic and financial data from the source database without exposing the source.

Adam gave a session on “Advanced SQL SELECT”
SQL SELECT statements are pretty basic really, but there are a few ways they can mess with your head, and a few clever ways in which they can be written and extended.
Adam’s session was pretty basic, and contained a lot of stuff well known to many of the members, but showed the more esoteric possibilities of the syntax and how to work with it.