I Love Xbase++ (ILX)
The portal for Xbase++ developers worldwide
Jeffrey Wulf
5 min read
Views
3,003
Comments for Xbase++ 1.9 users 1. Support for projects with targets in multiple directories Beginning with Xbase++ version 2.0, complex project scenarios involving targets located in different directories are fully supported. This required changes in the way the targets and the source files...
Steffen F. Pirsig
3 min read
Views
4,771
Reaction score
2
Background The Xbase++ PostgreSQL DatabaseEngine provides two different access method to data. First, the ISAM emulating approach which works with dedicated SQL tables only. These SQL tables need to be created using ISAM commands like DbCreate/INDEX ON/OrdCreate or have been upsized from...
Till Warweg
3 min read
Views
3,142
Reg-free COM allows using a copy-deployment for applications depending on COM/ActiveX component. As the name implies, Reg-free COM means there's no need to register COM/ActiveX components prior to using them. To achieve this, the application requires one or more manifest files which describe the...
Jeffrey Wulf
3 min read
Views
2,376
Xbase++ provides INIT procedures, a concepts which allows by a simple declaration of INIT before the procedure keyword to ensure that this procedure is executed before your procedure main is executed. An example is shown below. INIT PROCEDURE startupMyModule() // your code is RETURN...
Till Warweg
2 min read
Views
2,219
Background Sometimes, an application may exhibit symptoms which are hard to understand without having information about the internal state, the workflow and timing of operations. This was not an issue with desktop applications as these basically follow the action->reaction principle. Anybody who...
Till Warweg
3 min read
Views
1,795
Background The Update Manager in the Xbase++ Workbench usually provides a seamless update experience; after clicking "Download and Install", the update process usually runs through without further user interaction. However like all processes, it can fail. This article provides some background...
Andreas Herdt
1 min read
Views
1,746
For an overview how COM/ActiveX components can be used from Xbase++ refer to the Xbase++ help ActiveX Overview, expecially to the section Reacting to COM/ActiveX events. Here you can find a working sample how to react to the MS Word quit-event.
Andreas Herdt
4 min read
Views
3,009
Introduction Email providers such as Google GMail allow authentication of the Smtp and Pop3 client via the OAuth2 security protocol. Furthermore, it is foreseeable that sooner or later other authentications will no longer be allowed. Google has already announced this step. The OAuth2 security...
Pat France
1 min read
Views
2,011
Sometimes your application may experience run-time errors such as "error while reading a file" during DbSkip() or DbSeek() operations. These errors often occur in the following scenarios: large number of concurrent users (>= 15) large index expressions large index files (> 500Mb) In these...
Andreas Herdt
6 min read
Views
4,719
Introduction This article assumes knowledge of how to use the Asset Manager of the Xbase++ Workbench. You will find an introduction to the Asset Manager of the Xbase++ Workbench in the article Xbase++ Workbench Asset Management. The Xbase++ OAuth2 asset implements the protocols for the OAuth2...
Andreas Herdt
3 min read
Views
4,439
Introduction Xbase++ comes with so-called assets. You can consider an asset as a reference implementation. The idea of assets is to formalize the packaging of libraries, frameworks, etc. beyond the Xbase++ core product featureset. In practice, assets are there to clean up the project chaos and...
Andreas Herdt
2 min read
Views
2,012
It is possible to automate the creation of MS Word documents and also to style the text. For this a Word document is created or opened via the Xbase++ COM/ActiveX layer. The Word instance is represented in Xbase++ by an object of the class AutomationObject(). The document can be manipulated via...
Andreas Herdt
7 min read
Views
3,230
Some technical background When an application is loaded, the operating system's image loader examines the import directory of the exe file. In this import directory the dll names with their functions (so-called procedure entry points) are listed, which are needed for the application. These...
Andreas Herdt
2 min read
Views
2,017
Problem description The Xbase++ ISAM emulation uses a native PostgreSQL sequence to calculate the next record number for append operations. Therefore the success of a DbAppend()/APPEND directly depends on the correctness of that PostgreSQL sequence. As a matter of fact the sequence can become...
Andreas Herdt
3 min read
Views
2,451
Background When a source file ( .prg or .arc) is compiled, then an intermediate file ( .obj or .res ) is created that is finally linked to an executable ( .exe ) or library ( .dll ). The Xbase++ compilers xpp.exe and arc.exe create the intermediates next to their source files. This behavior is...
Andreas Herdt
3 min read
Views
3,707
Background The PostgreSQL columns of type TEXT and BYTEA allow the storage of large binary data (e.g. PDF documents or images) up to 1GB. If such column types are used in a table their data is accessed like any other data of the record when using the Xbase++ ISAM emulation. With each...
Till Warweg
2 min read
Views
1,578
In a std I/O application, output occurs to the current console. The font used for outputting text into the associated window is controlled by the system and can be changed via the console properties. The following function can be used to determine the size of the font set for the window...
Jeffrey Wulf
3 min read
Views
1,982
By default the Xbase++ WebHandler does negotiate the content type encoding automatically. The following simple AddressService returns a Object and leaves the content negotiation up to the WebHandler and the request sending party. The great benefit of that approach is that your service interfaces...
Andreas Herdt
3 min read
Views
2,937
Background The HttpEndpoint can be bound to an SSL certificate but it must be available in the Windows Certificate Store. This howto article describes how to provide a certificate using the win-acme tool and the IIS web server and how to bind the HttpClient to it. On the Let's Encrypt homepage...
Till Warweg
2 min read
Views
2,013
Background Starting with version 13 of PostgreSQL, the default authentication method was changed from MD5 to SCRAM. This authentication method is incompatible with the pqlib client dll used by the PostgreSQL Database Engine shipping with Xbase++ (status: build 1360). As a consequence, attempting...

Latest articles