Autor Beitrag
kuddel
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Do 21.09.06 14:49 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 374

WIN 2000prof, WIN XP prof
D7EP, MSSQL, ABSDB
BeitragVerfasst: 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.
Das Import-Beispiel von ABS müsstes Du dann entsprechend anpassen.
kuddel Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Fr 22.09.06 20:09 
Habe jetzt mal ein kleines Testprogramm für den Import erstellt mit folgendem Inhalt:

ausblenden volle Höhe 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
            // Ein variantes Array erstellen
            aField := VarArrayCreate([0,Table.Fieldcount-1],VarVariant);

            // Datensatz in Array einlesen
            for i := 0 to (Table.Fieldcount-1do
              begin
                aField[i] := Table.fields[i].Value ;
              end;

            abstable.Insert;
            // Array-Werte in den neuen ABS Datensatz übertragen
            for i := 0 to (table.Fieldcount-1do
              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 ;)
Einloggen, um Attachments anzusehen!
raiguen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 374

WIN 2000prof, WIN XP prof
D7EP, MSSQL, ABSDB
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: 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. ;)