Announcement

Collapse
No announcement yet.

updateable view mit IBX

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

  • updateable view mit IBX

    Hi,

    ich möchte mit ibx (z.B. IBTable) eine View aus der
    Datenbank (Firebird) öffnen und diese editieren.

    Nun die spannende Frage: Wie bekomme ich ibx dazu eine
    View zu öffen und diese Datenmenge editieren zu dürfen?

    Das updateobjekt ist für mich nicht interessant (nur als
    Notfall), da ich Trigger der View zur Datenmanipulation
    benutzen möchte und nicht Prozeduren.
    Hab schon versucht das property "readonly" auf false zu
    setzen, aber ohne Erfolg, da es beim öffnen der View gleich
    wieder auf true gesetzt wird.

  • #2
    Hallo,
    am besten folgendes tun:

    - Einen TIBTable anlegen und Datenbank bzw. Transaktion zuweisen.

    - Propertie TableTypes.ttView auf TRUE setzen, um Views auswählen zu können.

    - Unter TableName das View auswählen.

    Nur bei "einfachen" Views können Daten verändert werden (siehe Doku. unter CreateView):

    • An updatable view requires ALL privileges to the underlying tables.

    A view is updatable if:

    • It is a subset of a single table or another updatable view.

    • All base table columns excluded from the view definition allow NULL values.

    • The view’s SELECT statement does not contain subqueries, a DISTINCT predicate, a HAVING clause, aggregate functions, joined tables, user-defined functions, or stored procedures

    Comment


    • #3
      Hi,

      @Thomas: Danke für die Antwort. War aber nicht ganz meine
      Frage.

      Eine View kann ich durch "before- Trigger" updatebar
      machen. Daß funktioniert auch!
      Ich suche nach einer Möglichkeit mit IBX dies einfach zu tun.
      Z.B. mit IBTable eine View anzeigen und dann per "edit" und
      post den geänderten Datensatz direkt(ohne updateobject) an
      die DB (view) schicken. Geht so etwas mit IBX ? (mit TTable
      ging so etwas!

      Comment


      • #4
        Hi,
        bei mir geht es mit TIBTable ohne zusätzliche Einstellungen auf Anhieb. Auch TIBDataSet funktioniert, wenn man das Update SQL generieren lässt.
        Er setzt bei mir auch nicht beim Öffnen der Table ReadOnly auf True.
        Vielleicht ist deine Version von IBX nicht aktuell.
        Ich benutze D7 mit den verfügbaren Updates.

        Gruß, Fran

        Comment


        • #5
          Wenn ich in der TIBTable eine View ohne Trigger auswähle, setzt er mir ReadOnly auch beim Öffnen auf True. Vielleicht hilft es ja bei der Suche nach dem Fehler.
          Vielleicht ist ja der BeforeUpdate Trigger nicht aktiv...
          Gruß, Fran

          Comment


          • #6
            Hallo,
            das ist ein interessantes Problem. Ich kann mir vorstellen, dass IBX vom Trigger nichts mitbekommt und deshalb glaubt (Info aus System-Tabellen), es handle sich um ein Read-Only View und das Parameter deshalb nicht zulässt. Evtl. könnte es was helfen. die TIBTable Parameter (Datenbank, Name...) erst zur Laufzeit zu setzen. Bin mir aber nicht sicher.
            Ansonsten würde ich wirklich das Update Objekt empfehlen. Ist sicherlich der schnellste und einfachste weg. Ggf. kann im UpdateSQL eine Procedure mit Parametern aufgerufen werden, die alles weitere handhabt.
            Viele Grüsse
            Thoma

            Comment

            Working...
            X