Announcement

Collapse
No announcement yet.

Resultset bei ADO und BDE

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

  • Resultset bei ADO und BDE

    Felddeklaration bei SQL-Server: Test char(10)
    Eintrag in diesem Feld: 'Test'

    Nun mein Problem:
    Bei der BDE bekomme ich 'Test' zurückgeliefert.
    Bei ADO wird 'Test......' zurückgeliefert. (. = leerzeichen)

    Frage:
    Wie bekomme kann ich bei ADO das gleiche Resultset wie bei der BDE erziehlen. (ohne TRIM im select Befehl)

    mfg
    Nather

  • #2
    Hallo,

    wurden die Patches (Bug-Fixes) zu Delphi 5 bereits eingespielt? Im ADO-Ordner sind entsprechende Meldungen dazu zu finden.

    In der Originalfassung nehmen es die ADO-Komponenten von Delphi 5 sehr genau: <br>
    - CHAR(10) liefert laut SQL-Standard immer die 10 Zeichen zurück, wobei der Rest Leerzeichen sind. <br>
    - VARCHAR(10) liefert laut SQL-Standard nur die Zeichenanzahl zurück, die tatsächlich in dieser Tabellenspalte angelegt wurde. <br>
    Es ist also kein ADO-Fehler, sondern ein Design-Fehler der Datenbank. Die BDE-Komponenten haben diese SQL-Regeln nur ignoriert. Die Patches passen nun nachträglich das ADO-Verhalten dem gewohnten BDE-Verhalten an.
    &#10

    Comment


    • #3
      Das Patch vom 12/16/99 ist aufgesielt aber es wird bei einen CHAR(10) der Rest weiterhin mit Leerzeichen aufgefüllt.

      Ich habe es nun mit dem Ereignis OnGetText von TSringField gelöst.

      procedure TDM_MWFert.Query_GetText(Sender: TField;
      var Text: String; DisplayText: Boolean);
      begin
      Text := TrimRight(Sender.AsString);
      end

      Comment

      Working...
      X