AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Diskussion: Umstellung einer Datenbank in einem Projekt
Thema durchsuchen
Ansicht
Themen-Optionen

Diskussion: Umstellung einer Datenbank in einem Projekt

Ein Thema von RWarnecke · begonnen am 9. Dez 2009 · letzter Beitrag vom 17. Dez 2009
Antwort Antwort
Seite 6 von 10   « Erste     456 78     Letzte »    
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#51

Re: Diskussion: Umstellung einer Datenbank in einem Projekt

  Alt 10. Dez 2009, 07:06
Den Vorteil, so wie Hansa es beschrieben hat, sehe ich auch in einem Export der bestehenden Daten. Zum einen habe ich erstmal eine Sicherung der Daten und zum zweiten kann ich dann die Exportierten Daten so anpassen, wie ich es möchte.

Ich habe gerade noch den Paradox Viewer gefunden. Auf den ersten Blick sieht das Teil garnicht schlecht aus. Werde es heute laufe des Tages es ausgibieg testen und dann hier berichten. Dieser Viewer soll nur zur Unterstützung dienen.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#52

Re: Diskussion: Umstellung einer Datenbank in einem Projekt

  Alt 10. Dez 2009, 09:28
Hallo,

eventuell schaust Du Dir mal die Komponente TBatchMove an, sie benötigt noch die BDE, was ja bei Deinem Altsystem auch der Fall ist. Mit dieser Komponenten kann man recht einfach Tabellen zwischen Datenbanken kopieren. Zum Kopieren müssen sie halt beide über die BDE erreichbar sein. Das gilt aber nur für die Kopierroutinen, die ja nur einmalig benötigt werden und ist für den späteren Zugriff auf die Zieldatenbank nicht relevant.

Die Komponente bietet auch die Möglichkeit, beim Kopieren unterschiedliche Spaltennamen zu matchen. Problemfälle kann sie in Paradoxtabellen protokollieren. Der Programmieraufwand hält sich in Grenzen, da ein Programm für viele Tabellen genutzt werden kann. Je Quell- und Zieltabelle benötigt man halt den Namen der Quell- und Zieltabelle, die Namen der "Fehler"-Tabellen und eine Stringliste mit dem Matching der Spalten (sofern hier keine 1:1-Übernahme erfolgt).
Bei einer 1:1-Übernahme kann man hiermit in eine Schleife alle Tabellen einer Datenbank kopieren, man muss nur die Tabellennamen jeweils austauschen und den Kopiervorgang starten.

Mit dieser Komponente habe ich schon Daten zwischen diversen (kleineren) Datenbanken ausgetauscht, in der Regel war die Quelle dbase oder Paradox und das Ziel Oracle oder SQL-Server.

Die Komponente bietet verschiedene Modi für die Datenübernahme, von hinzufügen, über hinzufügen und aktualisieren, reinem kopieren, reinem aktualisieren bis zum Löschen.
Hierüber dürfte auch eine Normalisierung der Tabellen möglich sein, wenn man Quelle und Ziel geschickt auswählt und so eine Quelltabelle in mehreren Schritten in die entsprechenden Zieltabellen übernimmt. Muss man im Zielsystem aber erst noch neue Schlüssel generieren, dann dürfte die Leistungsgrenze der Komponente erreicht oder überschritten sein.

http://edn.embarcadero.com/article/25620
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#53

Re: Diskussion: Umstellung einer Datenbank in einem Projekt

  Alt 10. Dez 2009, 09:50
Zitat von RWarnecke:
Das würde also heißen, wenn ich zum Beispiel folgenden Code habe :
Delphi-Quellcode:
with xxQuery do
begin
  SQL.Clear;
  SQL.Text := 'SELECT * FROM tabelle';
  Open;
  Active := true;
  Edit1.Text := FieldByName('Feld1').AsString;
{...}
  Active := false;
  Close;
end;
Dann bin ich mit einer TxxQuery besser bedient oder wie darf ich das verstehen? Ich kann noch nicht so richtig den Unterschied sehen zwischen TxxQuery und TxxDataset.
Es kommt immer darauf an was gewünscht wird.

Nehmen wir einmal an Du hast eine Tabelle mit einem Integer-Feld als ID(PK) und 30 Felder a 10Char. Davon hast Du nun 10.000 Datensätze.

In deinem Programm hast Du nun ein Grid oder so um die ersten vier Char Felder anzuzeigen (als Auswahlliste).

Bei einem SELECT * FROM tabelle (oder verwendung von TTable) werden jetzt also

(4 Byte + 30*10Byte) * 10.000 = 3.040.000 Byte geladen.

Benötigt wird für die Anzeige aber nur SELECT ID,Feld1,Feld2,Feld3,Feld4 FROM tabelle Also

(4 Byte + 4*10Byte) * 10.000 = 440.000 Byte

Wenn Du nun die Details eines Datensatzen benötigst lädst Du diese genau dann wenn Du sie benötigst.
SELECT * FROM tabelle WHERE ID = akuelleIDausAuswahlListe Das ist einer der Vorteile eines Query
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Muchacho

Registriert seit: 9. Okt 2009
60 Beiträge
 
Delphi 2010 Enterprise
 
#54

Re: Diskussion: Umstellung einer Datenbank in einem Projekt

  Alt 10. Dez 2009, 11:00
Hi Sharky,

Ist Open und Active nicht das Gleiche?


Außerdem Open sollte immer „geschützt“ werden z.B.:

Delphi-Quellcode:
 try
  Open;
 except
   on E:Exception do
   begin
    //
   end
 end;

Muchacho
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#55

Re: Diskussion: Umstellung einer Datenbank in einem Projekt

  Alt 10. Dez 2009, 11:03
Hai Muchacho,

wenn Du genau hinsiehst kannst Du erkennen das der Code mit Open und Active nicht von mir ist


Zitat von Muchacho:
... Außerdem Open sollte immer „geschützt“ werden z.B.:
Habe ich, ehrlich gesagt, noch nie gemacht.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Muchacho

Registriert seit: 9. Okt 2009
60 Beiträge
 
Delphi 2010 Enterprise
 
#56

Re: Diskussion: Umstellung einer Datenbank in einem Projekt

  Alt 10. Dez 2009, 11:09
Zitat von Sharky:
Habe ich, ehrlich gesagt, noch nie gemacht.
Sharky,

solltest Du aber

Muchacho
  Mit Zitat antworten Zitat
Muchacho

Registriert seit: 9. Okt 2009
60 Beiträge
 
Delphi 2010 Enterprise
 
#57

Re: Diskussion: Umstellung einer Datenbank in einem Projekt

  Alt 10. Dez 2009, 11:17
Sharky

Du hast ein Formular mit sagen wir 10 Querys

Jetzt kriegst Du einen Anruf von einem Kunden:

„Hi, Sharky, ich kriege immer bei Öffnen des Formulars ein SQL Fehler, was ist los?“

Was meinst Du Sharky, wie könnte Dir [try/except/end] Block weiterhelfen?

Muchacho
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#58

Re: Diskussion: Umstellung einer Datenbank in einem Projekt

  Alt 10. Dez 2009, 11:22
Zitat von Muchacho:
Was meinst Du Sharky, wie könnte Dir [try/except/end] Block weiterhelfen?
Gar nicht, denn dann fällt die eigentlich immer recht aussagekräftige SQL-Fehlermeldung weg.
Btw, Muchacho, der - Button möchte gerne benutzt werden.
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#59

Re: Diskussion: Umstellung einer Datenbank in einem Projekt

  Alt 10. Dez 2009, 11:23
Der Sourcecode war von mir einfach nur niedergeschrieben, da es um ein kurzes einfache Beispiel ging mit TxxQuery und TxxDataset. Das ist jetzt aber auch nicht das Thema.

Auf jedenfall zeigt das Beispiel von Sharky deutlich, was man an Traffic einsparen kann, wenn man die TTable-Komponenten durch TxxQuery-Komponenten ersetzt.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Muchacho

Registriert seit: 9. Okt 2009
60 Beiträge
 
Delphi 2010 Enterprise
 
#60

Re: Diskussion: Umstellung einer Datenbank in einem Projekt

  Alt 10. Dez 2009, 11:29
Zitat von Daniel G:
Zitat von Muchacho:
Was meinst Du Sharky, wie könnte Dir [try/except/end] Block weiterhelfen?
Gar nicht, denn dann fällt die eigentlich immer recht aussagekräftige SQL-Fehlermeldung weg.
Btw, Muchacho, der - Button möchte gerne benutzt werden.
Sorry wg. Edit.

Was [try/except/end] Block an dieser Stelle betrifft irrst Du Dich gewaltig, sorry.

Manche aussagekräftige Meldungen von SQL-Server sind natürlich nur für Gott verständlich.

Darüber hinaus wäre es nicht schlecht,wenn das Formular (trotzt Fehler) weiter läuft
und nicht z.B. OnShow zusammenbricht, meinst Du nicht?

Tja

Muchacho
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 10   « Erste     456 78     Letzte »    


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:46 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