Announcement

Collapse
No announcement yet.

Access mit oracle verbinden ohne ODBC

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

  • Access mit oracle verbinden ohne ODBC

    Hi Leute,

    ich hoffe ich poste im richtigem Forum.

    Mein Problem: Ich muss eine Access Datenbank mit einer Oracle Datenbank verbinden mit Lese/Schreibrechten. Für die Verbindung soll nicht der ODBC-Treiber verwenden werden, da dieser Probleme macht.

    Kennt einer von Euch eine alternativen Treiber für die Verbindung?

    LG

  • #2
    Hierfür würde ich bei Oracle den "Oracle for ADO/OLE DB"-Treiber suchen und verwenden.

    Comment


    • #3
      Hi, danke für die antwort.

      Kannst Du mir sagen, wo ich diesen Treiber downloaden kann.

      Comment


      • #4
        Originally posted by chicco100 View Post
        Kannst Du mir sagen, wo ich diesen Treiber downloaden kann.
        *Irgendwo* auf der Oracle-Downloadseite. Durchwühlen darfst du dich dort schon selbst.

        Comment


        • #5
          Ok, danke Dir!

          Comment


          • #6
            gibt es villeicht noch etwas anderes. Finde hierzu keine verständliche Anleitung wie ich das mache mit OLE DB

            Comment


            • #7
              Hier !

              Hallo,

              http://www.oracle.com/technology/tec..._db/index.html

              Uebersicht
              Software
              Documentation

              MFG

              BD

              Comment


              • #8
                Hallo,

                habe mittlerweile die Verbindung zum Oracle Server über ADO hinbekommen.

                Nun meine frage: Wie kann ich über Access eine Tabelle anzeigen lassen, die von Oracle kommt.

                so sieht mein code aus:

                Private Sub dbload_Click()

                Set db = New ADODB.Connection
                db.ConnectionString = DBPARAM
                db.CursorLocation = adUseClient
                db.Open

                If db.State = adStateOpen Then
                MsgBox "DB geöffnet"

                End If

                'SELECT
                selStr = "select EAN from WP_EAN"

                'Recordset initialisieren
                Set res = New ADODB.Recordset
                res.ActiveConnection = db
                res.LockType = adLockReadOnly
                res.Open selStr, db
                MsgBox res.RecordCount

                Comment


                • #9
                  Hallo,

                  zum einen könntest Du alles von Hand programmieren, also den RecordSet "res" durchlaufen, die Werte auslesen und z.B. ein ListView damit füllen.

                  Andere Möglichkeit wäre, die Bordmittel von Access zu verwenden, das die datengebundenen Formulare.
                  Du legst also ein neues Formular an, legst per Drag&Drop Textfelder an und gibt in den Eigenschaften des Textfeldes unter "Steuerelementinhalt" den Feldnamen an, so wie er im RecordSet vorhanden ist. Bei Deinem Beispiel oben wäre es als ein Textfeld mit "EAN".

                  Im Event "Form_Open" verwendest Du den Code von oben und bindest das geöffnete RecordSet ans Formular mit
                  [highlight=VB]Set Me.Recordset = res[/highlight]
                  In der "normalen" Formluaransicht siehst Du dann nur das eine Feld mit einem Wert, unten hast Du einen Navigator (Pfeile) um zum nächsten Datensatz zu kommen.
                  Rechte-Maus auf den Formular-Hintergrund => Datenblattansicht; damit bekommst Du es also Liste.
                  Olaf Helper

                  <Blog> <Xing>
                  * cogito ergo sum * errare humanum est * quote erat demonstrandum *
                  Wenn ich denke, ist das ein Fehler und das beweise ich täglich

                  Comment


                  • #10
                    Hi O.Helper,

                    danke läuft jetzt. Aber die abfrage dauert zeimlich lange(Datensatz ca. 5000000)

                    kann ich das irgendwie beschleunigen?

                    Comment


                    • #11
                      5 Mio Datensätze, das soll wohl dauern.

                      Das macht ja nun auch keinen Sinn, sich alle zu holen, das kann niemand alles durchsehen.
                      Da solltest Du das Ergebnis filtern, wobei ich Dir nicht sagen kann, was bei Dir ein sinnvoller Filter wäre.
                      Beispiel auf die ersten Stellen der EAN:
                      - Legt ein Textfeld "txtFilter" an
                      - Den Code wieder raus aus Form_Open und in ein Button_Click Event
                      - Eine Where Clausel zum SQL Statement hinzu

                      [highlight=VB]
                      'SELECT
                      selStr = "select EAN from WP_EAN "
                      "WHERE EAN LIKE '" & txtFilter & "%'"

                      'Recordset initialisieren
                      Set res = New ADODB.Recordset
                      res.ActiveConnection = db
                      res.LockType = adLockReadOnly
                      res.Open selStr, db
                      [/highlight]
                      Olaf Helper

                      <Blog> <Xing>
                      * cogito ergo sum * errare humanum est * quote erat demonstrandum *
                      Wenn ich denke, ist das ein Fehler und das beweise ich täglich

                      Comment


                      • #12
                        Hi,

                        hab jetzt mal beide Verbindungsarten ausprobiert. Einmal über ADO und einmal über ODBC. Ich muss sagen, dass ich keinen Unterschied merke. Seht Ihr das genauso?

                        Comment


                        • #13
                          Wenn Du nur so ein einfaches und einmaliges Select ausführst, wirst Du auch keinen großen Unterschied feststellen; die meiste Zeit geht dann eh dafür drauf die 5 Mio Datensätze zu übertragen

                          ODBC ist halt eine zusätzliche Zwischenschicht und die bremst doch etwas, was sich dann bei umfangreichen Aktionen dann auch bemerkbar macht.
                          Und bei uns im Unternehmen hat sich gezeigt, das diese bei Oracle auch nicht so ganz fehlerfrei ist.
                          Olaf Helper

                          <Blog> <Xing>
                          * cogito ergo sum * errare humanum est * quote erat demonstrandum *
                          Wenn ich denke, ist das ein Fehler und das beweise ich täglich

                          Comment


                          • #14
                            Also würdest du raten, ODBC wegzulassen und über ADO die Verbindung herzustellen? Wie ist den die OLE von Oracle besser als MSAdora

                            Comment


                            • #15
                              Originally posted by chicco100 View Post
                              Wie ist den die OLE von Oracle besser als MSAdora
                              Die Frage stellt sich nicht mehr. Vor ein paar Monaten hat MS angekündigt das alle Arbeiten an den Providern für Oracle eingestellt werden (Wenn den überhaupt noch was gemacht wurde). Aber auch davor waren die MS-Provider für Oracle in vielen Einsatzfällen völlig unbrauchbar.

                              Comment

                              Working...
                              X