Announcement

Collapse
No announcement yet.

ADO Grundlagen, langsam werde ich kirre

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

  • ADO Grundlagen, langsam werde ich kirre

    Hallo,
    1. Wer kann mir bitte die Grundlagen erklären. Auf meinem Bürocomputer ist Win2k installiert. Um an die ADO-Komponenten zu kommen, welche v. den tausenden *.dll aus dem Ado-Verzeichnis muss ich einbinden u. wie u. kann ich dann auf eine Access2000-Datenbank zugreifen
    2. Früher konnte ich mit CreateOleObject('DAO.DBEngine') usw. auf Accessdatenbanken und deren Inhalte zugreifen, wie geht das nun mit ADO
    3. Im D5P-Verzeichnis ... \Ocx\Servers gibt es Files access2000.pas etc. Was hat es mit denen auf sich?
    4. Wie komme ich an die SDK-Plattform oder Hilfe, wo wahrscheinlich Pkt. 2 erklärt wird, ran.
    5. Um das ganze zu komplizieren, auf meinem LapTop ist Win 98 installiert (Win2K kann ich da nicht installieren, wegen der neuen Energieverwaltungsschnittstelle). Wie geht man bei Win98 vor.
    Glaubt mir, ich habe alles im Forum genau durchgelesen, sämtliche Querverweise gecheckt, ich kapiere es einfach nicht (hängt wohl auch mit den unzähligen Abkürzungen zusammen).
    Und bitte „langsam“ erklären, evtl. auch ein gutes Buch empfehlen wo ich mich (als Dummerchen in diesem Fall) schlau machen kann. Vielen Dank im voraus
    Gruss Walter

  • #2
    Hallo,

    ich beginne mal mit einer uralten Werbe-Floskel: "Halt - wer wird denn gleich in die Luft gehen"

    zur Frage 1: <br>
    Man muss zwischen den <b>ADO-Objekten</b> (COM-Objekte) und den <b>ADO-Komponenten</b> unterscheiden. Die ADO-Objekte stammen von Microsoft und sind immer dann auf dem Rechner verfügbar, wenn <b>MDAC</b> installiert ist. Dies ist bei einer Vollinstallation vom IE5, von Office 2000 und bei Windows 2000 automatisch der Fall. Die ADO-Komponenten (ADO Express) stammen von Borland und sind nur eine VCL-Ummantelung für die ADO-Objekte, damit man wie gewohnt vieles im Objektinspektor konfigurieren kann.

    zur Frage 2: <br>
    Wenn ADO Express nicht zur Verfügung steht, wird in Delphi als erstes die <b>Typbibliothek</b> "Microsoft ActiveX Data Object 2.x Library" importiert (Menü Projekt | Typbibliothek importieren). Delphi erzeugt dabei eine Unit, in der alle Interfaces und CoClass-Aufrufe bereits vordeklariert werden.

    zur Frage 3: <br>
    Im <b>Servers</b>-Unterverzeichnis liegen die importierten Typbibliotheken der Anwendungen aus Microsoft Office 97 bzw. Microsoft Office 2000. Somit gehört <i>access2000.pas</i> zu Microsoft ACCESS 2000, um diese Anwendung über Automation fernbedienen zu können.

    zur Frage 4: <br>
    Am einfachsten über das Abo <b>MSDN Professional</b> (Microsoft Developer Network), dort wird mehrmals im Jahr auf der CDROM 6 das komplette <b>Platform SDK</b> aktualisiert. Um alles installieren zu können, benötigt man aber einige GByte auf der Festplatte.

    zur Frage 5: <br>
    Es macht keinen Unterschied zwischen Win98 und W2K - das Platform SDK kann auf beiden Betriebssystem installiert werden (ich habe auch Dualboot zwischen Win98+W2k auf meinem Rechner).

    zur Frage "Schlau machen": <br>
    Rein zufällig findet Ende dieses Monats wieder die <b>Entwickler-Konferenz</b> statt (siehe Linke hier im Forum), und dort gibt es auch eine Session über ADO ;-

    Comment


    • #3
      Hallo Andreas
      Erst mal vielen Dank für die prompte Antwort. Also mit der Typbibliothek das hat erst mal funktioniert.
      Nun haben sich in meiner Entwicklungsumgebung die Komponenten TConnection, TRecord, TStream, TCommand, TRecordset u. TParameter eingenistet ??? Wo bekomme ich jetzt die ADOX Komponenten, her. Ich will hier das Forum nicht zu einem Privatlehrgang missbrauchen aber es muss doch irgendwo nachlesbar sein was ich mit den o.g. Komponeten anfangen kann u. wie u. mit welchen Befehlen bzw. Parametern (s. CreateOleObjekt(DAO.DBEngine) <- heisst das immer noch so?) auf die
      Objekte, welche Objekte stehen überhaupt zur Verfügung, zugreifen kann. Ich habe nun mal das Problem, dass ich mit theoretischen Abhandlungen nicht viel anfangen kann, ich brauche handfeste Beispiele nach dem Motto „Wie kann ich ....“, den Rest kann ich mir dann selber erarbeiten (habe ich bei DAO dann auch hingekriegt). Mir fehlt der Einstieg. Wenn Du mir nochmal auf die Sprünge helfen könntest.
      Eine Teilnahme an der Entwicklerkonferenz scheidet aus Zeitgründen aus, ich habe schliesslich noch einen Beruf auszuüben, in Delphi programmieren ist nur ein Hobby.
      Vielen Dank im Voraus.
      Gruss Walte

      Comment


      • #4
        Hallo,

        wenn die Typbibliothek importiert wurde, kann man mit der <b>frühen Bindung</b> auf die ADO-Objekte zugreifen und dabei nebenbei auch der Vorteile der Delphi-Programmierhilfe ausnutzen. Das folgende Beispiel liest die Werte der Tabellenspalte "Name" aus:
        <pre>
        procedure TForm1.Button1Click(Sender: TObject);
        var
        Con : Connection;
        rs : RecordSet;
        begin
        Con := CoConnection.Create;
        Con.Open('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Database;ExtendedProperties=dBase 5.0','','',-1);
        rs := Con.Execute('SELECT * FROM Animals',EmptyParam,-1);
        while not rs.eof do
        begin
        Listbox1.Items.Add(rs.fields.Item['Name'].Value);
        rs.MoveNext;
        end;
        end;
        </pre>
        Das nächste Beispiel liefert den Tabelleninhalt als Text-Block zurück:
        <pre>
        var
        aConnection : _Connection;
        aRecordset : _Recordset;
        swData : WideString;
        iRecCount : Integer;
        begin
        aConnection := CoConnection.Create;
        aConnection.Open(cConnStr, '', '', -1);
        aRecordset := CoRecordSet.Create;
        try
        aRecordset.CursorType := adOpenKeyset;
        aRecordset.LockType := adLockOptimistic;
        aRecordset.Open('SELECT KdnNr FROM konto ORDER BY KdnNr',
        aConnection, adOpenStatic,
        adLockReadOnly, adCmdText);
        iRecCount := aRecordset.Get_RecordCount;
        swData := aRecordset.GetString(adClipString, iRecCount,
        ',', #13#10,'(NULL)');
        finally
        aRecordset.Close;
        aConnection.Close;
        end;
        </pre>
        Für alle diese Beispiele werden <b>keine</b> ADO-Komponenten benötigt, so dass die Aufrufe ab Delphi 3 laufen sollten.

        Mit <B>ADO Express</b> (den Borland-Komponenten) wird die Sache einfacher, da hier genauso eine visuelle Entwickler möglich ist, wie mit den anderen Komponenten auch. Für Delphi 5 Professional kann ADO Express von Borland separat erworben werden, in Delphi 5 Enterprise ist alles bereits an Bord

        Comment

        Working...
        X