Announcement

Collapse
No announcement yet.

Cache5.0 C++ Client

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Cache5.0 C++ Client

    Hallo,
    ich versuche gerade meine ersten Schritte mit Cache5.0 und seiner C++ Schnittstelle.
    Ich hab im Studio ne ganz einfache Klasse entworfen:
    <PRE>
    Class demo.Pet Extends %Persistent [ ClassType = persistent, ProcedureBlock ]
    {

    Property Name As %String;

    }</PRE>

    Danach hab ich die C++ Proxyklassen generiert und ein genauso einfaches C++ Programm geschrieben:
    <PRE>
    #include <iostream>
    #include "demo_Pet.h"

    typedef d_ref<demo_Pet> d_Pet;

    int main()
    {
    Db_err conn_err;
    d_connection conn;
    d_Pet tier;

    conn= tcp_conn::connect("localhost[1972]:PET","_system","sys",&conn_err);

    if(conn_err)
    {
    std::cerr<<"Fehler :"<<conn_err<<'\n';
    }
    try
    {
    Database db(conn);
    std::wstring id;
    std::wcin>>id;

    tier = demo_Pet:penid(&db,id.c_str());
    std::cout<< tier->getName()<<'\n';

    return 0;
    }
    catch(Db_err &err)
    {
    std::cerr<<err<<'\n';
    return -1;
    }
    }

    </PRE>
    Die Datenbank hatte ich im Terminal mit einigen Testdaten gefüllt.
    Also das Programm kompiliert anstandslos und die Abfrage funktioniert auch.Aber beim verlassen des try Blocks(wenn also der angebliche "Smartpointer" d_ref zum tragen kommt bekomme ich eine Access Violation. Ich hab im Debugger mal den Referenzzähler des Smartpointers manuell auf 2 gesetzt damit
    d_ref nicht versucht das Objekt zu zerstören und hatte auch den Erfolg dass die Zugriffsverletzung ausblieb.
    Besonders frustrierend an der ganzen Geschichte ist dass mein Miniprogramm eigentlich genau das Gleiche ist wie das PersonSample das der Datenbank beiliegt(ausser das dieses funktioniert).
    Ich hoffe mir kann hier jemand weiterhelfen.
    Was läuft mit der Zerstörung des(oder der) Objekte falsch? Wenn ich mehrere Objekte öffne oder auch neue erstelle bekomme ich für jedes einzelne eine Zugriffsverletzung.

    MfG

  • #2
    Der Support für Cache ist so toll.....man weiß garnicht welche Hilfe man zuerst annehmen soll!
    Ich hab den ganzen Mist auch schon längst wieder verworfen.

    Das beste ist;ich hatte das Problem auch in der newsgroup von Intersystems gepostet.Mit dem Resultat dass der Beitrag nen Tag später gelöscht wurde.
    Hab ich da etwa nen Bug gefunden?
    Naja,wenn das die Art und Weise ist damit umzugehen...

    Mf

    Comment

    Working...
    X