![]() |
Re: Diskussion: Umstellung einer Datenbank in einem Projekt
Hallo,
von Hand, schön zu Fuss. Und nach jedem Umbau TESTEN !!! Das Rüberschieben habe ich für Anfangstest per IBDataPump gemacht. Zu Paradox / künstliche Schlüssel. Einspruch Euer Ehren ;) Gerade meine Nutzung des AutoInc als künstlicher Schlüssel war ein Grund, warum ich nicht gross an der Datenstruktur was machen musste. Id Autoinc -> Id Integer Aber MKinzler hat trotzdem "etwas" Recht ;) Manche Datenstruktur in meinem Programm wurde nur deshalb so anlegt, weil es unter Paradox nicht anderes oder sehr schwer ging. Heiko PS: auf IBPhoenix.com gibt es 2 interessante Artikel Pdx->Interbase "My lock file has grown too large" "Pdx->Interbase in 40 days" |
Re: Diskussion: Umstellung einer Datenbank in einem Projekt
Zu 4:
Es gibt IMHO zwei gute Gründe, auf TTable Kompos zu verzichten. 1) Die Dinger dienen eigentlich nur der Abwärtskompatibilität zur BDE 2) TTables machen im Prinzip ein
SQL-Code:
und fragen parallel noch sämtliche Informationen zu allen Spalten der Tabelle ab, was bei großen Tabellen mit vielen Datensätze eine echte Bremse sein kann.
SELECT * FROM <Tabelle>
|
Re: Diskussion: Umstellung einer Datenbank in einem Projekt
Moin,
der Fragesteller ist wohl eher an Erfahrungen interessiert. Wo es hakt usw. Hierzu mein Bericht. Im Prinzip mache ich das auch ungefähr so wie Hoika. Zuerst muss man ja mal an die alten DB-Daten rankommen. Egal ob BDE oder sonstwas. Jetzt hatte ich da auch mit Datapump und sonstigen Tools rumexperimentiert. Oder mit EXTERNAL FILE in Firebird. Sieht auf den ersten Blick schön aus, aber der Krempel macht IMHO im Endeffekt mehr Ärger, als er nützlich ist. Ich bin dann kurzerhand hingegangen und habe die Daten zuerstmal quasi 1:1 in normale Textdatei exportiert. Zuerst als CSV. Und was zu erwarten war : egal welches Trennzeichen, irgendwo war es trotzdem in einem Feld. Dann Test mit festen Feldlängen. Das CSV-Problem war zwar weg, aber es tauchten Felder auf, die beschädigt waren. Wohl durch Stromausfälle etc. Jetzt hat man da aber ellenlange Textzeilen und kriegt vielleicht noch relativ leicht raus, welche Zeile das Problem verursacht, aber nicht wo in der Zeile genau. Auf Dauer auch nicht empfehlenswert. Letztenendes mache ich das mittlerweile so : jedes alte Feld kommt in extra Zeile einer Textdatei. Auf der Delphi/FB-Seite lese ich die dann einfach per readln (..); und übergebe das Ganze mit FieldByName usw. Ist jetzt da ein unlogisches Feld drin, z.B. ' ' wo integer erwartet wird, dann bleibt Delphi zumindest mal in der entsprechenden Zeile des Import-Programms stehen. Ist das Feld klar, dann lasse ich das Export-Programm genau dieses kaputte Feld anzeigen. Man könnte auch die Textdatei direkt danach untersuchen. Aber das sind normalerweise dann wegen "pro Feld eine Zeile" zu viele Zeilen. Ist die alte DB in keinster Weise normalisiert, dann wirds aber echt kritisch. :mrgreen: Zeitaufwand schätze ich mal auf max. 3 Tabellen pro Tag, also Programmierung der jeweiligen Export/Import-Programme. Die Zeit, die die Programme zum Ablauf brauchen nicht eingerechnet ! Mehr geht kaum. Es ist schon viel Handarbeit. |
Re: Diskussion: Umstellung einer Datenbank in einem Projekt
Bis bisheriges Resüme aus den ganzen Antworten ist in Stichpunkten zusammengefasst :
Zitat:
Zitat:
|
Re: Diskussion: Umstellung einer Datenbank in einem Projekt
Zitat:
Davon mal abgesehen : was soll das dauernd mit dem TTable, TQuery etc. ? :gruebel: Das ist doch alles längst überholt. Bei mir gibts lediglich aus Komp.Gründen eine Query. Normal wäre TDataset-Abkömmling. |
Re: Diskussion: Umstellung einer Datenbank in einem Projekt
Zitat:
|
Re: Diskussion: Umstellung einer Datenbank in einem Projekt
Zumindest bei FIBPlus ist sie wohl nur dazu da, dass die BDE-Leute nicht zuviel Angst kriegen. :mrgreen:
|
Re: Diskussion: Umstellung einer Datenbank in einem Projekt
Zitat:
|
Re: Diskussion: Umstellung einer Datenbank in einem Projekt
Es kommt hierbei aber auch an, was man benötigt. Ein TxxDataSet hat viel mehr Features als ein TxxQuery aber auch einen größeren Overhead.
Wobei die TIBCQuery von IBDAC eine echtes DataSet in Hansas Sinne ist. Ein TxxDataSet bietet sich an, wenn du mit <Kompo>.Append()/.Insert(), .Delete() usw. arbeiten willst. |
Re: Diskussion: Umstellung einer Datenbank in einem Projekt
Das würde also heißen, wenn ich zum Beispiel folgenden Code habe :
Delphi-Quellcode:
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.
with xxQuery do
begin SQL.Clear; SQL.Text := 'SELECT * FROM tabelle'; Open; Active := true; Edit1.Text := FieldByName('Feld1').AsString; {...} Active := false; Close; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:14 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