Announcement

Collapse
No announcement yet.

Datensätze aus PARADOX in ACCESS-Tabelle übernehmen

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

  • Datensätze aus PARADOX in ACCESS-Tabelle übernehmen

    Ich habe ein Programm zum DATENABGLEICH einer einzelnen ACCESS(97) Tabelle (innerhalb einer ACCESS-Datenbank) mit einer PARADOX-Tabelle geschrieben. Der Datenabgleich, d.h. das ÄNDERN (Edit mit anschließendem POST) des ACCESS-Datensatzes gelingt problemlos. Beim Einfügen eines Satzes (INSERT)in der ACCESS-Datensatzes aber erhalte ich beim POST einen Fehler (Rückgabewert FALSE). Der Insert wird nicht durchgeführt.
    Ich verwende DELPHI-5. Für einen Hinweis wäre ich sehr dankbar, da das Programm schon lange fertig sein sollte.
    Christoph Hölzl
    [email protected]

  • #2
    Was für Daten werden eingefügt und welcher Fehler tritt auf
    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


    • #3
      Ich übertrage die in ACCESS benötigten Felder aus der Paradox-Tabell in die entsprechenden ACCESS-Felder. Vorher setze ich die Tabelle (wie bei Paradox) mit Insert in den Einfügemodus. (Vielleicht liegt ja auch hier der Fehler. Ich habe bisher nur mit Paradox gearbeitet.) Das Schlüsselfeld in ACCESS ist ein Integerwert, der auch entsprechend versorgt wird. Der POST hat aber dann ein Ergebnis FALSE. Eine Fehlermeldung erhalte ich nicht.
      ISt die ACCESS-Tabelle beim Einfügen wie die Paradox-Tabelle zu behandeln (Insert .Feldversorgung.. POST)? Beim Ändern klappt das Schreiben mit (Edit .Feldversorgung.. POST!
      Danke für die Hilf

      Comment


      • #4
        Hallo Christoph,

        Du mußt peinlichst darauf achten, daß die FeldTypen identisch sind (auch in der Datenlänge). Access mag nach meiner Erfahrung auch keine Zuweisung von Strings der Länge Null. Die Zuweisung AccessStrFeld.Value := PdxStrFeld.Value sollte man durch if (PdxStrFeld.Value = '') or PdxStrFeld.IsNull then AccessStrFeld.Clear else AccessStrFeld.Value := PdxStrFeld.Value ersetzen.
        Könnte es daran liegen?

        Versuch als Alternative mal Append statt Insert.

        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


        • #5
          Hallo Falk,
          vielen Dank für den Hinweis. Es lag wohl an der Feldversorgung. Ich habe genau auf Längen, Feldtypen geachtet und auch leere Übergabefelder explizit leer gemacht. Und .. es klappt.
          Aber das nächtste Problem, wenn ich das ganze auf einem System mit WINDOWS ME und ACCESS 2000 ablaufen lasse, erhalte ich einen BDE-Fehler und nichts geht mehr. Sind hier spezielle Treiber/BDE-Versionen erforderlich. Kann man hierzu irgendwo was nachlesen.
          Danke und Tschüß
          Christop

          Comment


          • #6
            Hallo,

            wenn der Zugriff auf die ACCESS97-Datenbank über den BDE-Treiber MSACCESS läuft, muss auf dem Rechner die Microsoft <b>DAO-Engine</b> bereits installiert sein. Im Gegensatz zu <b>ADO</b> (das frei verteilbar ist) ist DAO Lizenzpflichtig, so dass Borland nur einen SQL-Link-Treiber (IDDA3532.DLL oder IDDAO32.DLL) ausliefern darf, aber nicht DAO. Wenn auf diesem Rechner kein Office 95/97 bzw. Microsoft ACCESS installiert ist, wird es an der fehlenden DAO liegen

            Comment

            Working...
            X