Announcement

Collapse
No announcement yet.

Memo-Feld aus BDE nach SQL-Server übertragen

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

  • Memo-Feld aus BDE nach SQL-Server übertragen

    Hallo,

    ich möchte von einer BDE-Datenbank (Paradox 7.0 - Format) Daten in eine Tabelle auf dem SQL-Server 2000 importieren. Da die Werte des primären Indexfeldes im Original übernommen werden müssen (zum Erhalt der referentiellen Integritäten), verwende ich das "INSERT INTO"-Kommando, weil nur mit diesem das vorherige Einschalten des "SET IDENTITY_INSERT"-Kommandos Wirkung zeigt.

    Dies funktioniert alles soweit problemlos. Nun soll aber auch ein Memo-Feld aus der BDE in ein Text-Feld des SQL-Servers importiert werden. Hier bekomme ich bei den meisten (aber nicht allen) Datensätzen die Fehlermeldung "Ein Parameterobjekt ist nicht ordnungsgemäß definiert. Inkonsistente oder unvollständige Informationen wurden angegeben.".

    Wer kennt die Fehlermeldung und kann mir helfen?

    Gruß

    Reinhold

  • #2
    Hallo,

    geb mir mal eine kleine Info wie du die Daten kopierst...

    Gruß

    Sasch

    Comment


    • #3
      Hallo,

      die Datensätze aus der BDE lade ich mit "SELECT * FROM Tabellenname" in eine TQuery und übertrage die Daten in einer do while-Schleife für jeden Datensaz mittels SQL-Befehl "INSERT INTO Tabellenname (Datenfeldnamen) VALUES (Werte)" in die SQL-Datenbank. Dabei benutze ich für den SQL Befehl INSERT INTO die TADOCommand-Komponente.

      Gruß
      Reinhol

      Comment


      • #4
        Hallo,
        <BR>
        1. Du solltest Hochkommas benutzen -> INSERT table ( Field ) VALUES ( ''wert'' )<BR>
        2. Wenn du im "wert" einen Text hast mit dem Inhalt "blabla :bla bla" sucht die Query-Komponente den parameter ":bla". In diesem Fall habe ich auch kein Patent-Rezept. Evtl nach Doppelpunkten suchen und ein leerzeichen hinter den Doppenpunkt setzen -> Stringreplace(wert,':',': ',[rfReplaceAll])<BR>

        Gruß
        Sasch

        Comment


        • #5
          Hallo Sascha,

          vielen Dank für Deinen Tipp. An Doppelpunkte im Memo-Feld (wirklich reichlich vorhanden), die von ADO als Parameter gewertet werden, habe ich wirklich nicht gedacht. Von daher war der Tipp echt Gold wert.
          <br>
          Die Lösung des Problems ist denkbar einfach. Ich habe mir gedacht, dass es doch eine Möglichkeit geben muss, das Suchen nach Parametern zu deaktivieren und fand dann auch schnell den nötigen Schalter:
          <PRE>
          ADOCommand1.ParamCheck = False;
          </PRE>
          Viele Grüße<br>
          Reinhol

          Comment

          Working...
          X