AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Einfügen über externalTabelle funktioniert nicht richtig
Thema durchsuchen
Ansicht
Themen-Optionen

Einfügen über externalTabelle funktioniert nicht richtig

Ein Thema von blutigerAnfänger · begonnen am 27. Feb 2014 · letzter Beitrag vom 12. Sep 2014
 
blutigerAnfänger

Registriert seit: 23. Mär 2010
82 Beiträge
 
#1

Einfügen über externalTabelle funktioniert nicht richtig

  Alt 27. Feb 2014, 08:59
Datenbank: firebird • Version: 2 • Zugriff über: IB Komponente
Hallo

ich möchte eine external Tabelle in eine Firebird Tabelle überführen. Der Quelltext den ich mir zusammengestückelt habe funktioniert fehlerfrei(laut Compiler). Das Ergebnis ist niederschmetternd.

Es gibt keine Feldtrennung, jeweils 2 Buchstaben verschwinden(egal ob Feld1 od.Feld2), Datensatzendezeichen werden nicht erkannt.
Delphi-Quellcode:
procedure TForm1.btn2Click(Sender: TObject);
begin
//IBDatabase1.DatabaseName := 'c:\db\test.fdb';
  with IBQuery1 do
   begin
      Active:=False;
      sql.Clear;
      sql.Text := 'DROP TABLE tabelle2'  ;
      Active:=true;
      IBTransaction1.Commit;
      sql.clear;
      Active:=false;
      sql.text := 'CREATE TABLE TABELLE2 (FELD001 VARCHAR(50) CHARACTER SET ISO8859_1 COLLATE DE_DE, FELD002 VARCHAR(250) CHARACTER SET ISO8859_1 COLLATE DE_DE)';
      Active:=true;
      IBTransaction1.Commit;
   end;
ibdb1.Close;
end;


procedure TForm1.btn3Click(Sender: TObject);
begin
  with IBQuery1 do
   begin
      Active:=False;
      sql.Clear;
      sql.Text := 'Create TABLE dat_ext external file''c:\externalTables\Tabelle2.txt''(feld001 varchar(50),feld002 varchar(250), crlf smallint )';
      Active:=true;
      IBTransaction1.Commit;
   end;
end;

procedure TForm1.btn4Click(Sender: TObject);
begin
  with IBQuery1 do
   begin
      Active:=False;
      sql.Clear;
      sql.Text := 'Insert into Tabelle2 SELECT FELD001 , FELD002 from dat_ext ';
      Active:=true;
      IBTransaction1.Commit;
   end;
end;

procedure TForm1.btn5Click(Sender: TObject);
begin
  with IBQuery1 do
   begin
      Active:=False;
      sql.Clear;
      sql.Text := 'drop table dat_ext ';
      Active:=true;
      IBTransaction1.Commit;
   end;
end;
Der Quelltext sieht zwar nicht sehr vertrauenserweckend aus, aber er läuft.

Ich habe mehrere Möglichkeiten für crlf gefunden, hier als smallint aber auch char(2) ist möglich. Verwirrend!
Code:
  ... TABLE dat_ext external file''c:\externalTables\Tabelle2.txt''(feld001 varchar(50),feld002 varchar(250), crlf smallint )';
Völlig egal ob smallint oder Char(2), das Ergebnis ist dasselbe.

Ich hoffe ihr könnt mir helfen.
  Mit Zitat antworten Zitat
 


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 12:30 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