Forum > Third party

IBX 2.5.0: can't install to trunk

(1/1)

zoltanleo:
Hi tonyw

I tried to install the latest version of iBX on fpc/lazarus trunk but couldn't do it due to installation errors:

1.

--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---IBCustomDataSet.pas(1046,5) Error: Expected another 1 array elements
this is fixed quite easily, just add one element like this

--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---...    nil                 {ftExtended}{$IFEND}    , nil //<-- added one more parameter    );(*var  CreateProviderProc: function(DataSet: TIBCustomDataSet): IProvider = nil;*) ...
2.
another error that needs fixing the code

--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---IBDynamicGrid.pas(199,15) Error: Function header doesn''t match the previous declaration "DrawCellText(LongInt;LongInt;TRect;TGridDrawState;AnsiString);"grids.pas(4740,23) Error: Found declaration: DrawCellText(LongInt;LongInt;TRect;TGridDrawState;const AnsiString);
Please make the correct changes to the code

tonyw:
Thanks for pointing these out:

1. This is like playing wack-a-mole. The type keeps changing. I am going to have to move away from an array of TFieldType in order to avoid this problem again.

2. Why did someone think it worth changing a string to a const string?

tonyw:
I have posted an update to https://svn.mwasoftware.co.uk/ibx/trunk. Please check it out.

zoltanleo:

--- Quote from: tonyw on December 07, 2022, 12:32:08 am ---I have posted an update to https://svn.mwasoftware.co.uk/ibx/trunk. Please check it out.

--- End quote ---


Hi tonyw. Thank you for your reply and for your selfless care and support!

There are two errors:
1. (see attach)

--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---IBDynamicGrid.pas(463,119) Error: Procedure directive "OVERRIDE" not allowed in implementation section
If you comment out the override, the following error appears

2.

--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---IBArrayGrid.pas(152,15) Error: Function header doesn''t match the previous declaration "DrawCellText(LongInt;LongInt;TRect;TGridDrawState;AnsiString);"grids.pas(4740,23) Error: Found declaration: DrawCellText(LongInt;LongInt;TRect;TGridDrawState;const AnsiString);
If you fix the parameter type to a constant, then the packages are compiled successfully.

==============

I also have a big wish that Lazarus does not check for the presence of a Firebird server with such a warning at startup:

--- Quote ---IBX is unable to locate or otherwise load the Firebird Library - have you remembered to install it? - Object reference is Nil or VMT is damaged
--- End quote ---

Firstly, this may not be true, because a user can have several servers running at the same time (this is the case for Windows).

Secondly, this control can be easily bypassed if you put fbclient.dll/.so/.dblib of the same bitness next to the Lazarus executable file.

This check has remained since the time of IB, when the server could only be started in a single instance. And this test is an atavism for today.

Navigation

[0] Message Index

Go to full version