Using Delphi Firedac to compact and repair a MS Access Database.

Rad Studio Delphi Development
Over the years Delphi Firedac continues to grow as a robust programming language. Delphi Firedac provides a new way to compact and repair a database. The tools provide developers with components or services that create superb applications. Delphi Firedac provides a unique set of Universal Data Access Components for developing multi-device database applications. This will show the older method of compacting and repairing MS Access databases. The code listed below demonstrates the process. Very straight forward you need to create the object, populate the commands and you are ready to go. function CompactAndRepair(DB: string): Boolean; var v: OLEvariant; begin Result := True; try v := CreateOLEObject('JRO.JetEngine'); try V.CompactDatabase('Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+DB, 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+DB+'compacted;Jet OLEDB:Engine Type=5'); DeleteFile(DB); RenameFile(DB+'compacted',DB); finally V := Unassigned; end; except Result := False; end; end; Delphi Firedac now has…
Read More

Gotchas when using Delphi Update

Rad Studio Delphi Development, Software development Concepts
Sometimes when you are programming using Embarcadero Delphi you will come up with a few Gotchas. These are not bugs but more as a pain. Initially you create an application in a debug mode while you are testing the code. You have a icon for the application making it look professional and just go to the release state. The icon may or may be what you expected. Your debug application has the correct icon but your release doesn't. Pretty strange but Windows keeps an icon cache. The simple thing would be to rename your executable and suddenly it looks good. You wonder why Windows would do that ? It is Windows and you have to live with that. Click on this link to see what else you can do to…
Read More

How to restart a VCL Delphi application while using a Mutex

Rad Studio Delphi Development
How to restart a VCL Delphi application while using a Mutex. This article puts all of the research in one single page. Using a mutex prevents multiple application instances from occurring. You may wonder why would you wish to restart an application. It doesn't mean there was a software defect in the code. Application settings have changed. What is a mutex A mutex object is a synchronization mechanism designed to ensure mutually exclusive access to a single resource that is shared among a set of kernel-mode threads. Using a mutex can ensure that there is only one instance of your application executing. A unique name should be used when starting the application. The simplest way is to use your application name and/or a shorten name that would be unique when…
Read More

Terminating an Application when using Delphi

Rad Studio Delphi Development, Software development Concepts
Sometimes there are reasons to terminate an application due to unforeseeable issues and there has been a lot of talk how to handle this event. Let's go over a simple application and break down what needs to be done. Go to the code The initial code opens up a splash screen, displays it and finally releases it after a few moments. Splashscreen.Show; Splashscreen.Update; Sleep(2000); Splashscreen.Free; Application.Initialize; The application defaults are set with the title and the help file as well as creating the data module along with the login screen. Application.DefaultFont.Name := 'Arial'; Application.MainFormOnTaskBar := True; Application.Title := 'Application Name'; Application.HelpFile := ExtractFilePath(Application.ExeName) + 'Help.CHM'; Application.CreateForm(TDM, DM); Application.CreateForm(TfrmLogin, frmLogin); The application at this point will open up the login screen allowing the user to enter their information. The license is…
Read More

Google Chrome and slow websites.

News Items, Software Events
Google Chrome is preparing to inform the end user whether the website they are visiting is too slow. There are websites that hammer you with multiple ads. Google announced today a plan to identify and label websites that typically load slowly within Chrome. The intend to identify sites that are likely to be slow based on the user’s device and current network conditions as part of the scheme. Also there isn't a clear plan at the moment on how they will present a slow website. It could have a warning message upon your search or it could be a different color. This will be determined after experimenting with websites over the course of the next few months. This also brings up the point of Google clicks which generate revenue. Will Google look…
Read More