AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datenbank Update Strategien
Thema durchsuchen
Ansicht
Themen-Optionen

Datenbank Update Strategien

Ein Thema von Meta777 · begonnen am 2. Jun 2005 · letzter Beitrag vom 3. Jun 2005
 
Albi

Registriert seit: 4. Mai 2003
Ort: Berlin
458 Beiträge
 
Delphi 7 Professional
 
#4

Re: Datenbank Update Strategien

  Alt 3. Jun 2005, 20:33
marabu sein Vorschlag ist super. Danke!

@Meta777, wenn wir hier von einer DB ausgehen mit 100 Objecten (Table, usw.) ist es einfacher, die in einer Tabelle zu speichern und eine Versionnr zu führen. Ich selber habe vor dem gleichen Problem gestanden.

Ich wollte das so realisieren, das bei einem Programmupdate und Änderung der DB-Struktur, diese automatisch überprüpft und ggf. aktualisiert wird. Aber dazu must in den Systemtabellen von Firebird hinein um die Domains, Tabellen, Procedure usw. ranzukommen. Und um Änderungen vorzunehmen wirst Du dann logischer Weise ebenfalls diese direkt in den Systemtabellen vornehmen (ABER VORSICHT). Da du ja die Zeichenlänge z.Bsp. nicht mehr verändern kannst, wenn bereits Daten in der DB vorliegen, somit muss die Änderung in der Systemtabelle erfolgen.

Wenn Du also die Zusammenhänge in den Systemtabellen nicht genau kennst, dann lasse die Finger davon.

Hier mal was zum probieren.

Table auslesen:
SQL-Code:
SELECT RDB$RELATION_NAME, RDB$INDEX_NAME, RDB$INDEX_INACTIVE
FROM RDB$INDICES WHERE RDB$RELATION_NAME NOT STARTING 'RDB$'
ORDER BY RDB$RELATION_NAME
Table-Fields auslesen:
SQL-Code:
Select RDB$FIELD_NAME from RDB$RELATION_FIELDS
 where RDB$RELATION_NAME='Table_NAME'
 order by RDB$FIELD_POSITION
Primary-Key auslesen:
SQL-Code:
select i.rdb$field_name
from rdb$relation_constraints r, rdb$index_segments i
where r.rdb$relation_name= 'DB_AKTENand
        r.rdb$constraint_type='PRIMARY KEYand
        r.rdb$index_name=i.rdb$index_name
order by i.rdb$field_position
Procedure auslesen:
Select rdb$procedure_name From rdb$procedures Procedure-Parameter auslesen:
SQL-Code:
select RDB$PARAMETER_NAME,
RDB$PARAMETER_NUMBER,
RDB$PARAMETER_TYPE
 from RDB$PROCEDURE_PARAMETERS
WHERE RDB$PROCEDURE_NAME = 'Procedure_Name'
Index auslesen:
SQL-Code:
select * from rdb$index_segments
where rdb$index_name not starting 'RDB$'
order by rdb$index_name
Generatoren auslesen:
SQL-Code:
SELECT RDB$GENERATOR_NAME
FROM RDB$GENERATORS WHERE rdb$generator_Name Not Like 'RDB$%AND
(rdb$generator_Name Not Like 'SQL$%')
Gruß

Albi
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:35 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