Announcement

Collapse
No announcement yet.

Fehler bei Belegung von PrivateDir in einer DLL

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

  • Fehler bei Belegung von PrivateDir in einer DLL

    Hallo Leute

    ich habe ein Problem bei der Belegung der Properties einer Session in einer aufgerufenen DLL.<br>
    Dies beginnt bereits damit, dass die Hints des Debugger die Eigenschaften der EXE-Session anzeigen, z.B. Active = True, dennoch wird die Anweisung für Active = False durchlaufen.
    Die Ausgabe der Propery-Belegung über OutputDebugString im Ereignisprotokoll gibt hier Klarheit (siehe Beispiel).<p>
    Ich habe die Property NetfileDir in der Exe sowie in der DLL auf das gleiche Verzeichnis gesetzt. Den Sessionname habe ich mal identisch mal abweichend zur Exe belegt. In der Exe ist Session.Active = True. Wird in der DLL die Property PrivatDir belegt, erhalte ich beim Aufruf von qry.Open die Fehlermeldung: <I>Tabellen geöffnet - Diese Operation ist aktuell nicht durchführbar</I>. Unterlasse ich die Belegung funktioniert alles wie gewünscht. Die Exe hat die Tabelle <b> nicht </b> im Zugriff!<P>
    <p><b>
    Frage: Was gilt hier nun oder - wo liegen nun die Sperrdateien der DLL?
    </b><p>
    <p>
    Beispiel: Initialisierung der DLL-Session
    <PRE>
    //Achtung Debugger lügt, zeigt Session der Exe
    if not Session.Active then
    begin
    OutputDebugString(PChar('Active = True'));
    OutputDebugString(PChar('SessionName (vor): ' + Session.SessionName);
    Session.SessionName := 'DLLSESSION'; //Alternative 'EXESESSION'
    OutputDebugString(PChar('SessionName (nach): ' + Session.SessionName);
    OutputDebugString(PChar(NetFileDir (vor): ' + Session.NetFileDir);
    Session.NetFileDir := 'Datenverz';
    OutputDebugString(PChar(NetFileDir (nach): ' + Session.NetFileDir);
    OutputDebugString(PChar(PrivateDir (vor): ' + Session.PrivateDir);
    Session.PrivateDir := 'C:\Temp\MyDir\';<br>
    OutputDebugString(PChar(PrivateDir (nach): ' + Session.PrivateDir);
    end else
    OutputDebugString(PChar('Active = False'));
    </PRE>

    MFG Uwe
Working...
X