Datenbank Alias per Code einrichten



  • Hello People,

    bräuchte Rat bei folgender Sache:

    Ich habe einen Button eingerichtet der nachdem man ihn angeklickt hat,
    im Hintergrund ein Verzeichnis erstellt. Außerdem soll er einen Datenbank-Alias einrichten.
    Das funktioniert beim ersten Programmaufruf auch ganz toll.
    Nur beim nächsten Mal bekomme ich eine Fehlermeldung, da der Alias dann
    schon existiert.
    Wie bekomme ich das Programm dazu, den Alias nur beim ersten Programmstart einzurichten ?
    Ich nutze bis jetzt folgenden Quellcode beim OnClick-Event des Buttons:

    CreateDirectory(C":\\DATABASE", NULL);
    Session->AddStandardAlias("Versuch", "C:\\DATABASE", "");

    Danke im Voraus



  • Das ist nicht einfach eine Fehlermeldung sondern eine Exception, und die können mit try/catch etc. abgefangen werden.
    Tip: Fehlermeldungen nicht nur überfliegen sondern aufmerksam durchlesen und die dort gegebenen Informationen analysieren.

    Siehe auch den FAQ-Beitrag zum Exception-Handling (unter "Drucker").



  • Entweder Du packst das in try catch oder Du liest die Aliase vorher ein.



  • Danke erstmal,
    wenn ich das richtig verstanden habe müsste ich schreiben:

    CreateDirectory(C":\\DATABASE", NULL);

    try
    {
    Session->AddStandardAlias("Versuch", "C:\\DATABASE", "");
    }

    catch
    {
    Was kommt dann hierhin ?
    {



  • Das ist fast richtig.

    Ich würds so versuchen:

    CreateDirectory("C:\\DATABASE", NULL); 
    
    try 
    { 
    Session->AddStandardAlias("Versuch", "C:\\DATABASE", ""); 
    } 
    
    catch (...) //... steht für Alle Exceptions abfangen 
                //man kann den Typ der Exception angaben 
                //der bei der Fehlermeldung angezeigt 
                //wird der.Immmer (oder Meistens) fangen 
                //exceptions mit E and also z.B. EDatabaseError.
                //Wenn man einen bestimmten Typ abfangen 
                //will muss man das z.B. so schreiben: 
                //catch (EDatabaseError &E ) wobei E auch 
                //anders heißen kann.
    { 
    Was kommt dann hierhin ? //hier muss nicht 
                             //unbedingt was stehen.
    }
    

    steht aber sicher in der faq(hab se nich gelesen)



  • Alles klar, jetzt funzt es 🙂

    DANKE


Log in to reply