Uniface User Forum

 View Only
  • 1.  dberror = -254

    PARTNER
    Posted 08-05-2022 05:48
    Edited by Michael Rösch 08-05-2022 05:51
    Hello everybody,

    with 9.7 we got it pretty seldom, with 10.3 it occurs much more often.

    Does anybody of you have an idea, how it is possible to produce a dberror -254 when doing a retrieve?

    We use informix as backend. The explanation of this error code:

    "-254 Too many or too few host variables given.

    The number of host variables that you named in the INTO clause of this
    statement does not match the number of columns that you referenced in
    the statement.

    Locate the text of the statement (in a PREPARE or DECLARE statement) and
    verify the number of placeholders. Then review the list in the INTO clause
    to see which item or items are incorrect."

    Our Params for Informix:
    USYS$INF_PARAMS=online, multiple connection, hold cursors, dirty read

    Best regards

    ------------------------------
    Michael Rösch
    Abrechnungszentrum Emmendingen
    ------------------------------


  • 2.  RE: dberror = -254

    PARTNER
    Posted 08-10-2022 04:25
    Hi Michael,

    I'm not at all familiar with Informix. However, just reading the error message, sounds like the sort of error we used to get when running with packages after a change to the table structure. I would
    • Check that the model definition and database definition of the table (and any inner entities) are the same.
    • Then check that the component that is failing was compiled under the correct version of the tables. If you don't know the date the entity was changed, there isn't really a good way to do this other than recompile and release. 
    • If there has been a table change and you are running packages, you would also need to rebuild the packages.

    Good luck

    ------------------------------
    Mike Porter
    Equiniti Group
    Belfast, UK
    ------------------------------



  • 3.  RE: dberror = -254

    PARTNER
    Posted 08-10-2022 05:28
    Hi Mike,

    thank you very much for your reply and your suggestions.

    Unfortunately that's all I've already done before posting my question to the community.
    Model and database definition are correct. And I did a compile all for the whole repository. 
    :-(

    Maybe it has something to do with "hold cursors"?

    Best regards

    ------------------------------
    Michael Rösch
    Abrechnungszentrum Emmendingen
    ------------------------------



  • 4.  RE: dberror = -254

    PARTNER
    Posted 08-10-2022 07:12
    Its possible, the error description would indicate a "Nested iteration over the same entity". It also indicates its a web error (which kind of counts me out for diagnostic advice because I haven't looked at web stuff in ages).
    • Does this table have a self join with an inner sub type painted on the page? (not sure why it would be a problem though)
    • Or maybe its calling a service which does a retrieve on the same entity while its in the read trigger? (this maybe a problem with the hitlist management - and maybe where hold cursors comes in)
    • The last thing I can think of would be having a setocc of the entity that is being triggered from something called from the read trigger. 
    Best option maybe enhanced logging, though if this is a live web environment that could produce large files. Turning it on in code immediately before the retrieve and turning it off afterwards will limit the impact.

    Mike

    ------------------------------
    Mike Porter
    Equiniti Group
    Belfast, UK
    ------------------------------