AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datenbank gleich halten bei sich und Endanwendern
Thema durchsuchen
Ansicht
Themen-Optionen

Datenbank gleich halten bei sich und Endanwendern

Ein Thema von etom291272 · begonnen am 20. Mär 2005 · letzter Beitrag vom 9. Dez 2005
Antwort Antwort
Seite 2 von 2     12   
etom291272

Registriert seit: 16. Feb 2004
Ort: ---
232 Beiträge
 
#11

Re: Datenbank gleich halten bei sich und Endanwendern

  Alt 20. Mär 2005, 22:27
würde mich auch interessieren hab sie auch nicht auf den 1. Blick gefunden
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#12

Re: Datenbank gleich halten bei sich und Endanwendern

  Alt 9. Dez 2005, 07:28
Es ist zwar schon eine Weile her, aber schaden kanns ja nicht...

Der EMS MSSQL Manager (Lite und Pro) hat dafür was Passendes.

Eigenschaften der "Datenbank-Registrierung" >> letzter TAB (Logs) >> Enable Log of Metadata Changes

Wenn die Checkbox gesetzt ist, loggt der SQL-Manager alle Änderungen der DB-Struktur (insofern diese nicht von externen Programmen vorgenommen werden).

Man muss jetzt nur noch aufpassen, das man eventuelle Änderungen von "Standard-Daten" mit in der Script schreibt.


Schöne Grüße,
Jens


[ Nein, ich bekomme keine Provision von EMS, aber ich liebe das Tool ]
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: Datenbank gleich halten bei sich und Endanwendern

  Alt 9. Dez 2005, 08:35
Hallo eTom,

ich habe so ein Tool, das alcaeus erwähnt hat, seit 16 Jahren im Einsatz (natürlich nicht von Anfang an in Delphi ).

Dabei ist in einer Textdatei eine Art tabellarische Mini-DML bzw. Data Dictionary enthalten. Das Tool vergleicht die Definitionen mit den tatsächlich vorhanden Tabellen und Indizes und passt / legt diese automatisch an, dabei werden auch Backups der Original-Tabellen gemacht.

Einziger Nachteil: Das Teil ist voll auf ADS zugeschnitten. Läßt sich aber bestimmt auf andere DB anpassen. Allerdings gibt es natürlich immer Probleme mit solchen Tools / Script, sobald Du RI einsetzt. Diese in der richtigen Reihenfolge zu droppen hat mich auch manuell oft in den Wahnsinn getrieben.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#14

Re: Datenbank gleich halten bei sich und Endanwendern

  Alt 9. Dez 2005, 08:57
Ich kann jensw nur beipflichten. Ich persönlich benutze für private Projekte den EMS Interbase/Firebird Manager in der Lite-Version und speichere die durch Klicken vorgenommen Änderungen auch als .sql-Datei. Die wird beim Update mitausgeliefert und von meinem Programm nach einigen Checks ausgeführt. (Checks, damit man nicht einfach ne .sql mit z.B. "DELETE * from table" oder "drop..." machen kann )
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#15

Re: Datenbank gleich halten bei sich und Endanwendern

  Alt 9. Dez 2005, 09:42
wir haben das Problem auf folgende Weise gelöst:

- Definitions-Datei, in der die Tabellen/Felder definiert sind
-> Tabelle Kunden
-> KundenNr, Float, 0, J
-> Name1, String, 40, J
-> Name2, String, 40, N
-> Strasse, String, 40, N
-> usw.
-> KundenNr, P // Primärindex
-> Name1;KundenNr, S // Sekundärindex

- dann eine unit, die den DB-Aufbau mit der Definitions-Datei vergleicht und evtl anpasst.
- wenn die Veränderung nicht 100% klar ist (z.B. Integer -> Byte oder VarChar(50) -> VarChar(20)), dann schreibt das Tool einen Eintrag ins Logfile und es muss "Handarbeit" erfolgen.
- man kann aber die Änderungen so gestalten, dass es keine Unklarheiten gibt

wenn du willst, schicke ich Dir eine Bsp-DefDatei und diese Unit.
Veröffentlichen kann ich das leider nicht...
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#16

Re: Datenbank gleich halten bei sich und Endanwendern

  Alt 9. Dez 2005, 10:10
Auch mal Senf dazugeben:
Weil wir das gleiche Problem hatten, haben wir nach einer Lösung gesucht und sind fündig geworden:
(1) DBSynchroComp, das teuer aber wirklich gut ist und
(2) RedGate SQL-Compare, das zwar Geld kostet, aber irgendwie hübscher ist.
Alle anderen Tools haben unsere Testaufgabe nicht lösen können.

(1) ist brutal aber weitestgehend automatisch.
(2) ist viel eleganter und weigert sich, unlogische Operationen auszuführen, sodass man manchmal Hand anlegen muss: Beispiel:
Ich habe zwei identische DBs A und B. In einer Tabelle T füge ich in A eine Spalte 'MyColumn NOT Null' ein, aber ohne einen Default-Wert. (1) verwurstet das irgendwie, aber (2) zeigt gleich einen Fehler an: "Kann das nicht machen, weil kein Defaultwert angegeben ist".

Das Red Gate SQL-Bundle liefert auch noch ein 'Data Compare' aus, das den *Inhalt* von Tabellen synchronisiert, was wirklich praktisch ist. Natürlich kann man die zu synchronisierenden Tabellen und -Spalten vorher wählen.

Checkt das mal
(1) www.e-dule.com
(2) http://www.red-gate.com

Ansonsten hatten wir das schon:
http://www.delphipraxis.net/internal...0fef75cb599336
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
etom291272

Registriert seit: 16. Feb 2004
Ort: ---
232 Beiträge
 
#17

Re: Datenbank gleich halten bei sich und Endanwendern

  Alt 9. Dez 2005, 10:54
schön was von einem "alten" thread zu hören

ich hab kurz nach meinem damaligen post folgendes programm geschrieben dass mein problem für mich ausreichend gelöst hat.

Es wird auf 2 unterschiedliche Instanzen (egal ob auf selben oder unterschiedlichen Computern) auf 2 Sql server Datenbanken zugegriffen. Anschliessend werden alle Unterschiede der Tabellen und Views in einem Stringgrid angezeigt. [es würden dann nur noch die notwendigen sql statements in die Zieldatenbank fehlen dann ginge das anpassen auch automatisch aber es wäre damals gewesen wie mit kanonen auf spatzen zu schiessen da erst wenig Dbs bei kunden im Einsatz sind. ] Dieser Stringgrid ist dann die Grundlage für die Anpassung entweder Manuell oder per script.

happy
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#18

Re: Datenbank gleich halten bei sich und Endanwendern

  Alt 9. Dez 2005, 11:20
Moin etom291272

meinst Du das Dein Programm weiterzuentwickeln ist?

Grüße // Martin
Martin Schaefer
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 14:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz