Announcement

Collapse
No announcement yet.

OLE und MSAccess

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

  • OLE und MSAccess

    Hallo herr Kosch,

    Der Herr Herzog sagte mir Sie wären der absolute Experte in Sachen OLE und COM.

    Problem :

    Ich habe eine MSAccess Datenbank geöffnet und möchte in einem bestimmten Formular bestimmte Text-b.z.w Bezeichnungsfelder des aktuellen Datensatzes in mein Programm übernehmen (Auslesen).

    Ist das möglich ?
    Wenn ja wie ? Ich habe keine Ahnung wie man das macht, da ich mich noch nie mit solchen Dingen beschäftigt habe.

    Danke im voraus

    Mario Ammerschuber

  • #2
    Hallo,

    die Antwort auf diese Frage hängt davon ab, mit welcher Delphi-Version gearbeitet wird (oder genauer gesagt, ob die ADO Express-Komponenten von Delphi zur Verfügung stehen). Das eigene Programm kann die Datensätze einer ACCESS-Datenbank auslesen/ändern, <b>ohne</b> das Microsoft ACCESS als Programm installiert sein muss. Daher würde ich nicht den Weg über die Automation von MS ACCESS gehen, sondern über die <b>ActiveX Database Objects</b> (ADO) direkt auf die Datenbank zugreifen. Wenn die ADO Express-Komponenten zur Verfügung stehen, ist der Zugriff genauso einfach wie bei der BDE. Sind die Komponenten nicht in der Delphi-Version enthalten, muss das Programm direkt mit den nativen ADO-Objekten hantieren. Viele Beispiele dafür lassen sich im Ordern <b>ADO</b> dieses Delphi-FORUMs finden

    Comment


    • #3
      kein ADO vorhanden. Ich arbeite mit Delphi5 Prof.

      Ich möchte nichts weiter als wie oben beschrieben. Access ist installiert.
      Können Sie mir ein Beispiel liefern ? (wie in meiner 1. Mail beschrieben)

      Dank

      Comment


      • #4
        Hallo,

        das folgende Beispiel liest mit Delphi 5 den Wert der ersten Spalte des ersten Datensatzes aus:
        <pre>
        // 1. Projekt | Typbibliothek importieren: Microsoft ActiveX Data Objects 2.x
        // 2. Von Delphi generierte Unit ADODB_TLB.pas einbinden

        uses ADODB_TLB;

        procedure TForm1.Button1Click(Sender: TObject);
        resourcestring
        cCS = 'Provider=Microsoft.Jet.OLEDB.4.0;' +
        'Data Source=C:\Programme\Gemeinsame Dateien\Borland Shared\Data\dbdemos.mdb;' +
        'Persist Security Info=False';
        var
        aConnection : _Connection;
        aRecordset : _Recordset;
        begin
        // Step 1: Connection-Objekt erzeugen + öffnen
        aConnection:= CoConnection.Create;
        aConnection.Open(cCS, '', '', adConnectUnspecified);
        // Step 2: Recordset-Objekt erzeugen
        aRecordset:=CoRecordSet.Create;
        try
        // Step 3: Datenmenge des Recordsets aufbauen
        aRecordset.Open('SELECT * FROM Customer', aConnection, adOpenStatic,
        adLockReadOnly, adCmdText);
        ShowMessage(aRecordset.Collect[0]);
        finally
        aRecordset.Close;
        aConnection.Close;
        end;
        end;
        </pre&gt

        Comment


        • #5
          Danke. Das ist zwar nicht das was ich will aber es ist ein Anfang.
          Ich hoffe das ich mir den Rest irgendwie zusammenbasteln kann.

          Mario A

          Comment

          Working...
          X