Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi dbf Tabelle per BatchMove füllen (https://www.delphipraxis.net/158957-dbf-tabelle-per-batchmove-fuellen.html)

blutigerAnfänger 9. Mär 2011 11:33

Datenbank: Paradox • Version: 4 • Zugriff über: BDE

dbf Tabelle per BatchMove füllen
 
Hallo DPler

Ich möchte eine dbf Tabelle per BatchMove mit Daten aus einer Tabulator-getrennten Quell Datei füllen.

Hier mein Ansatz:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
 with Table1 do
 begin
   Active := false;
   DataBaseName := 'C:\';
   TableName   := 'Quell.txt';
    TableType := ttASCII;
    Table1.Open;
  end;

 with Table2 do
 begin
   Active := false;
   DataBaseName := 'C:\';
   TableName   := 'Ziel.dbf';
    TableType := ttDbase;
  end;

    with Table2.FieldDefs do //Benenne Tabellenfeld
    begin
      Clear;
      Add('Feld001', ftString, 50, false);
      Add('Feld002', ftString, 250, False);
    end;

    Table2.CreateTable;     //Erzeuge Tabelle

    Table2.BatchMove(Table1, batAppend);


Form1.Close;
end;
Leider preßt BatchMove alle Datensätze in ein Feld.

Also wie mache ich BatchMove begreiflich den Tabulator als Feldtrennzeichen zu verwenden.

mkinzler 9. Mär 2011 11:46

AW: dbf Tabelle per BatchMove füllen
 
Hier scheinen Tabs nicht als Feldtrenner erkannt zu werden.

Btw:
-Paradox <> dBase
-die BDE ist total veraltet

Bernhard Geyer 9. Mär 2011 13:24

AW: dbf Tabelle per BatchMove füllen
 
Datenbankdateien direkt unter "C:\". Du kennst scheinbar Vista/Win7 auch nur vom hörensagen bzw. schaltest generell UAC ab?

peterlepan 9. Mär 2011 13:51

AW: dbf Tabelle per BatchMove füllen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

da gab es vor Urzeiten mal eine Schrift, wie der TXT-Treiber mit der BDE zu benutzen ist, hab ihn mal angehängt.

Gruß Peter

blutigerAnfänger 9. Mär 2011 14:13

AW: dbf Tabelle per BatchMove füllen
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1087004)
Datenbankdateien direkt unter "C:\". Du kennst scheinbar Vista/Win7 auch nur vom hörensagen bzw. schaltest generell UAC ab?

C:\ ist doch bloß ein Beispiel. Natürlich steht die Tabelle unter C:\DB

was aber hat das mit Vista oder Win7 zu tun?

Anmerkung: Quell.txt ist eine AnsiDatei BatchMove spricht aber von ASCII.
Bringt mich zur Frage: Ist BatchMove überhaupt geeignet ??

blutigerAnfänger 10. Mär 2011 11:40

AW: dbf Tabelle per BatchMove füllen
 
Schade, daß es niemanden gibt der zu diesem Thema etwas zu sagen hat.:cry:

jobo 10. Mär 2011 13:35

AW: dbf Tabelle per BatchMove füllen
 
Hast du Dir schon mal den Inhalt der Table1 angeschaut. Wird die in einem Grid richtig dargestellt? Kannst Du normal auf die Felder zugreifen, also getrennt?

blutigerAnfänger 10. Mär 2011 15:02

AW: dbf Tabelle per BatchMove füllen
 
Ich habe keine Probleme mit der Quell.txt. Sie ist nur viel zu groß für ein Grid. Dafür benötige ich wenigstens 4 Stringgrids. Also geviertelt und in ein Stringgrid geladen...

Ich hatte die Hoffnung, daß das Ganze mit BatchMove sich wesentlich beschleunigen läßt (Alles in einem Schritt), aber der Tabulator wird halt nicht als Trennzeichen erkannt. BatchMove lädt wie bereits gesagt alle Datensätze in ein Feld. Aber in affenartiger Geschwindigkeit.

jobo 10. Mär 2011 15:49

AW: dbf Tabelle per BatchMove füllen
 
Ich weiß nicht, ob wir uns richtig verstehen.
Wofür willst Du 4 String Grids? Was ist zu groß?
Wenn das Grid nicht auf den Monitor passt, brauchst Du vielleicht einen größeren Monitor?! :stupid:

Meine Frage war, ob deine Table1 richtig gelesen wird, also deine Batchmove Quelle. Wenn die schon falsch geöffnet wird, kann BatchMove auch nichts dafür.

Delphi-Quellcode:
 with Table1 do
 begin
   Active := false;
   DataBaseName := 'C:\';
   TableName := 'Quell.txt';
    TableType := ttASCII;
    Table1.Open;
  end;
Ich meine:
Hast Du da einmal ein DBGrid drangebunden, werden deine CSV Daten via Table1 richtig dargestellt?

blutigerAnfänger 10. Mär 2011 17:06

AW: dbf Tabelle per BatchMove füllen
 
Zitat:

Zitat von jobo (Beitrag 1087383)

Meine Frage war, ob deine Table1 richtig gelesen wird, also deine Batchmove Quelle. Wenn die schon falsch geöffnet wird, kann BatchMove auch nichts dafür.

Ich meine:
Hast Du da einmal ein DBGrid drangebunden, werden deine CSV Daten via Table1 richtig dargestellt?

Ja, da gibt es kein Problem.

Achso, du meinst: von DBGrid nach dbf wandeln, dafür gibt es ja hier Beispiele.
Das ganze hebelt aber das Thema BatchMove aus. Oder nicht?


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:20 Uhr.
Seite 1 von 2  1 2      

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