Announcement

Collapse
No announcement yet.

Suchabfrage in ORACLE mit ADO

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

  • Suchabfrage in ORACLE mit ADO

    Hallo zusammen,

    es ist bestimmt schon öfter gesagt worden aber bisher war ADO für mich noch nicht so interessant. Nun sollen in der Firma aber alle BDE-Applikationen auf ADO umgearbeitet werden und damit hab ich ein Problem. Folgendes Scenario: Suchmaske mit einem DBGrid und einem TEdit für den Suchtext. Bei jeder Änderung soll sofort gesucht werden und abhängig ob Zahl oder Buchstabe nach Kundennummer oder Name. Das Handling und das generieren des SQL sind kein Problem. Nun startet die Suche aber bspw. mit der ID=1 und das hat zur Folge das das SQL so aussieht: SELECT ... WHERE ID >= 1 ORDER BY ID. Die Tabelle hat aber ca. 3Mil. Datensätze. Wenn ich das Rattern der Festplatte richtig interpretiere, dann versucht ADO die 3Mil. alle auf den localen Client zu schaufeln. Hm... also hab ich für CursorLocation clUserServer versucht - bekomme aber die Fehlermeldung das keine Bookmarks unterstützt werden die für mehrzeilige Darstellungen (sprich DBGrid) notwendig sind. Mit der BDE hat das ganze tadellos funktioniert. Wie bekomme ich ADO dazu die 3Mil. in kleineren Häppchen vom Server zu holen. Eine Einschränckung über die Abfrage ist aber nicht erwünscht, da der Anwender auch im DBGrid durch die Daten scrollen soll.
    Mit CacheSize und ExecuteOptions hab ich auch schon rumprobiert, aber das hat irgendwie überhaupt keinen Einfluß außer das nach dem Open der Cursor nicht auf dem ersten Datensatz sondern auf irgendeinem folgenden steht :-((.
    Ich verwende Delphi5 mit einem TADODataset und dem MS Provider for Oracle.

    Ich hoffe mir kann hier jemand auf die Sprünge helfen.

    Thanks im voraus
    Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

  • #2
    bist du noch einer diskussion interessiert oder
    hast du bereits eine lösung

    Comment


    • #3
      Dein Szenario wird vermutlich mit ADO und Oracle und DBGrid nicht zu machen sein, da der OLEDB-Provider für Oracle von Microsoft stammt und nur für (soweit ich weiß) für eine Oracle 7.x-Version entwickelt wurde und mit sicherheit nicht alle Features der Oracle-DB unterstützt.

      Unter http://otn.oracle.com/software/content.html gibt es mittlerweile einen OLEDB-Treiber von Oracle. Wollt ihr wirklich auf ADO/OLEDB umsteigen, so solltet ihr den Treiber von Oracle nehmen

      Comment


      • #4
        @Gerhard,

        ja bin ich, das Pproblem harrt immer noch einer Lösung. Im Moment hab ich die Abfrage mit WHERE ... AND ROWNUM < 100 auf eine Handvoll Datensätze beschränckt, aber das ist nicht die gewünschte Lösung.

        Gruß und Danke der Nachfrage

        Fal
        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

        Comment


        • #5
          @Bernhard,

          dein Posting macht mir richtig Mut ;-( Den OLEDB-Provider von Oracle hab ich mir schon besorgt, hab bis jetzt aber immer davor zurückgeschreckt unserem Admin zu sagen er möchte mal bitte die knappen 20MB auf jeder Clientmaschine installieren. Noch dazu werden dabei diverse Dateien des installierten Oracle-Client ersetzt. Na ja, du weißt - never change a running system. Aber ich werd es mal auf eine einzelnen Maschine testen. Mal sehen vielleicht kann man ja das eine oder andere Problem damit erschlagen.

          Gruß Fal
          Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

          Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

          Comment


          • #6
            hallo falk,

            woher hast du den OLE-PRovider ?

            war gerade in OTN und finde überhaupt nur :
            "ORACLE OBJECTS FOR OLE" eine Datei zum Downloaden : 0040816313.exe
            14MB gross fuer ORA8.1.5 bzw. 8.1.6 :
            ist die gemeint ?

            Irgendwie klappt das bei MyOleDb nicht mit der PArametrisierung,
            hab so ziemlich alles probiert, was so im Forum und in Büchern
            steht : er nimmt bei SQL-Insert keine PArameter !?

            Gruss
            Wolf
            &#10

            Comment


            • #7
              Hallo Wolf,

              den OLE-Provider hab ich von http://otn.oracle.com/software/content.html und dort bei Select a Utility or Driver direkt 'Oracle Provider for OLE DB' auswählen. Das sind bei Oracle aber mal knapp 45 MB!!!

              Mit Parametern hab ich unter Oracle auch immer wieder Schwierigkeiten, Datumswerte hab ich z.B. überhaupt noch nicht zum Laufen bekommen. Am besten funktionieren immer noch Strings. Bei MySQL hab ich wie gesagt noch keine weitgehenderen Tests gemacht.
              Andreas Kosch würde jetzt bestimmt vorschlagen auf ADO-Express zu verzichten und mal zu versuchen mit den nativen ADO-Objekten von MS zuzugreifen ;-))

              Gruß Fal
              Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

              Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

              Comment


              • #8
                hallo falk,

                muß es bei ORACLE unbedingt ADO sein ?
                Mir ist das nicht geheuer !

                Auf den meistens PC's habe ich den Direkt-Zugriff über die BDE auf
                ORACLE gut und mit annehmbarer Performance hinbekommen !
                Datümer und andere PArams gehen per String !!!

                Wenn Sie mir eine Blanko-Mail auf [email protected]
                posten, schick ich Ihnen baldmöglichst das, was hier im Forum so nicht geht, nämlich Screens zu ORACLE-EasyNetConfig und BDE-Settings.

                Mit den besten WÜnschen für Festtage und Jahreswechsel
                Wolf Fiet

                Comment


                • #9
                  Hallo Wolf,

                  bis vor einigen Monaten haben wir auch noch via BDE auf Oracle zugegriffen, aber wegen diverser Ankündigungen die BDE nicht weitergehend zu unterstützen und immer wieder aufretender Probleme mit den BDE-Installationen auf unterschiedlicher Hardware, haben wir uns nach ein paar Tests dazu entschlossen alle Neuentwicklungen über ADO zu realisieren. Damit gibt es dann die Probleme mit der BDE nicht mehr ;-). Dafür haben wir aber jede Menge neue ;-(

                  Gruß Falk

                  P.S.: Bei Klick auf meinen Namen müßte auch meine Mailadresse zu Vorschein kommen ;-
                  Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                  Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                  Comment


                  • #10
                    hall falk,
                    you have mail..

                    wenn ich das mit BDE bzw. ADO alles so betrachte,
                    sehe ich Delphi gemäß wie die Werbung einer in unserer Stadt
                    beheimateten Firma :
                    schwarz (konservativ und mächtig, aber teilweise veraltet)
                    breit (richtiger RAM-Mülleimer, große Netzbandbreite)
                    stark ( schneller GUI-Aufbau auch etwas größerer Anwendungen)

                    die Datenschiene scheint nach Forum-Lektüre über Kylix, dbexpress und
                    alte bugs in neuen Releases immer noch Probleme zu bereiten,
                    und das für viele tausende DM...

                    JAVA mit JBuilder ist m.E. das bessere zukunftsfähigere Gespann..

                    MfG
                    Wol

                    Comment


                    • #11
                      und für JAVA braucht man keine BDE oder dbExpress;dafür gibts Treiber
                      für Direktzugriff von den meisten DB-Anbietern...
                      natürlich auch ODBC (igitt)
                      :-)

                      Comment

                      Working...
                      X