Thema: Delphi updateable views

Einzelnen Beitrag anzeigen

Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: updateable views

  Alt 6. Nov 2003, 11:45
Zitat von Garby:
im Prinzip kann man einen View nur updaten, wenn nur eine Tabelle abgefragt wird...
Die behaupten aber steif und fest, daß auch ein insert/updae nicht auf eine Tabelle beschränkt ist ! Sofern man Trigger benutzt. Und die btroffenen Spalten dürfen nicht als NOT NULL definiert sein. Hier das Borland Beispiel:

SQL-Code:
CREATE TABLE Table1 (
    ColA INTEGER NOT NULL,
    ColB VARCHAR(20),
    CONSTRAINT pk_table PRIMARY KEY(ColA)
);
CREATE TABLE Table2 (
    ColA INTEGER NOT NULL,
    ColC VARCHAR(20),
    CONSTRAINT fk_table2 FOREIGN KEY REFERENCES Table1(ColA)
);
CREATE VIEW TableView AS
    SELECT Table1.ColA, Table1.ColB, Table2.ColC
    FROM Table1, Table2
WHERE Table1.ColA = Table2.ColA;

CREATE TRIGGER TableView_Delete FOR TableView BEFORE DELETE AS
BEGIN
  DELETE FROM Table1
  WHERE ColA = OLD.ColA;
  DELETE FROM Table2
  WHERE ColA = OLD.ColA;
END;

CREATE TRIGGER TableView_Update FOR TableView BEFORE UPDATE AS
BEGIN
  UPDATE Table1
  SET ColB = NEW.ColB
  WHERE ColA = OLD.ColA;
  UPDATE Table2
  SET ColC = NEW.ColC
  WHERE ColA = OLD.ColA;
END;

CREATE TRIGGER TableView_Insert FOR TableView BEFORE INSERT AS
BEGIN
  INSERT INTO Table1 values (NEW.ColA,NEW.ColB);
  INSERT INTO Table2 values (NEW.ColA,NEW.ColC);
END;
Nur was wird da genau jetzt gemacht
Gruß
Hansa
  Mit Zitat antworten Zitat