fbpx
Welcome, Guest
Username: Password: Remember me
Welcome to the XSharp forum!

Tell us and our members who you are, what you like and why you became a member of this site.
We welcome all new members and hope to see you around a lot!
  • Page:
  • 1

TOPIC:

RDD architecture 10 Jun 2021 08:23 #18759

  • antonello.negrone


  • Posts: 12
  • Hi!

    I'm beginning to dig into the X# architecture writing a new class SPECDX into the XSharp.RDD namespace, but I can't get the debugger to reach the breakpoint inside it.
    It seems it can't load the assembly, because writing anything else "SPECDX" gives the same error:
    DbUseArea(TRUE, "SPECDX", "ANAFRN",, TRUE)

    this error raises:

    System.NullReferenceException
    Riferimento a un oggetto non impostato su un'istanza di oggetto.

    Callstack :
    BasicForm.System.Void BasicForm..ctor()() : E:\DEVELOP\XIDE-Projects\Project1\Applications\TestSpe\Prg\Form1.prg : 30
    static Int32 FormApp1.Exe.Functions.Start(System.String[] asCmdLine)() : E:\DEVELOP\XIDE-Projects\Project1\Applications\TestSpe\Prg\Start.prg : 18


    The RDD is declared as follows and the methods are still empty, there is only the skeleton, compiled into a SPECDX.DLL assembly:
    USING XSharp.RDD      
    USING XSharp.RDD.Enums
    USING XSharp.RDD.Support
    USING System.Collections.Generic
    USING SpeClient
    
    BEGIN NAMESPACE XSharp.RDD
    CLASS SPECDX INHERIT workarea IMPLEMENTS IRdd
    
    METHOD DbEval(info AS XSharp.RDD.Support.DbEvalInfo) AS LOGIC
    RETURN FALSE
    
    METHOD GoTop( ) AS LOGIC
    RETURN FALSE
    
    METHOD GoBottom( ) AS LOGIC
    RETURN FALSE
    
    METHOD GoTo(nRec AS INT) AS LOGIC
    RETURN FALSE
    
    METHOD GoToId(oRec AS OBJECT) AS LOGIC
    RETURN FALSE
    ....others.....
    PROPERTY RecId AS OBJECT GET NULL
    
    PROPERTY RecNo AS INT GET 0
    
    PROPERTY Shared AS LOGIC GET FALSE
    
    
    END CLASS
    END NAMESPACE

    The RDD and the test app are inside the same project, and the DLL and EXE in the same folder, but maybe I'm missing something.

    What I can try to do?
    TIA

    Please Log in or Create an account to join the conversation.

    RDD architecture 10 Jun 2021 08:49 #18760

    • wriedmann
    • wriedmann's Avatar


  • Posts: 2633
  • Ciao Antonello,
    maybe this helps:
    RegisteredRDD.Add(RegisteredRDD{"SPECDX", typeof(SPECDX)})
    This should register your class as new RDD.
    Wolfgang
    P.S. to be honest, I know very little things about the RDD architecture. This code is copied from source Robert has passed to me
    Wolfgang Riedmann
    Meran, South Tyrol, Italy

    www.riedmann.it - docs.xsharp.it

    Please Log in or Create an account to join the conversation.

    RDD architecture 10 Jun 2021 09:52 #18764

    • robert
    • robert's Avatar


  • Posts: 2222
  • Antonello,

    Wolfgang is right about registering the RDD.
    And since you seem to be the first one to actually implement an X# RDD outside of the devteam, it may be a good idea to switch this to direct (email ?) communication between you and me. There may be more "loose ends" in there or things that need to be documented better.

    Robert
    XSharp Development Team
    The Netherlands

    Please Log in or Create an account to join the conversation.

    RDD architecture 10 Jun 2021 21:42 #18775

    • antonello.negrone


  • Posts: 12
  • Ciao Wolfgang,

    this helped to go further.

    Thank you!

    Please Log in or Create an account to join the conversation.

    RDD architecture 10 Jun 2021 21:46 #18776

    • antonello.negrone


  • Posts: 12
  • Robert,
    thank you. I will take your advice :-)

    Please Log in or Create an account to join the conversation.

    • Page:
    • 1