Hallo!<p>Ich setze Delphi 5 SP1, IBX 4.52 und Interbase 6.01 (läuft auf einem anderen Rechner (Win98)) ein. Wenn ich einen Datensätz in meine Tabelle (enthölt 6880 Datensätze) dann dauert das nach einem Post ca. 5-7 Sekunden. Speichern von Änderungen, sind dann sehr schnell. Noch ein paar Dinge die ich habe: TIBDataset mit Generatorfield bei neuem Datensatz auf ID, TIBTransaction = Schnappschuß, Im OnAfterPost-Ereignis führe ich einen CommitRetaining durch.<p>Metadaten der Tabelle:<p>/* Domain definitions */
CREATE DOMAIN "TBOOLEAN" AS CHAR(1) CHARACTER SET ISO8859_1
CHECK (VALUE IN ('J','N')) NOT NULL;
CREATE DOMAIN "TEMAIL" AS VARCHAR(40) CHARACTER SET ISO8859_1;
CREATE DOMAIN "TFLOAT" AS NUMERIC(15, 2);
CREATE DOMAIN "THOMEPAGE" AS VARCHAR(128) CHARACTER SET ISO8859_1;
CREATE DOMAIN "TID" AS INTEGER
DEFAULT 0 NOT NULL;
CREATE DOMAIN "TKLEINERSTR" AS VARCHAR(20) CHARACTER SET ISO8859_1;
CREATE DOMAIN "TKUNDENNAME" AS VARCHAR(128) CHARACTER SET ISO8859_1;
CREATE DOMAIN "TLFDNUMMER" AS VARCHAR(15) CHARACTER SET ISO8859_1;
CREATE DOMAIN "TMEMOBLOB" AS BLOB SUB_TYPE TEXT SEGMENT SIZE 80 CHARACTER SET ISO8859_1;
CREATE DOMAIN "TNORMSTRING" AS VARCHAR(80) CHARACTER SET ISO8859_1;
CREATE DOMAIN "TPLZ" AS CHAR(5) CHARACTER SET ISO8859_1;
CREATE DOMAIN "TVERKNUEPFUNG" AS INTEGER
DEFAULT 0;
/* Table: ADRESSE, Owner: SYSDBA */
CREATE TABLE "ADRESSE"
(
"ID" "TID",
"LFDNUMMER" "TLFDNUMMER",
"KUNDENNAME" "TKUNDENNAME",
"ANREDE" "TKLEINERSTR",
"TITEL" "TKLEINERSTR",
"FIRMENNAME" "TNORMSTRING",
"SDXFIRMENNAME" "TKLEINERSTR",
"NACHNAME" "TNORMSTRING",
"SDXNACHNAME" "TKLEINERSTR",
"VORNAME" "TNORMSTRING",
"SDXVORNAME" "TKLEINERSTR",
"STRASSE" "TNORMSTRING",
"PLZ" "TPLZ",
"ORT" "TNORMSTRING",
"LAND" "TNORMSTRING",
"TELEFON" "TNORMSTRING",
"TELEFAX" "TNORMSTRING",
"MOBIL" "TNORMSTRING",
"EMAIL" "TEMAIL",
"HOMEPAGE" "THOMEPAGE",
"RABATT" "TFLOAT",
"ZAHLUNGSZIEL" "TID",
"ANFAHRTSZONE" VARCHAR(5) CHARACTER SET ISO8859_1,
"ISTKUNDE" "TBOOLEAN",
"ISTLIEFERANT" "TBOOLEAN",
"BEMERKUNGEN" "TMEMOBLOB",
"LETZTEAENDERUNG" TIMESTAMP,
"AENDERUNGBENUTZER" "TID",
"MANDANT" "TVERKNUEPFUNG",
PRIMARY KEY ("ID")
);
SET TERM ^ ;
/* Triggers only will work for SQL triggers */
CREATE TRIGGER "ADRESSE_AFTERUPDATE" FOR "ADRESSE"
ACTIVE AFTER UPDATE POSITION 0
AS
BEGIN
UPDATE Kassenbuch SET Adresse = NEW.ID WHERE Adresse = OLD.ID;
END
^
CREATE TRIGGER "ADRESSE_BEFOREDELETE" FOR "ADRESSE"
ACTIVE BEFORE DELETE POSITION 0
AS
BEGIN
UPDATE Kassenbuch SET Adresse = 0 WHERE Adresse = OLD.ID;
END
^
COMMIT WORK ^
SET TERM ;^ <br><br><p>Kann mir jemand weiterhelfen?<p>Gruss Andreas
CREATE DOMAIN "TBOOLEAN" AS CHAR(1) CHARACTER SET ISO8859_1
CHECK (VALUE IN ('J','N')) NOT NULL;
CREATE DOMAIN "TEMAIL" AS VARCHAR(40) CHARACTER SET ISO8859_1;
CREATE DOMAIN "TFLOAT" AS NUMERIC(15, 2);
CREATE DOMAIN "THOMEPAGE" AS VARCHAR(128) CHARACTER SET ISO8859_1;
CREATE DOMAIN "TID" AS INTEGER
DEFAULT 0 NOT NULL;
CREATE DOMAIN "TKLEINERSTR" AS VARCHAR(20) CHARACTER SET ISO8859_1;
CREATE DOMAIN "TKUNDENNAME" AS VARCHAR(128) CHARACTER SET ISO8859_1;
CREATE DOMAIN "TLFDNUMMER" AS VARCHAR(15) CHARACTER SET ISO8859_1;
CREATE DOMAIN "TMEMOBLOB" AS BLOB SUB_TYPE TEXT SEGMENT SIZE 80 CHARACTER SET ISO8859_1;
CREATE DOMAIN "TNORMSTRING" AS VARCHAR(80) CHARACTER SET ISO8859_1;
CREATE DOMAIN "TPLZ" AS CHAR(5) CHARACTER SET ISO8859_1;
CREATE DOMAIN "TVERKNUEPFUNG" AS INTEGER
DEFAULT 0;
/* Table: ADRESSE, Owner: SYSDBA */
CREATE TABLE "ADRESSE"
(
"ID" "TID",
"LFDNUMMER" "TLFDNUMMER",
"KUNDENNAME" "TKUNDENNAME",
"ANREDE" "TKLEINERSTR",
"TITEL" "TKLEINERSTR",
"FIRMENNAME" "TNORMSTRING",
"SDXFIRMENNAME" "TKLEINERSTR",
"NACHNAME" "TNORMSTRING",
"SDXNACHNAME" "TKLEINERSTR",
"VORNAME" "TNORMSTRING",
"SDXVORNAME" "TKLEINERSTR",
"STRASSE" "TNORMSTRING",
"PLZ" "TPLZ",
"ORT" "TNORMSTRING",
"LAND" "TNORMSTRING",
"TELEFON" "TNORMSTRING",
"TELEFAX" "TNORMSTRING",
"MOBIL" "TNORMSTRING",
"EMAIL" "TEMAIL",
"HOMEPAGE" "THOMEPAGE",
"RABATT" "TFLOAT",
"ZAHLUNGSZIEL" "TID",
"ANFAHRTSZONE" VARCHAR(5) CHARACTER SET ISO8859_1,
"ISTKUNDE" "TBOOLEAN",
"ISTLIEFERANT" "TBOOLEAN",
"BEMERKUNGEN" "TMEMOBLOB",
"LETZTEAENDERUNG" TIMESTAMP,
"AENDERUNGBENUTZER" "TID",
"MANDANT" "TVERKNUEPFUNG",
PRIMARY KEY ("ID")
);
SET TERM ^ ;
/* Triggers only will work for SQL triggers */
CREATE TRIGGER "ADRESSE_AFTERUPDATE" FOR "ADRESSE"
ACTIVE AFTER UPDATE POSITION 0
AS
BEGIN
UPDATE Kassenbuch SET Adresse = NEW.ID WHERE Adresse = OLD.ID;
END
^
CREATE TRIGGER "ADRESSE_BEFOREDELETE" FOR "ADRESSE"
ACTIVE BEFORE DELETE POSITION 0
AS
BEGIN
UPDATE Kassenbuch SET Adresse = 0 WHERE Adresse = OLD.ID;
END
^
COMMIT WORK ^
SET TERM ;^ <br><br><p>Kann mir jemand weiterhelfen?<p>Gruss Andreas
Comment