Announcement

Collapse
No announcement yet.

IBX - GeneratorField

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

  • IBX - GeneratorField

    Ich benutze seit kurzem die IBX Komponenten 4.52.
    Betreffend die TIBDataSet Komponente habe ich ein Problem:

    Das GeneratorField gibt die Möglichkeit einen Generator zu einem Datenfeld
    zu zuweisen (Feld ID in meinem Beispiel- Primäschlüssel). Beim Post Befehl erhalte ich
    jedoch die Meldung "Validation error for column ID, value "*** null ***".
    Ich habe "On New Record" und "on Post" versucht. Es sieht so aus als ob
    kein neuer Wert vom Generator geholt wird.

    Was heisst diese Meldung und wo finde ich ein Beispiel. Die Dokumentation
    der IBX ist etwas schwach.

    Danke für alle Hinweise.

    Jean Clemens
    [email protected]

  • #2
    Hallo,

    IBX setzt für die Primärschlüsselspalte (TIBGeneratorField.Field) im Fall es zugewiesenen Generators automatisch die Eigenschaft <b>Required</b> auf False, so dass IBX kein Veto einlegt, wenn beim Post dieser Wert noch leer ist. Wurde der Generatorname der InterBase-Datenbank auch wirklich über den Objektinspektor zugewiesen?

    Auszug aus der DFM-Datei:
    <pre>
    ...
    GeneratorField.Field = 'MANUSKRIPTID'
    GeneratorField.Generator = 'GEN_MANUSKRIPTID'
    ...
    </pre>

    Im Unterordner <i>RedSys - Beispielanwendung...</i> kann ein IBX-Projekt heruntergeladen werden, dass reichlich Gebrauch von diesem Automatismus macht.

    P.S: Mein neues Buch (über den InterBase 6 + IBX) sollte demnächst erhältlich sein. Somit dürfte auch das Dokumentationsproblem etwas kleiner werden :-

    Comment


    • #3
      Hallo,

      Ja der Generatorname wurde über den Inspektor gesetzt (Eingabe funktioniert glaube ich nicht GEN_MANUSKRIPTID > MANUSKRIPTID by 1).
      Es hat sich heraus gestellt, dass TIBDataSet den Fehler erzeugt; TIBQuery mit Cached Updates und TIBUpdateSQL den Fehler NICHT erzeugt.

      Meines Wissens ist TIBDataSet aber eine Kombination von beiden.

      :-)

      Bis auf weiteres.
      MfG
      TI

      Comment


      • #4
        Hallo,

        wenn <i>On NewRecord</i> ausgewählt wurde, <b>muss</b> der neue ID-Wert für den Primärschüssel bereits beim Anklicken des <b>+</b>-Buttons im TDBNavigator im TDBGrid etc. zu sehen sein, da IBX sofort beim Anlegen des neuen Datensatzpuffers den InterBase-Generator befragt. Bei <i>On Post</i> wartet IBX bis zum Posten, damit ein abgebrochener Editiervorgang diesen IP-Wert nicht "vergeudet".

        Ich würde das an Ihrer Stelle mit einem neuen, kleinen Testprogramm nachprüfen. Wenn das Problem dann immer noch besteht, ist vermutlich irgend etwas mit Ihrer IBX-Installation schiefgegangen

        Comment

        Working...
        X