Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DB erstellung / Master - Detail 2x Problem (https://www.delphipraxis.net/62298-db-erstellung-master-detail-2x-problem.html)

manfred_h 2. Feb 2006 16:36

Datenbank: Firebird • Version: 1.5 • Zugriff über: Zeos

DB erstellung / Master - Detail 2x Problem
 
Hallo zusammen

bin wirklich seit längerer Zeit am expeimentieren unter Verwendung von IBExpert und
IBConsole ( Interbase ).

Habe hier ein Script welches 3 Tabellen erstellen soll mit einigen Domains und Generatoren.
Das Prolem ist dass es z.B. mit IBConsole geht und mit IBExpert dann z.T wieder nicht.
Interessant ( nicht wirklich ) finde ich es auch wenn ich eine DB mit IBExpert anschaue ( SQL )
dann das Script kopiere und Versuche die leiche DB zu erstellen das das dann nicht geht.
Mit IBConsole geht es aber dann wieder. :pale: Bin echt am :wall:

Könntet Ihr Bitte mein SQL Script anschauen?

Die Tabellen ALTERSHEIM > ALTERSHEIM_K
> ALTERSHEIM_V > ALTERSHEIM_VD

ALTERSHEIM_S ohne Verknüpfungen

( Bin mir auch am überlegen ob es womöglich sinnvoller ist wenn die ganze "Struktur" nicht
auf der Datenbank liegt sonder von Delphi "Erzeugt" wird. Will heissen:
ALTERSHEIM > ALTERSHEIM_K bei dem löchen von ALTERSHEIM alle Datensätze von ALTERSHEIM_K
vom Delphi löschen lassen )


Bin Dankbar für Eure Ratschläge :love:
Manfred

PS: als ID verwend ich GUID deshalb habe ich die Domain auf "ID" AS CHAR(32) CHARACTER SET ISO8859_1 NOT NULL; gesetzt.

SQL-Code:
/******************************************************************************/
/****              Generated by IBExpert 01.02.2006 17:16:07               ****/
/******************************************************************************/

SET SQL DIALECT 3;

SET NAMES UNICODE_FSS;


/******************************************************************************/
/****                          DOMAINS START                              ****/
/******************************************************************************/


CREATE DOMAIN "ID" AS CHAR(32) CHARACTER SET ISO8859_1 NOT NULL;
CREATE DOMAIN "PLZ" AS VARCHAR(10) CHARACTER SET UNICODE_FSS;
CREATE DOMAIN "STATUS" AS VARCHAR(10) CHARACTER SET UNICODE_FSS;
CREATE DOMAIN "T10" AS VARCHAR(10) CHARACTER SET UNICODE_FSS;
CREATE DOMAIN "T20" AS VARCHAR(20) CHARACTER SET UNICODE_FSS;
CREATE DOMAIN "T30" AS VARCHAR(30) CHARACTER SET UNICODE_FSS;
CREATE DOMAIN "T50" AS VARCHAR(50) CHARACTER SET UNICODE_FSS;
CREATE DOMAIN "T70" AS VARCHAR(50) CHARACTER SET UNICODE_FSS;
CREATE DOMAIN "T130" AS VARCHAR(130) CHARACTER SET UNICODE_FSS;
CREATE DOMAIN "T255" AS VARCHAR(255) CHARACTER SET UNICODE_FSS;
CREATE DOMAIN "DATUM" AS DATE;
CREATE DOMAIN "TIME_S" AS TIMESTAMP;
CREATE DOMAIN "I_O" AS DECIMAL(9, 0);
CREATE DOMAIN "TEXT" AS BLOB SUB_TYPE TEXT SEGMENT SIZE 80 CHARACTER SET ISO8859_1;


/******************************************************************************/
/****                          DOMAINS END                                ****/
/******************************************************************************/

/******************************************************************************/
/****                       GENERATOREN START                             ****/
/******************************************************************************/
CREATE GENERATOR "GEN_ALTERSHEIM";
CREATE GENERATOR "GEN_ALTERSHEIM_K";
CREATE GENERATOR "GEN_ALTERSHEIM_STAT";
CREATE GENERATOR "GEN_ALTERSHEIM_V";
CREATE GENERATOR "GEN_ALTERSHEIM_VD";

/******************************************************************************/
/****                        GENERATOREN END                              ****/
/******************************************************************************/

/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/


/******************************************************************************/
/****                        ALTERSHEIM Start                             ****/
/******************************************************************************/
CREATE TABLE ALTERSHEIM
(
  "ID"     "ID",
  "G_NR"  "T30",
  "U_NR"  "T30",
  "NAME"  "T130",
  "STR"     "T130",
  "PLZ"     "PLZ",
  "ORT"     "T50",
  "TEL"     "T20",
  "FAX"     "T20",
  "EMAIL"  "T50",
  "HOMEPAGE"  "T130",
  "ANZ_PL"  "T10",
  "ARBEITER"  INTEGER,
  "MT"     SMALLINT,
  "AKZEPTANZ"  INTEGER,
  "STATUS"  INTEGER,
  "MEMO"  "TEXT",
  "NK"     INTEGER,
  "KF"     INTEGER,
  "L_UPDATE"  "TIME_S",
  "STAT_UPDATE"  INTEGER,
  "STAT_DEL"  INTEGER
);

/******************************************************************************/
/****                          Primary Keys                               ****/
/******************************************************************************/

ALTER TABLE ALTERSHEIM ADD PRIMARY KEY (ID);


/******************************************************************************/
/****                         ALTERSHEIM END                              ****/
/******************************************************************************/


/******************************************************************************/
/****                    ALTERSHEIM KONTAKTE START                        ****/
/******************************************************************************/
CREATE TABLE ALTERSHEIM_K
(
  "ID"     "ID",
  "G_NR"  "T30",
  "U_NR"  "T30",
  "ID_SPARTE"  "ID",
  "K_ANREDE"  "T20",
  "K_NAME"  "T50",
  "K_VORNAME"  "T50",
  "K_POSITION"  "T50",
  "K_TEL_1"  "T20",
  "K_TEL_2"  "T20",
  "K_EMAIL"  "T50",
  "K_MEMO"  "TEXT",
  "L_UPDATE"  "TIME_S",
  "STAT_UPDATE"  INTEGER,
  "STAT_DEL"  INTEGER
);

/******************************************************************************/
/****                   Primary Keys & REFERENCES                         ****/
/******************************************************************************/

ALTER TABLE ALTERSHEIM_K ADD PRIMARY KEY (ID);
ALTER TABLE ALTERSHEIM_K ADD FOREIGN KEY ("ID_SPARTE") REFERENCES ALTERSHEIM ("ID") ON DELETE CASCADE;

/******************************************************************************/
/****                     ALTERSHEIM KONTAKTE END                         ****/
/******************************************************************************/


/******************************************************************************/
/****                   ALTERSHEIM VERTEILUNG START                       ****/
/******************************************************************************/
CREATE TABLE ALTERSHEIM_V
(
  "ID"     "ID",
  "G_NR"  "T30",
  "U_NR"  "T30",
  "ID_SPARTE"  "ID",
  "DATUM"  "T20",
  "K_PERSON"  "T50",
  "K_DURCH"  "T130",
  "MEMO"  "TEXT",
  "L_UPDATE"  "TIME_S",
  "STAT_UPDATE"  INTEGER,
  "STAT_DEL"  INTEGER
);

/******************************************************************************/
/****                   Primary Keys & REFERENCES                         ****/
/******************************************************************************/

ALTER TABLE ALTERSHEIM_V ADD PRIMARY KEY (ID);
/**ALTER TABLE ALTERSHEIM_V ADD FOREIGN KEY ("ID_SPARTE") REFERENCES ALTERSHEIM ("ID") ON DELETE CASCADE;

/******************************************************************************/
/****                   ALTERSHEIM VERTEILUNG END                         ****/
/******************************************************************************/


/******************************************************************************/
/****               ALTERSHEIM VERTEILUNG DETAIL START                    ****/
/******************************************************************************/
CREATE TABLE ALTERSHEIM_VD
(
  "ID"     "ID",
  "G_NR"  "T30",
  "U_NR"  "T30",
  "ID_V"  "ID",
  "BIBEL_TYP"  "T130",
  "MENGE"  INTEGER,
  "L_UPDATE"  "TIME_S",
  "STAT_UPDATE"  INTEGER,
  "STAT_DEL"  INTEGER
);


/******************************************************************************/
/****                   Primary Keys & REFERENCES                         ****/
/******************************************************************************/

ALTER TABLE ALTERSHEIM_VD ADD PRIMARY KEY (ID);
ALTER TABLE ALTERSHEIM_VD ADD FOREIGN KEY ("ID_V") REFERENCES ALTERSHEIM_V ("ID") ON DELETE CASCADE;

/******************************************************************************/
/****                ALTERSHEIM VERTEILUNG DETAIL END                     ****/
/******************************************************************************/


/******************************************************************************/
/****                   ALTERSHEIM STATISTIK START                        ****/
/******************************************************************************/
CREATE TABLE ALTERSHEIM_S
(
  "ID"     "ID",
  "G_NR"  "T30",
  "U_NR"  "T30",
  "GJ"     INTEGER,
  "Q"     INTEGER,
  "JZ"     INTEGER,
  "QZ"     INTEGER,
  "L_UPDATE"  "TIME_S",
  "STAT_UPDATE"  INTEGER,
  "STAT_DEL"  INTEGER
);


/******************************************************************************/
/****                   Primary Keys & REFERENCES                         ****/
/******************************************************************************/

ALTER TABLE ALTERSHEIM_S ADD PRIMARY KEY (ID);


/******************************************************************************/
/****                    ALTERSHEIM STATISTIK END                         ****/
/******************************************************************************/

alex517 2. Feb 2006 18:32

Re: DB erstellung / Master - Detail 2x Problem
 
Hallo Manfred,

wo liegt denn das Problem? Welches Statement? Welche Fehlermeldung?
Mein IBExpert hat dein Script anstandslos ausgeführt.

alex

manfred_h 2. Feb 2006 20:54

Re: DB erstellung / Master - Detail 2x Problem
 
Zitat:

Zitat von alex517
Hallo Manfred,

wo liegt denn das Problem? Welches Statement? Welche Fehlermeldung?
Mein IBExpert hat dein Script anstandslos ausgeführt.

alex

Das ist ja das seltsame. Gerade eben hab ich das Script nochmals aufgerufen
und bekam die Fehlermeldung:

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 5, char 5.
SQL.

und der erste Befehl >> SET SQL DIALECT 3; war in einem roten Balken.
Wenn ich aber schaue wie ein Script daherkommt das von IBExpert selber ausgegeben wird
finde ich keinen Unterschied. :gruebel:
ein wenig Ratlos


Manfed

manfred_h 3. Feb 2006 09:53

Re: DB erstellung / Master - Detail 2x Problem
 
Das Problem hat sich gelöst :pale: einlich hab im IB Expert - Script Executive
den Button use current connect übersehen.

Zur Zweiten Frage hat da jemand eine Überlegung?

Die Tabellen ALTERSHEIM > ALTERSHEIM_K
> ALTERSHEIM_V > ALTERSHEIM_VD

ALTERSHEIM_S ohne Verknüpfungen

( Bin mir auch am überlegen ob es womöglich sinnvoller ist wenn die ganze "Struktur" nicht
auf der Datenbank liegt sonder von Delphi "Erzeugt" wird. Will heissen:
ALTERSHEIM > ALTERSHEIM_K bei dem löchen von ALTERSHEIM alle Datensätze von ALTERSHEIM_K
vom Delphi löschen lassen )


Besten dank für Deine alex517 / Eure Hilfe
Manfred


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz