Announcement

Collapse
No announcement yet.

TADOConnection eine Frage zum Aktivieren/Deaktivieren

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

  • TADOConnection eine Frage zum Aktivieren/Deaktivieren

    Hi!

    Also wenn ich die TADOConnection auf active := false setze werden alle verbunden TADODataset auch auf False gesetzt.
    Wenn ich es anschließend wieder auf true setze bleiben die TADODataset aber auf false

    1) DAs ist meine erste Frage <b>WARUM? </b>

    2) Ist das ein gute Idee wenn ich bei jedem Formular aufruf die <b>TADOConnection</b> auf true setze und die benötigten <b>TADODataset</b> auch auf true setze und beim Schließen (oder wenn ich die Datenbanken nicht mehr brauche!) wieder auf false setze?

    3) Wie machen ich das dann wenn mehrere Benutzer auf meine Datenbanken zugreifen (ich verwende Access2000 Datenbanken) wollen?
    Momentan ist es nicht Multiuserfähig!!

    BINE :_)

  • #2
    Hallo Bine<br>
    zur 1. Frage weiß ich auch keine Antwort, außer: wenn die Tabellen der ADOConnection untergeordnet sind,<br>
    sind natürlich auch die Tabellen (-> ADODataSets) zu, anders herum, sie sind auch noch zu wenn Du die <br>
    Connection wieder aktivierst.<br>
    2. Beim mir ist zunächst mal immer alles zu. Zum Öffen habe ich eine eigene Procedure geschrieben,<br>
    die mir jeweils alle erforderlichen Tabellen öffnet, bei jeder Tabelle prüfe ich auch, ob die nicht schon zufällig<br>
    aktiv ist. <br>
    3. Kann ich mir eigentlich nicht vorstellen. Schick mir mal den ConnectionString. <br>
    Das Problem hatte ich noch nicht, ... ? <br>
    Hendri

    Comment


    • #3
      <pre>
      object ADOConnection: TADOConnection
      Connected = True
      ConnectionString =
      'Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data ' +
      'Source=M:\XXX\Database\database.mdb;Mode=Share Deny Read|Shar' +
      'e Deny Write;Extended Properties="";Locale Identifier=1033;Jet O' +
      'LEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDBat' +
      'abase Password="";Jet OLEDB:Engine Type=5;Jet OLEDBatabase Loc' +
      'king Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global' +
      ' Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLED' +
      'B:Create System Database=False;Jet OLEDB:Encrypt Database=False;' +
      'Jet OLEDBon'#39't Copy Locale on Compact=False;Jet OLEDB:Compact W' +
      'ithout Replica Repair=False;Jet OLEDB:SFP=False'
      CursorLocation = clUseServer
      IsolationLevel = ilReadUncommitted
      LoginPrompt = False
      Mode = cmShareExclusive
      Provider = 'Microsoft.Jet.OLEDB.4.0'
      Left = 32
      Top = 24
      end
      </pre&gt

      Comment


      • #4
        Hallo Bine,<br>
        entschuldige, daß ich erst jetzt antworte, habe Freitag früher Schluß gemacht.<br>
        Also, was ich auf den ersten Blick sehe, hast Du keine System database angegeben. <br>
        Das mußt Du aber bei Multiuser - Betrieb machen. Habe ich auch erst durch Andreas K. <br>
        erfahren. bei mir sieht das ganze so aus:<br>
        <br>
        function Make_Con_String(DBN:string):string;<br>
        var s : string;<br>
        begin<br>
        s:='Provider=Microsoft.Jet.OLEDB.4.0;';<br>
        s:=s+ 'Data Source=' + DBN + ';';<br>
        s:=s+ 'Mode=Share Deny None;';<br>
        s:=s+ 'Jet OLEDB:System Database="C:\Prg\Micprog\Micsys.mdw";';<br>
        s:=s+ 'Jet OLEDBatabase Password="mic";';<br>
        s:=s+ 'Jet OLEDB:Engine Type=4;';<br>
        result:=s;<br>
        end;<br>

        Also für alle ConnctionStrings die ich brauche, nehme ich diese Funktion,<br>
        und übergebe nur den FileName für die Access - Datenbank. Falls Du Access2000<br>
        benutzt, muß Du wohl s:=s+ 'Jet OLEDB:Engine Type=5;'; wählen<br>
        Hendri

        Comment


        • #5
          Hallo Henrik!!

          System database?? Du meinst das Verzeichnis wo meine Daten liegen oder?? DAs habe ich ja angegeben oder <b> M:\XXX\Database\database.mdb</b>

          Mein Vater meinte das es mit dem Benutzer zusammenhängt, weil ich mich als Administrator in die Tabelle stelle, aber wie oder was konnte er mir nicht sagen.

          BINE :_

          Comment


          • #6
            <b>Hallo Henrik</b>
            hab gerade meinen Code durchgesehen,
            stimmt ich habe <b> Create System Database=False </b> gesetzt.

            wie setze ich eine <b>System Database</b> und was ist das?

            Comment


            • #7
              Hallo Bine,
              also eine "System.mdw" befindet sich nach der Installation von Access (ich kenn nur 97)<br>
              im Verzeichnis C:\WINNT\system32. Die habe ich mir in mein Programmverzeichnis kopiert.<br>
              Und wie oben angegeben in die Funktion Make_Con_Str eingebaut. Mehr hab ich nicht gemacht!<br>
              Zu erörtern was system.mdw macht fehlt mir die Zeit. Mal im Access - Handbuch nachschlagen ;-(.<br>
              Hen<b>d</b>ri

              Comment


              • #8
                <b>Hallo Hendrik!!</b>

                hab in meiner <b>udl datei </b> system database auf true gesetzt und den gleichen pfad wie bei der datasorce angeben, aber wenn ich jetzt auf verbindung testen gehen kommt die Meldung

                <b>"Fehler beim Testen der Verbindung durch einen Fehler beim Initialissieren des Providers. Die Tabelle 'MSysAccounts'
                konnte in der Informationsdatei für Arbeitsgruppen nicht geöffnet werden."</b>

                Was habe ich falsch gemacht???

                BINE :_

                Comment


                • #9
                  moment!! ich muß also diese system.mdw angeben?? ich teste mal!

                  Comment


                  • #10
                    Verbindungstest ERFOLGREICH!!!! MAL sehen ob mein Programm jetzt multiuserfähig ist!!!

                    BINE *freu* :_

                    Comment


                    • #11
                      Was muß in dieser Datei stehen?? wird diese Datei mit der data.mdb verknüpft??

                      BINE :_

                      Comment


                      • #12
                        siehe Markt und Technik "Access97" Teil 7:Arbeitsgruppen - Informationsdateien S. 801: "Verwenden Sie nicht die Standard - Version der ... <br>
                        deshalb mache ich für jedes Projekt eine neue *.MDW!<br>
                        Hendri

                        Comment


                        • #13
                          ich hab ein einziges Buch das von Access2000 handelt!! Und auch das habe ich von meinen Vater kopiert müssen! Aber da geht es nur um Anfänger/BAsiswissen.

                          Bine :_

                          Comment


                          • #14
                            Muß ich mich dann anmelden?

                            Ich meine ich muß ja jetzt schon alle Benutzer deklarieren/erstellen oder??
                            Kannst du mir das wenigstens erklären??

                            BITTE ! Wäre wirklcih nett!!

                            BINE :_

                            Comment


                            • #15
                              Ja Bine, Du wirst Dich wohl anmelden müssen. Ich gehe immer so vor:<br>
                              Wenn ich die Datenbank aufgebaut habe, vergebe ich auf sie (in Access) ein <br>
                              Passwort z.B. "MYPWD". Dann speichere ich den ganzen Kram, anschließend setze <br>
                              ich das Passwort direkt in den ConnnectionString (im Quelltext) ein. Weiterhin setze <br>
                              ich die ADOConnection - Property "LoginPrompt" auf false. Das war es dann auch schon
                              ;-))<br>
                              Hendri

                              Comment

                              Working...
                              X