Announcement

Collapse
No announcement yet.

MySQL und Oracle

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

  • MySQL und Oracle

    Hallo!
    <br>Vielleicht könnt Ihr mir helfen: <br>
    Ich habe eine Anwendung geschrieben, die in der Entwicklungszeit
    auf MySQL lief (dort habe ich die MDAC-Kompos eingesetzt). Nun
    kommt der Kunde und hätte die Anwendung gerne unter Oracle
    laufen. Das finde ich ja sogar sinnvoll, habe aber einige praktische
    Probleme. <br>Entweder müßte ich wissen, wie und wo ich die
    Datenbankzugriffe anpassen muß (Blob-Felder?) oder <br>wissen,
    wie ich hier lokal ein Oracle installieren kann, damit ich das testen
    kann. Mein Chefken hat mir eine schöne Box mit 40 Oracle-CDs
    gegeben und gemeint: "Installiere halt". Tja - wenn ich wüßte was
    und wie, dann ja gerne ... <br>
    Jede Antwort, auch gerne über eMail an [email protected]
    würde mich freuen und sicher helfen.
    <br> Vielen Dank sagt schon mal
    <br>Thomas

  • #2
    Hi, eigentlich benötigst du nur die Oracle Datenbank Installation (Oracle Enterprice Manager kurz OEM).<BR>
    Dadurch hast du alle Admin Tools sowie die DB selber.<BR>
    Bei der Installation kannst du angeben ob eine Default DB angelegt werden soll.<BR>.
    Wähle diese Option.<BR>
    <BR>
    Das Sql von MySql und Oracle unterscheidet sich nur sehr unwesentlich.<BR>
    Ich glaube MySql bis 3.x konnte z.B keine Stored Procedures ausführen.<BR>.
    Gruss Matthia

    Comment


    • #3
      Hallo,

      die unterschiede liegen - wie sollte es sein - immer im Detail. Falls Du dein Datenbank im Programm anlegst, so wirst Du gesonderte Scripts für MySQL und für Oracle anlegen müssen. Auch ist die verarbeitung von Blobs und Parametern unterschiedlich. Ebenfalls kann Oracle keine leeren Strings speichern. Diese werden als NULL gespeichert. Dafür muß man bei MySQL das Slash-Zeichen escapen (/ -> //), bei Like-Abfragen teilweise sogar doppelt (/ -> ////). Transaktionen unterstützt MySQL ja nur bei bestimmten Tabellentypen. Dafür ist Oracle bei bestimmten Abfragen select count(*) from table sehr imperformant....

      Grundsätzlich bietet sich für die unterstützung von verschiedenen Datenbanken das sogenannte Bridge-Pattern an (Einfach mal googlen) um die DB-Unterschiede in einer möglichst zentrale stelle zu kapseln.

      Du wirst nicht darum herumkommen dein Programm (solange du keine DB-Kapselung hast) komplett für beide Datenbanken zu testen

      Comment


      • #4
        Hallo,

        <br>vielen Dank für die Hilfe! <br><p>
        <br>Ich hatte versucht, alle Datenbankzugriffe in eigene Klassen zu packen. Problematisch war das nur bei Blob-Feldern, die über den Clientdataset nicht ansprechbar sind (jedenfalls habe ich keinen Zugriffsweg gefunden). Es sollte also gut möglich sein, die DB-Zugriffe anzupassen, ohne das gesamte Programm umzustricken.<br>Das Bridge-Pattern könnte dabei (und beim Anlegen der DB in Abhängigkeit von der Ziel-DB) sehr hilfreich sein.<br> Da werde ich allerdings noch einiges zusätzlich basteln müssen. Irgendwie muß es wohl Spaß machen ... <br>
        Allerdings freue ich mich über die zusätzlichen Möglichkeiten von Oracle, z.B. mit Stored Procedures, Triggern etc. zu arbeiten, was MySQL nicht macht. </p><p>In der Zwischenzeit hatte ich auch die Personal Edition von Oracle installiert (leider gibt es ein funktionierendes Setup offenbar nur für 10). Gibt es schon Freeware-Compos, um von Delphi aus darauf zuzugreifen? Oder muß ich DBExpress benutzen? </p>
        nochmals Danke und schöne Ostern!<br>
        Thoma

        Comment

        Working...
        X