Re: Windows Ada database support.

From: Dmitry A. Kazakov (mailbox_at_dmitry-kazakov.de)
Date: 12/09/04

  • Next message: Dmitry A. Kazakov: "Re: Windows Ada database support."
    Date: Thu, 9 Dec 2004 14:27:35 +0100
    
    

    On Thu, 9 Dec 2004 11:58:06 +0000 (UTC), Georg Bauhaus wrote:

    > Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
    >:
    >: But you can translate into SQL. Why Ada.Database.Relational.Foo cannot call
    >: My_ Fancy_DB.Execute ("BAZ ...")? I do not propose to write a new DB
    >: engine.
    >
    > This brings us back to the original questions :-)
    >
    >: Why should I query? It is for untyped tables. If I have an object at hand
    >: then I know its type and so everything I can do with it. If I don't, then I
    >: have another object, a container that refers to my object. That container
    >: again has a type and that provides operations to access its elements.
    >
    > Relations. Records In DB system, as well as records in Ada have components
    > which can be updated. Relations between 2 or more objects may thus depend
    > on time.

    = bad design, if you are you talking about changes unknown during design.
    In that case you are in trouble anyway! You have to modify all UPDATE
    statements if just a new column is added. Consider a memory snapshot made
    before changing the CPU from Intel to PowerPC. This is what your DB is
    worth. You can still read and write it. But data without semantics is a
    garbage.

    But if my language supports interface inheritance I can still deal with
    reasonable changes. I could derive new types from old bases and throw out
    old representations:

    type X is record
       Foo : Integer;
       Bar : String (...)
    end record;

    type Y is new X without Foo -- (:-))
       with record
          Baz : Float;
       end record;

    Of course the compiler will force me to define getter and setter for Y.Foo,
    otherwise all class-wide methods will be lost.

    > However, an object's type cannot reflect this, because types
    > are static. You could associate one different type with each possible
    > combination of component values in your program...

    1. No application uses all possible combinations. They have very concrete
    things to do.

    2. Types are static but values are not. This is why T'Class works so
    nicely!

    3. Remember, I always campaigned for MI and MD in comp.lang.ada! (:-))

    -- 
    Regards,
    Dmitry A. Kazakov
    http://www.dmitry-kazakov.de
    

  • Next message: Dmitry A. Kazakov: "Re: Windows Ada database support."

    Relevant Pages

    • Re: How to set Site for Control?
      ... > collection of all controls in the design surface. ... > container and its components. ... > there is a separate link object that implements the ISite interface. ... Forms and user control has a member ...
      (microsoft.public.dotnet.framework.windowsforms)
    • Re: Passing derived class object array in place of base class object array
      ... I did some soul searching about the design of the application ... The problem was that there were two parallel hierachies of ... And I believe in the concepts of object orientation as "guidelines" ... >> container of base objects, because what happens if you try to put a base ...
      (comp.lang.cpp)
    • Re: Limiting content width - DIV or BODY?
      ... I essentially designed my site for 800x600 px screensize and up, ... I've checked out some award-winning websites and this is technique seems ... So the absolute positioning is only relative to the container not ... the definition of good design simply becomes any website ...
      (alt.html)
    • Re: Passing derived class object array in place of base class object array
      ... I did some soul searching about the design of the application ... The problem was that there were two parallel hierachies of ... And I believe in the concepts of object orientation as "guidelines" ... >> container of base objects, because what happens if you try to put a base ...
      (comp.lang.cpp)