Along with all of the bugs issues addressed in RAD Studio 10.3.3 and listed at http://docwiki.embarcadero.com/RADStudio/Rio/en/New_features_and_customer_reported_issues_fixed_in_RAD_Studio_10.3.3 we also included improvements to the IBX (InterBase eXpress) library that ships with the IDE, incorporating changes done to the IBX library by Jeff Overcash.
These were marked as closed with a delay, and so they were not included in the official list in the docwiki above, but I wanted to highlight them anyway -- IBX is a relevant library a lot of RAD Studio developer use.
This is the list of additional, IBX related fixes
More IBX fixes (and some features tied to InterBase 2020 features) are expected in the next major release of RAD Studio.
Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder. Design. Code. Compile. Deploy.
Start Free Trial
Free Delphi Community Edition
Free C++Builder Community Edition
Hello Marco, I have been debugging through the code. There are three issues I have. They all involve StoredProcedures. I am using Firebird. Please note that this code has been working since the 2001 timeframe starting with C++ Builder 3. It works fine in 10.3.2.The first issue is that a TParam as shown.TParam* Param1 = SPI->MakeParam(ftDateTime,"V_LASTRUNSUMMARYDATE",ptInput); Param1->AsDateTime = DBMachine.LastRunSummaryDate;Whenever I put the cursor of the Param1->AsDate (after stepping over the code) the debugger will show the Date in 30-DEC-2019 format, not the current short date format. 10.3.2 shows the current date format.I subsequently get a SQL error -303.The second issue is storing into a blob field in the database. I get an error that I am trying to store 937 characters in a field that only supports 80. Of course the 937 is the size of the blob in that specific instance.The third issue (it doesn't throw an error) is a Stored Procedure where I am checking to see if a record exists. A brief snippet of code.SPI->MakeParam(ftInteger,"V_SERIALNO",ptInput)->AsInteger = SerialNo; SPI->MakeParam(ftString,"V_SUMMARYID",ptInput)->AsAnsiString = SummaryID.SubString(1,20); SPI->MakeParam(ftInteger,"R_EXISTS",ptOutput); SPI->Proc->Prepare(); SPI->Proc->ExecProc(); int intexists = SPI->Proc->Params->ParamValues["R_EXISTS"]; exists = intexists == 0 ? false: true;
Note: the SPI is just a class we use to wrap things.The intexists always returns 0 regardless of whether the record is there or not.Again, this has worked until this release.I had to install 10.3.3 onto a separate computer so as not to disrupt my current work.I can try to create a minimalist test program if necessary. But that will take me some time.I have considered installing Interbase as a local database and testing against it instead of Firebird, but hoping to not have to do that.Also, I have considered FireDAC, but I only have a profession license so that covers only locally attached databases and I am not in a position to upgrade my C++ Builder to a higher level.
Hello Marco,I will have to reinstall 10.3.3 and create a test program for you I think. I am hoping I can do this later this week.
Which is the specific issue you see? There is a chance this is a change, but might be a problem we don't know about. Please follow up on quality.embarcadero.com or email me at my first.last embarcadero.com email
10.3.3 broke IBX for me. So now I have to wait until 10.4? Is it possible to copy the IBX files from 10.3.2 and use them in 10.3.3?