SQL Datenimport Fehler

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
Bernie110
Beiträge: 120
Registriert: Mo 10. Feb 2020, 17:43

SQL Datenimport Fehler

Beitrag von Bernie110 »

Hallo Zusammen,

ich möchte Daten über ein SQL Statment direkt in die Datenbanken importieren.
Es geht um Postleitzahlen
Dabei habe ich eine Textdatei welche wie folgt aufgebaut ist
Land;Bundesland;Ort;Plz usw.

Mit folgendem Code importiere ich die Daten.
Funktioniert auch.
Jetzt habe ich versucht eine Fehlerhafte Textdatei zu importieren.
Da steigt mir Lazurus aus und es kommt gar nicht zur Fehlerbehandlung :roll:
Was mache ich an dieser Stelle falsch.. Bin leicht am verzweifeln :D

Code: Alles auswählen

      
       try
        try
         // Neue Daten importieren
        Xpfad     := SQL_PFAD.text;
        XAuswahl1 := Auswahl1.text;
        XAuswahl2 := Auswahl2.text;
        XAuswahl3 := Auswahl3.text;
        XAuswahl4 := Auswahl4.text;
        XAuswahl5 := Auswahl5.text;

        SQLString := 'LOAD DATA LOCAL INFILE '''+Xpfad+''' ';
        SQLString := SQLString + ' REPLACE';
        SQLString := SQLString + ' INTO TABLE STAMM_PLZ_IMPORT';
        SQLString := SQLString + ' CHARACTER SET utf8';
        SQLString := SQLString + ' FIELDS';
        SQLString := SQLString + ' TERMINATED BY '';'' ';
        SQLString := SQLString + ' OPTIONALLY ENCLOSED BY ''"'' ';
        SQLString := SQLString + 'IGNORE 1 LINES';
        SQLString := SQLString + ' ('+XAuswahl1+','+XAuswahl2+','+XAuswahl3+','+XAuswahl4+','+XAuswahl5+')';

        Frm_A_MAIN_HAUPTMENU.SQLQuery1.Close;
        Frm_A_MAIN_HAUPTMENU.SQLQuery1.SQL.Clear;
        Frm_A_MAIN_HAUPTMENU.SQLQuery1.SQL.Add(SQLString);
        Frm_A_MAIN_HAUPTMENU.SQLQuery1.ExecSQL;
        Frm_A_MAIN_HAUPTMENU.SQLTransaction1.Commit;
        except
           on e: Exception do begin
              MessageDLG('Fehler!. Die Datei ist leider nicht importfähig?'+#13+e.message,mtError,[mbOk],0);

              exit;
           end;
        end;
     finally

        Frm_A_MAIN_HAUPTMENU.SQLQuery1.Close;
     end;  

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: SQL Datenimport Fehler

Beitrag von theo »

Das liegt möglicherweise gar nicht an Lazarus, bzw. MySQL spuckt gar keinen Fehler?

https://dev.mysql.com/doc/refman/8.0/en/load-data.html
With LOAD DATA LOCAL, data-interpretation and duplicate-key errors become warnings and the operation continues because the server has no way to stop transmission of the file in the middle of the operation. For duplicate-key errors, this is the same as if IGNORE is specified. IGNORE is explained further later in this section.

Bernie110
Beiträge: 120
Registriert: Mo 10. Feb 2020, 17:43

Re: SQL Datenimport Fehler

Beitrag von Bernie110 »

Hi Theo danke für diesen Hinweis.
Jetzt gerade ist etwas lustiges passiert.
Ich habe das Programm nicht über Lazarus gestartet und es mit dem selben Code probiert.
Da funktioniert es genau wie es soll.
Starte ich aber das Programm über Lazarus .... dann funktioniert es nicht.
Darauf muss man erstmal kommen :roll:

Jetzt stellt sich nur die Frage.. was soll ich nun tun ? Wird der Fehler dann zukünftig erkannt ? :?:
Lg Bernie

Antworten