Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Contradicting the opinion of others I decided to tweak further and finally figured out how to increase the number of characters in the "Reconcile" error message. As I thought the problem was in midas.dll, or more specifically the sources that make up the midas dll because the same set of sources can create MidasLib, which does not require a midas dll. To resolve I had to install the Delphi C++ personality to compile the midas.</p> <p>After finding the line of the error, I discovered that there is even a request for repairs to the QC (<a href="http://qc.embarcadero.com/wc/qcmain.aspx?d=84960" rel="nofollow">http://qc.embarcadero.com/wc/qcmain.aspx?d=84960</a>) which seems to have been ignored by the staff of Embarcadero, as that the "Resolution" as is "Deferred to Next Rel" (Deferred to Next Release) but the request is from 2010 and I'm using Delphi XE which in my opinion should have the solution but here I am correcting by myself ;)</p> <p>The problem is inside the method "Clone" of the "DSBASE" class, inside source "ds.cpp" at line 2133 (Delphi XE, Update1). Below is the code block. The red line is the problematic line:</p> <pre><code>// Set the third field for the error string. LdStrCpy((pCHAR)pFldDes-&gt;szName, szdsERRMESSAGE); pFldDes-&gt;iFldType = fldZSTRING; pFldDes-&gt;iUnits1 = 255; // Increased on request.. DBIMAXMSGLEN; pFldDes++; </code></pre> <p>Note that it is very interesting the problem line. It has a constant value of 255, which limits the size of the error messages and a comment "Increased on request". Also note that next to the comment, there is a constant <code>DBIMAXMSGLEN</code>, which I had found and already suspected as being responsible for the problem, but as it was not being used I changed the value of <code>DBIMAXMSGLEN</code> but the error message always came without changes. It is worth mentioning that there is a semicolon (;) after <code>DBIMAXMSGLEN</code> which leads me to think that before (I do not know when) this line was one that was just after my fix:</p> <pre><code>pFldDes-&gt;iUnits1 = DBIMAXMSGLEN; </code></pre> <p>It's as if someone had deliberately set the field value to 255, removing the previous implementation that was really dynamic and seemingly more correct. After performing the replacement of the line I increased the value of <code>DBIMAXMSGLEN</code> to 1024. <code>DBIMAXMSGLEN</code> is declared "bdetypes.h" as a define. After correcting the line went like this:</p> <pre><code>#define DBIMAXMSGLEN 1024 // Max message len </code></pre> <p>After these two changes in "ds.cpp" and "bdetypes.h" I build, test, and the result was as expected: the error message was presented in full in the Reconcile dialog.</p> <p>To the brave who want to try if they have seen this problem, you need the sources of MIDAS, which comes with Delphi from 2010 if I remember correctly. Good luck to all.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload