Announcement

Collapse
No announcement yet.

Fehlermeldung: Nicht - Blobspalte erforderlich

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

  • Fehlermeldung: Nicht - Blobspalte erforderlich

    Ich habe folgendes Problem:
    In meiner Datenbanktabelle (InterBase) gibt es eine Kommentarspalte (Memo).
    Bei Speichern eines neuen Datensatzes mit Dataset.Post bekomme ich die Fehlermeldung "Für diese Operation ist eine Nicht - Blobspalte in der Tabelle erforderlich. Anschließend wird der Datensatz gespeichert. Bei Navigation zu einem anderen Datensatz mit Locate bekomme ich die Fehlermeldung erneut.
    Wer kann helfen?

    Gruß Andreas

  • #2
    Hallo,

    das hört sich so an, also ob diese Tabelle keinen Primärschlüssel verwendet. Wie sieht die Struktur dieser Tabelle (CREATE TABLE-Anweisung) aus

    Comment


    • #3
      So sieht die Tabellendefinition aus!
      CREATE TABLE MANDANTEN (
      TIMESTAMP CHAR(24) NOT NULL,
      ID ID NOT NULL,
      MANDANT CHAR(2) NOT NULL,
      BEZEICHNUNG VARCHAR(50) DEFAULT 'Neuer Mandant' NOT NULL,
      KOMMENTAR BLOB sub_type 1 segment size 80,
      INAKTIV SMALLINT DEFAULT 0 NOT NULL,
      STATUS SMALLINT DEFAULT 0 NOT NULL,
      DATUMKOST DATE,
      DATUMKONTO DATE,
      DEFAULTKOKO VARCHAR(50),
      DEFAULTKOBLA VARCHAR(50),
      DEFAULTZEIBLA VARCHAR(50),
      DEFAULTKOMA VARCHAR(50),
      DEFAULTZEIMA VARCHAR(50),
      DEFAULTKOERG VARCHAR(50),
      DEFAULTZEIERG VARCHAR(50),
      DEFAULTMONAT VARCHAR(50));
      /* Primary keys definition */
      ALTER TABLE MANDANTEN ADD CONSTRAINT MANDANTEN_PK PRIMARY KEY (ID)

      Comment


      • #4
        Hallo,

        normalerweise sollte man BLObs in einer eigenen Tabelle speichern, die nur aus der Primärschlüsselspalte (INTEGER) und der BLOb-Spalte besteht. Werden die normalen Daten von den BLObs über separate Tabellen getrennt, kann der InterBase die "normalen Daten" und die BLObs viel effektiver verwalten.

        Wenn diese Aufteilung nicht in Frage kommt, muss der WHERE-Part aller INSERT-, UPDATE- und SELECT-Abfrage geändert werden. Dort darf die BLOb-Spalte nicht auftauchen. Welche Komponenten werden verwendet - BDE oder IBX? Im Fall von IBX stellt TIBDataSet für jede Operation (INSERT, UPDATE, SELECT usw) eine eigene Editiermöglichkeit für die SQLs bereit, so dass man dort den WHERE-Part editieren kann. Im Fall der BDE würde ich es zuerst mit der Eigenschaft <b>UpdateMode</b> versuchen. Die Einstellung <b>upWhereKeyOnly</B> sollte das Problem ebenfalls lösen.

        P.S: Letzte Klarheit schafft ein Blick in das Log des <b>SQL-Monitors</b>. Dort tauchen die SQL-Anweisungen auf, die der InterBase zu Gesicht bekommt. Alles was dort zu sehen ist, muss sich auch erfolgreich von Hand absetzen lassen, wenn der Aufruf erfolgreich sein soll

        Comment

        Working...
        X