Stephen is a Charted IT Professional and the Associate Product Manager for InterBase at Embarcadero. He is also a Product Evangelist for RAD Studio, regularly speaking across EMEA. @DelphiABall
I’m currently working on a new blog post showing how to integrate a popular REST API. One of my tasks is to convert JSON to Delphi Objects, so I need to define the Delphi class structures to work with so I can use the TJSON.JSONToObject that I covered previously. I decided to see if anyone had done work to convert JSON into Delphi classes.
The JSON to Delphi Project is a Delphi FMX application that has a simple UI that allows you to modify the automatically created JSON class names which is pretty useful and the code worked first time when copied into my sample. (although I have more playing to do)
The JSON to Delphi tool is definitely a useful resource to work alongside the REST Debugger that you can find in the BIN directory of your RAD Studio install.
Ever since Delphi XE2, it has been possible to generate Delphi 64bit applications from the same code base as your traditional Windows 32bit Delphi code. The business case for 64-bit for business is covered in this tech paper The Impact of 64-bit Applications to your Company’s Bottom Line.
On the whole moving to 64bit (on iOS or Windows) is beautifully simple to achieve! It can be just as simple as adding the Delphi 64bit Windows target platform in the project manager and rebuilding the project.
My experience from talking to many developers who have moved up is that normally there are a few things to check in your code but typically its not a massive task to get compiling and ready to test.
A lot has been recorded on moving from Windows 32bit to Windows 64bit Delphi and this should be a useful summary if your just planning now moving up from older versions of Delphi to Delphi 10. If you are building iOS applications, then you will need to use the 64bit build now to get into the AppStore. Thankfully, Delphi has made the task of using 64bit very simple across all platforms and protected us from the headaches non Delphi Developers have had on the whole.
Lets start with this short video from David I who covers some the foundations in 7 minutes!
We (geeks) should all know that applications that run in memory run faster than those that have regular disk I/O.
Having more of the data processing in memory has a positive effect on speed and performance, however its not without risk. As memory is transient, you are always at risk of data loss if the data in memory hasn’t been saved to disk (which is where you get the disk i/o speed degradation again.
InterBase brings together the speed of in memory data processing with the security of immediate disk I/O with InterBase Journaling. The write ahead logging enables InterBase to securely log the write transactions to the journal making the best of both worlds possible.
User Security isn’t new; everyone is use to logging into the applications they use. To help developers build cross platform applications faster, InterBase has a flexible API for user security that simplifies the access to data held in InterBase regardless if your application is deployed to Windows, Mac, Linux, iOS and Android.
User Security in InterBase helps control WHO gets to see WHAT and is enhanced with a strong encryption model (which I covered in the Rising to the Data Security Challenge webinar) so lets focus on the foundations of user security in this article.
One very cool tip in the video is to use constraints to add in a unique key, this way you can drop it easily at runtime. Remember, the field needs to be marketed NOT NULL to enable a primary or unique key.
ALTER TABLE CUSTOMER ADD CONSTRAINT U_TEST UNIQUE (CUSTOMER_NAME);
The above example names the constraint U_TEST. (you can put whatever value you want in to name it, making it easy to drop with the following statement.
There are a number of classes that help along the way but there are two specific categories of classes and that is what I want to cover in this post.
LiveBindings and List v Link
Sometimes you want to fill a list with values; sometimes you want to keep a list of values updated; this is in essence the difference between using List (e.g. TBindList, TBindGridList) and Link (e.g. TBindListLink, TBindGridLink)
TBindList will fill a list with values, if the data/objects linked to changes then the data will not update unless you manually tell the list to re-populate using the bindings FillLists property.
TBindListLink however will keep the list in sync.
Before you continue… look at the samples
I recommend playing with the “OneOfEach” sample in the samples directory.
{samples}\LiveBindings\oneofeach\vcl
Try changing the fish name in the TBindGridLink and seeing how it updates over the other tabs where the FishFacts data is used.
What is a Binding Source and how is it different to the Control?
Pawel Glowacki and I will be hosting a webinar on 10th and repeated on the 16th December titled ” Become a Developer Super Hero with the RAD Solution Pack!”
Hundreds of senior executives gathered at the iconic Wembley Stadium to see the winners named. An incredible C-Level audience represented the communications industry from across the globe, with representatives from every continent attended.
The awards, (one for which InterBase was a finalist), were sponsored by leading players from the Telco industry, including ADVA, AsiaInfo, CITIC Telecom CPC, IDT Telecom, PCCW Global, Tata Communications, TeliaSonera International Carrier and Vodafone.
Left to right: Adam Oliver, (CEO, Institute of Telecom Professionals); Marc Brunel-Walker, (Director of International Marketing, Embarcadero), Stephen Ball (InterBase Product Manager – Embarcadero), Scott Mills (Radio 1 DJ and host)
As you can see from the photo above, InterBase beat off the competition to win “most innovative use of data” in part thanks to the patent pending technology “Change Views” that we developed and brought to market back in December 2014 with InterBase XE7.
InterBase, the home of Change Views.
Change Views is dramatically changing the way data is moved to and from mobile and the edge of IoT by allowing developers to easily identify delta’s; By retrieving only the deltas, it enables network traffic and cost to be slashed, ensuring a much richer end user experience. Additionally the enhanced granular encryption and role based security model offered by InterBase enables true enterprise data best practice to exist everywhere through the development life cycle.
There was no chance on the night to do a speech and offer our thanks so I’ve decided to decant it here. Firstly I want to thank all the InterBase users out there for your loyal support and amazing stories you share with us. This go a long way to helping InterBase win such amazing awards.
I want to thank Jason Vokes, John Thomas, Marco Cantú, James Pitts and Michael Swindell for their support and guidance when we initially dreamt up Change Views and needed a plan to bring it from development through to market. Marc Brunel-Walker for helping with the award submission. Dmitry Arefiev for his amazing FireDAC integration helping developers get to the technology faster, and similarly Jeff Overcash for IBX; My wife Charlotte for all her amazing support; But most importantly today to my InterBase team, especially Charlie Caro and Sriram Balasubramanian, with whom I spent 3 long, but fun days in 2014 planning and discussing use cases and scenarios as we set off to give birth to this amazing technology.
Finally a big thank you to Rob Chambers and his team at Total Telecom for a wonderful memorable evening; It is by far the best awards event I have been to in my 4 years at Embarcadero, and I hope we get the chance to attend (and hopefully win another award) next year.
Programming with Delphi & InterBase
This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish.AcceptRead More
Privacy & Cookies Policy
Privacy Overview
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.