Entwickler-Ecke
Datenbanken - Frage zum Einsatz der Absolute Database
kuddel - Do 21.09.06 14:49
Titel: Frage zum Einsatz der Absolute Database
Hallo,
da ich schon länger auf der Suche nach einem Ersatz für die BDE war, teste ich momentan Absolute Database. Bin davon auch im Großen und Ganzen überzeugt und werde mich wohl dafür entscheiden.
Nun ist aber während des Tests folgende Frage aufgetaucht:
Wie kann ich Daten die aus anderen Programmen exportiert wurden in die ABS-Datenbank zur Laufzeit importieren?
Also z.B. dBase/Paradox Dateien (ohne auf dem Zielrechner die BDE installiert zu haben).
In den mitgelieferten Beispielen habe ich nur ein Beispiel gefunden, wo der Zugriff mittels BDE-Aliasnames stattfindet. Was ja ohne BDE so nicht funktioniert.
Stehe daher momentan etwas wie der Ochs vorm Berg. :?
Oder hab ich da was Grundsätzliches falsch verstanden?
Gruß
kuddel ;)
raiguen - Do 21.09.06 22:08
Moin :-)
Also ich würde generell mal sagen, dass dBAse/Paradox-Tabellen - ob nun expliziet schon mal exportiert wurden oder im Original angefasst werden - IMMER die BDE haben müssen, um auf selbige zugreifen zu können. Ob nun per Alias oder mittels direkter relativer Pfadangabe spielt dabei keine Rolle. Somit wirst Du also Schwierigkeiten haben, *.dbf bzw *.db-Dateien in die ABS-Database zu schaufeln, wenn auf dem Zielrechner keine BDE installiert ist :(
Eine - von mir noch ungetestete - Möglichkeit wäre die Installation von BDE-freien DatenKomponenten, die auf dBase / Paradox-Tabellen zugreifen können -> schau mal
hier [
http://www.degisy.com/degisy-data.php].
Das Import-Beispiel von ABS müsstes Du dann entsprechend anpassen.
kuddel - Do 21.09.06 23:25
Moin raiguen,
hm... verstehe ich nicht ganz, da der Dateiaufbau doch bekannt sein sollte.
Die von dir genannten Komponenten sehen interessant aus.
Allerdings macht mich der Hinweis:
"Alle Komponenten sind der Basisklasse TdataSet entnommen, was ihre Kompatibilität mit allen standerden DB Controls versichert."
hellhörig. Könnte man nicht mit einem direkten Zugriff auf die Klasse TdataSet so etwas bewerkstelligen? Außerdem bin ich verwundert, das ich bisher kaum was über das Thema gefunden habe. Schließlich wird doch häufiger auf andere Datenbank-Systeme gewechselt.
Da fällt mir ein, welches Dateiformat kann ich denn überhaupt in ABS importieren? Womöglich nur Textfiles (.csv)?
Danke dir für deine Mühe. Bin froh jemanden gefunden zu haben der Erfahrung mit ABS hat. ;)
Gruß
kuddel
kuddel - Fr 22.09.06 20:09
Habe jetzt mal ein kleines Testprogramm für den Import erstellt mit folgendem Inhalt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| procedure TfrmMain.StartImportDBFFileClick(Sender: TObject); var afield: variant; i: integer; begin table.First; while not table.Eof do begin try aField := VarArrayCreate([0,Table.Fieldcount-1],VarVariant);
for i := 0 to (Table.Fieldcount-1) do begin aField[i] := Table.fields[i].Value ; end;
abstable.Insert; for i := 0 to (table.Fieldcount-1) do begin abstable.fields[i].Value := aField[i] ; end;
abstable.Post; table.next; except MessageDlg('Es ist ein Fehler aufgetreten!', mtWarning, [mbOK], 0); end; end; end; |
Da ich zwar mehrere PCs hier für einen Test zur Verfügung habe, aber auf jedem auch die BDE installiert ist, habe ich testweise das Verzeichnis ..\Borland Shared\BDE umbennant.
Anschließend das Programm gestartet und der Import funktionierte zu meiner Verwunderung einwandfrei.
Hm.. Jetzt überlege ich, ob dies mit der Umbenennung eventuell nicht ausreichte. Aber eine regelrechte Deinstallation der BDE gibt es ja leider nicht (so viel mir bekannt ist).
Wäre nett wenn das mal kurz einer auf einem PC OHNE BDE testen könnte.
Danke und Grüß
Kuddel ;)
raiguen - Sa 23.09.06 00:39
Hallo Kuddel :-)
Sorry, hatte heute den ganzen Tag DSL-Ausfall, somit konnte ich leider nicht eher antworten.
Also gleich vorweg die gute Nachricht zu sagen: zufälligerweise habe ich grad einen neu aufgesetzten PC mit XP und OHNE BDE(!!), weil ich nämlich auch eine BDE-freie 'Zone' haben wollte ... lange Rede kurzer Sinn: Dein Testprogrämmchen importiert die dbf-Datei einwandfrei :-) Somit kannst Du also getrost die weiteren Importe durchführen. Hast Du die Degisy-Kompos dafür verwendet? Dass diese von TDataSet abgeleitet sind, dürfte irgendwie klar sein, weil ja Delphi irgendeine Möglichkeit haben muss, darauf zuzugreifen.
Im Prinzip kannst Du jedes andere Datenbankformat in ABSDatabase importieren - im schlimmsten Falle halt über CVS-Tabellen; ist zwar umständlicher, aber in der Regel hat (fast) jedes Programm mit was-weiß-ich-für-exotisches-Datenformat die Möglichkeit, Dateninhalte als CVS-Dateien zu exportieren...
Anders gesagt: bei einem großen Kunden meinerseits darf beispielsweise kein direkter Zugriff meines Programmes auf SAP erfolgen - ergo musste SAP zwangsweise eine CSV-Import/Export-Schnittstelle zur Verfügung stellen, wo nun täglich in beiden Richtungen nicht unerhebliche Datenmengen ausgetauscht werden; und das klappt reibungslos :-) Also - um es mal mit meinem LieblingsAutohersteller zu sagen: nichts ist unmöglich ;-)
Wenn ich noch einen Tipp geben darf: so schön es auch ist, mit ABSTable zu arbeiten, würde ich doch empfehlen, auf ABSQuery umzustellen. Hat man sich einmal so richtig mit SQL auseinander gesetzt, läuft das alles zur vollen Zufriedenheit, auch einen Import kann man sehr schön realisieren.. Wenn Di diesbezüglich weitere Fragen hjast, dann lass es mich wissen, vielleicht kann ich da ja unterstützend weiterhelfen!?
So nun genug für heute und die nächsten Tage :-( bin quasi schon weg in Urlaub bwz auf Kundenbesuche in der nächsten Woche... also bitte etwas Geduld.
Gruß Rainer
kuddel - Sa 23.09.06 00:57
Hallo Rainer,
danke erst mal für deine ausführliche Antwort. :)
Freut mich natürlich das es bei dir funktioniert hat. Nein, habe keine Digisy Komponente dafür verwendet, nur die Standardkomponenten Table und DataSource für die Import .dbf (siehe Quelltextauszug oben).
Daher bin ich ja auch so verwundert, das es bei dir ohne BDE funktioniert hat.
Bezüglich der SQL-Komponente hast du natürlich vollkommen Recht. Ich habe mit dem BDE Pendant auch schon verschiedentlich gearbeitet, wenn auch nicht im großen Stil. Daher werde ich sicherlich gerne auf dein Angebot mal zurückkommen.
Gruß
Arno ;)
P.S.: Es eilt nicht, brauchst dich nicht zu entschuldigen. ;)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!