There is a bug in IBX 2.4.0 components. This IBX version works with Firebird-4.0.0.1963-0-Beta2-x64, but does not work with Firebird-4.0.0.2496-1-x64. When calling the Prepare method for an SQL query, an error is thrown: Data type unknown When Executing: (here is the query text).
The fix for this error is quite simple:
1. Open the downloaded package fbintf [Packages -> Open the downloaded package -> (Select fbintf)];
2. Select the FB30Statement.pas file and load it;
3. Find the procedure TIBXINPUTSQLDA.Bind;
4. Make the changes suggested by Vlad Horsun:
procedure TIBXINPUTSQLDA.Bind (aMetaData: Firebird.IMessageMetadata);
var i: integer;
begin
FMetaData: = aMetaData;
with FFirebird30ClientAPI do
begin
// Count: = metadata.getCount (StatusIntf);
Count: = aMetaData.getCount (StatusIntf);
5. Correct the procedure in the same way: procedure TIBXOUTPUTSQLDA.Bind (aMetaData: Firebird.IMessageMetadata);
6. Compile, use and sincerely thank Vlad Khorsun, who discovered the error and suggested a way to fix it.