Announcement

Collapse
No announcement yet.

Wo schreibe ich das alle User die gleiche Netzwerkkontrolldatei verwenden?

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

  • Wo schreibe ich das alle User die gleiche Netzwerkkontrolldatei verwenden?

    Ich möchte das min. 3 User die gleichen Paradox Tabellen verwenden (Desktopanwendung) nur ist mir nicht ganz klar wie ich das "anstellen" soll.

    Kann mir jemand helfen??
    DANKE BINE :-)

  • #2
    Hi!

    Ich habe jetzt in der Tsession (wie im Buch von Andreas Kosch beschrieben) in der Netfiledir den Ort der Netzwerkkontrolldatei beschrieben.

    Frage:
    Ist das jetzt Allgemein gültig? Oder muß ich Sie in jedem Formular neu aufführen?

    Wer weiß Rat?
    Eine verzweifelte (erstmalige) Desktopprogrammiererin :-

    Comment


    • #3
      HIlfe!!!

      Wieso steht jetzt "Fehler: Index nicht mehr gültig"??

      HILFE!

      Comment


      • #4
        HI!

        HAbe die Ttable mit der Tsession verbunden, doch jetzt kommt beim Formularaufruf folgende Meldung "Im Projekt test.exe ist eine Exception der Klasse EDBEngineError aufgetreten- Meldung " Verzeichnis wird von einer anderen .Net Datei kontrolliert
        Verzeichnis M:\test\
        Datei \\testlaufwerk\pdoxusrs.lck

        Prozeß wurde angehalten ...

        wer weiß Rat?
        Hat das was mit den Paradox dateien zu tun?
        Warum funktioniert das nicht??

        Muß ich für jede ttable eine session machen oder reicht eine für alle ttables in meinen Programm

        Comment


        • #5
          Hi Binchen,

          die lck-Dateien von Paradox werden zum Sperren angelegt. Brichst Du einen Test ab oder schmiert das Programm ab, wird die lck-Datei nicht automatisch gelöscht. Bist Du der einzige Nutzer, kannst Du die alten lck-Dateien gefahrlos löschen. Dann sollte das Progrämmelchen funktionieren.

          Thoma

          Comment


          • #6
            Hallo Bine,

            dein Weg ist soweit schon richtig. Die Datei wird in Netfiledir von TSession eingetragen, und dann die Datenbank sowie jede Tabelle mit der Session verbunden. Hierdurch kannst du jedem Programm eine eigene Netzkontrolldatei zuweisen.

            Brauchst du diese Funktion nicht, kann die Einstellung auch in der BDE-Konfiguration für den Eintrag Paradox vorgenommen werden. Somit gilt es als Vorgabe für alle Programme, die die BDE benutzen.

            Wichtig ist dabei, das dies auf jedem Rechner vorgenommen wird. Die Fehlermeldung, dass die Tabelle noch von einer anderen Net-Datei kontrolliert wird, bedeutet, dass noch ein Rechner ohne diese Einstellung auf eine Tabelle zugreift.

            Gruß, Frank

            Comment


            • #7
              Ich habe die 3 Dateien paradox.lck pdoxusrs.net pdoxwork.cfg gelöscht bevor ich die Änderungen mit dem Session durchgeführt habe.

              Ich bin die einzige die an diesem Programm programmiert.

              Leider funktioniert das noch immer nicht, ich habe alle ttables mit der session verbunden, doch er "schreit" immer noch!

              Wie kann ich das installierfähig machen?
              Ich meine, ich weiß ja den pfad noch nicht wo die daten des kunden liegen sollen, also muß ich ihn im installationspfad angeben.

              BIN

              Comment


              • #8
                FRAGE:

                WENN ICH MIT HILFE von dem von Inprise zertifiziertes Installationsprogramm eine Installation erstelle, kann ich dort den alias/verzeichnis der daten eingeben?????

                SABINE :-

                Comment


                • #9
                  Hi

                  Jain. Verlaß Dich nicht darauf das Dein Alias beim Kunden immer korrekt existiert !! Mit vorliebe wird z.B. von der Schi... T-Online Software die BDE nur teilweise neu installiert, bzw. die kompletten Aliase gelöscht (CFG-Datei wird ersetzt). Da die T-Online Software nun periodisch updated, hatten wir auch periodisch Probleme mit der BDE bei Kunden, mit T-Online

                  Nun, Du hast schon eine TSession angelegt, fehlt nur noch eine eigene TDatabase. Diese stellt im Grunde genommen ein dynamischer Alias dar. Eine Database ermöglicht also das gleiche wie ein globaler Alias der BDE-Konfiguration, ist aber "nur" zu Laufzeit der Anwendung gültig.
                  In der Database wird mit Params['PATH'] = c:\DatenVerzeichniss\ das Datenverzeichniss angegeben. ALLE TTables und TQuerys sollten mit der Database verknüpft sein.

                  <pre>

                  uses BDE;

                  procedure InitBDE;
                  begin
                  try
                  // erstmal alles schließen
                  Database.Connected := False;
                  Session.Close;
                  // Config lesen, Daten- und Netpfad als separate Angabe
                  DataPath := LeseDatenPfadAusConfig;
                  NetPath := LeseNetPfadAusConfig;
                  // nun Lockfiles auf Verdacht hin löschen
                  // ist kein Problem, da eingeloggte Sessions die Dateien sperren
                  // es werden also nur MÜLL-Lockfiles gelöscht die blockieren
                  DeleteFile(DataPath + 'Pdoxusrs.net');
                  DeleteFile(DataPath + 'Pdoxusrs.lck');
                  DeleteFile(DataPath + 'Paradox.lck');
                  DeleteFile(NetPath + 'Pdoxusrs.net');
                  DeleteFile(NetPath + 'Pdoxusrs.lck');
                  DeleteFile(NetPath + 'Paradox.lck');
                  // Werte zuweisen und öffnen
                  Session.NetFileDir := NetPath;
                  Session.PrivateDir := GenerateNewTempDirectory;
                  Session.Open;

                  Database.AliasName := GetAliasName(DataPath);
                  if Database.AliasName = '' then
                  begin
                  Database.Params.Values[sPATH] := DataPath;
                  Database.DriverName := sSTANDARD;
                  end else Database.Params.Values[sPATH] := '';
                  Database.Open;

                  except
                  MessageBox('Kann Datenbank nicht initi....);
                  Halt(0);
                  end;
                  end;


                  </pre>

                  "GenerateNewTempDirectory" sollte auf dem lokalen Rechner im Temp Ordner einen neuen Unterordner anlegen. Alle Querys und temporären BDE Dateien werden dann dort abgelegt. Dies verhindert das im Netzwerkbertieb Kollisionen/Verzögerungen auftreten.

                  "GetAliasName()" überprüft nur ob im Pfad ein Alias gemeint ist. z.b so: "ALIAS:PFLEDI" -> GetAliasName = "PFLEDI". Damit ist es möglich anstatt einen echten Datenpfad (c:\daten\xyz\) auf einen Verweiß auf einen globalen BDE-Alias zu nutzen.

                  Ich bevorzuge das globale Session Object und nutze KEINE zusätzlichen Sessions.

                  Die Database sollte einen Namen bekommen, da dieser der interne "AliasName" darstellt mit dem die TTables verknüpft werden.


                  Gruß Hagen

                  PS: obige Routine Copyright (c) 1997-2000 Hagen Reddman

                  Comment


                  • #10
                    tag hagen,

                    du lebst ja noch!!!
                    habe lang nichts mehr von dir gehört!!!

                    sabine, hagen kannst du glauben!!! er und andreas(kosch) sind die absoluten profis hier!!

                    mfg

                    marku
                    Herzliche Grüße

                    Markus Lemcke
                    barrierefreies Webdesign

                    Comment


                    • #11
                      ist dein problem mit der netzsteuerdatei jetzt gelöst, sabine??
                      oder gibt es noch ungereimtheiten!!!

                      mfg

                      marku
                      Herzliche Grüße

                      Markus Lemcke
                      barrierefreies Webdesign

                      Comment


                      • #12
                        Hallo,
                        ich bin auch gerade dabei eine Paradox-Datenbank mit Delphi 5 zu programmieren, auf die mehrere User zugreifen müssen . Zwei Fragen hätte ich da:
                        1. Sehe ich das richtig, das ich diese Pfadeinstellungen mit Session machen muss, damit alle problemlos auf die Tabellen zugreifen können ? Ich dachte bisher, das würde auch so klappen, konnte es aber noch nicht ausprobieren. NetPath muss demnach für jeden User anders sein, sehe ich das richtig ?
                        2. Ich habe versucht meinem Database wie in der dargestellten procedure den Pfad der Datenbank zuzuweisen, da ich eigentlich auch nicht mit einem Alias arbeiten wollte. Ist bloß die (vielleicht dumme) Frage, was ist 'sPATH' und 'sSTANDARD' ? Muss mein Compiler diese Ausdrücke kennen (tut er aber nicht) oder muss ich die irgendwo definieren ???

                        Joa

                        Comment


                        • #13
                          Hi

                          T'schuldige, sPATH und sSTANDARD sind in der Unit BDE deklariert und sollten szPATH bzw. szSTANDARD heisen. Im Grunde handelt es sich um die Strings 'PATH' und 'STANDARD'.

                          Gruß Hage

                          Comment


                          • #14
                            tag hagen,

                            habe gar nicht gewußt, daß du auch datenbanksachen machst!!!!

                            mfg

                            marku
                            Herzliche Grüße

                            Markus Lemcke
                            barrierefreies Webdesign

                            Comment


                            • #15
                              Ja, aber ungern, ist eben "nur" Routine und keine "besondere" Herrausforderung.
                              Davon abgesehen habe ich schon "fast" überall reingerochen nach 15 Jahren )

                              Comment

                              Working...
                              X