Announcement

Collapse
No announcement yet.

DELPHI5P: Zur Laufzeit in der BDE einen Alias erstellen

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

  • DELPHI5P: Zur Laufzeit in der BDE einen Alias erstellen

    Hallo Delphianer,
    in meiner Anwendung (PARADOX-Datenbank) setze ich einen Callback ein. In der BDE habe ich einen Alias auf das Verzeichnis mit den DB-Dateien erstellt und alles läuft bestens. Wenn ich ohne Alias arbeite und das Verzeichnis der DB-Dateien direkt in der Query1 eintrage (z.B. Query1.DatabaseName := sVerzDatBank), dann gibt es beim Callback-Funktion-Registrieren von der BDE Fehlermeldungen.
    Da ich die Anwendung weitergebe (InstallShield), möchte ich erreichen, daß beim Neustart der Anwendung der BDE-Alias in der BDE erstellt wird.

    Nur wie stelle ich das an. Hättest Du eine Lösung für mich ?

    Mfg.
    Uwe

  • #2
    <p><font face="Arial, Helvetica, sans-serif" size="2" color="#000080"> &nbsp;<br>
    Diese Funktion &uuml;berpr&uuml;ft, ob ein BDE-Alias definiert ist. Ist
    dies nicht der Fall, so wird er im angegebenen Pfad angelegt. Die Funktion
    gibt zur&uuml;ck, worauf der Alias zeigt. Existiert das Verzeichnis des
    Alias nicht, so wird es angelegt.</font></p>
    <p><font size="2" color="#000000" face="Courier New, Courier, mono"><b>uses</b>
    DBTables, FileCtrl;</font></p>
    <p><font face="Courier New, Courier, mono" size="2"><b>FUNCTION</b> Check_Alias(Alias_Name,
    DefaultPath: <b>String</b>): <b>String</b>;<br>
    <b>VAR</b> CA_StringList :TStringList;<br>
    <b>BEGIN</b><br>
    &nbsp;CA_StringList := TStringList.Create;</font></p>
    <p><font face="Courier New, Courier, mono" size="2"> <b>&nbsp;TRY</b><br>
    &nbsp;&nbsp;Session.GetAliasParams(Alias_Name, CA_StringList);<br>
    <b>&nbsp;EXCEPT</b><br>
    <b>&nbsp;END</b>;</font></p>
    <p><font face="Courier New, Courier, mono" size="2"> <b>&nbsp;IF</b> CA_StringList.Count
    = 0<br>
    &nbsp;&nbsp;</font><font face="Courier New, Courier, mono" size="2"><b>THEN</b>
    // Alias noch nicht definiert<br>
    <b>&nbsp;&nbsp;&nbsp;BEGIN</b><br>
    &nbsp;&nbsp;&nbsp;&nbsp;Session.AddStandardAlias(A lias_Name, DefaultPath
    , <font color="#ff0000">'PARADOX'</font>);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;Session.SaveConfigFile;<br >
    <b>&nbsp;&nbsp;&nbsp;END</b>; // IF CA_StringList.Count = 0</font></p>
    <p><font face="Courier New, Courier, mono" size="2"> <b>&nbsp;TRY</b><br>
    &nbsp;&nbsp;Session.GetAliasParams(Alias_Name, CA_StringList);<br>
    <b>&nbsp;&nbsp;Result</b> := Copy(CA_StringList.Strings[0],6,255);<br>
    <b>&nbsp;EXCEPT</b><br>
    <b>&nbsp;&nbsp;Result</b> := DefaultPath;<br>
    <b>&nbsp;END</b>;</font></p>
    <p><font face="Courier New, Courier, mono" size="2"> &nbsp;CA_StringList.Free;<br>
    &nbsp;ForceDirectories(Result);<br>
    <b>END</b>;<br>
    &nbsp; </font></p&gt
    Schöne Grüße, Mario

    Comment


    • #3
      Hallo Mario,
      vielen Dank für das Beispiel. Hat einwandfrei funktioniert.
      Gruß
      Uw

      Comment


      • #4
        Eine andere Möglichkeit wäre der temporäre Alias mit Hilfe eine TDatabease Komponente<br> Siehe dazu Delphi 3 Datenbankentwiklung von Andreas Kosch oder ich Maile dir das Beispie

        Comment


        • #5
          Mich würde es interessieren, wie man einen Alias für eine ACCESS Datenbank zur Laufzeit anlegt? Geht das überhaupt ohne ADO-Komponenten?
          Gruß
          Ral

          Comment


          • #6
            Hallo, in welchem Programmteil fügt man diese function ein. Danke für eine Antwort

            Comment


            • #7
              Ralf Preuss: <br><br>
              Wenn Du die BDE verwendest, kannst du den Native-Treiber MSACCESS verwenden. Es funktioniert dann genauso wie oben abgegeben, nur PARADOX durch MSACCESS ersetzen.
              <b>
              Session.AddStandardAlias(Alias_Name, DefaultPath , 'PARADOX');
              Peter hennek: <br><br>
              Die Function kannst Du überall einfügen. nur wichtig ist, dass sie vor dem Öffnen der DB aufgerufen wird

              Comment

              Working...
              X