Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   CSV-Datei in SQlite3 Datenbank (Android) importieren (https://www.delphipraxis.net/211054-csv-datei-sqlite3-datenbank-android-importieren.html)

jmich 21. Jul 2022 12:16

Delphi-Version: 11 Alexandria

CSV-Datei in SQlite3 Datenbank (Android) importieren
 
Wie kann man eine CSV-Datei in eine SQL Datenbank kopieren bzw. importieren?

CSV zum Beispiel:
"NAME","CAPITAL","CONTINENT","AREA","POPULATIO N"
"Argentina","Buenos Aires","South America",2777815.00,32300003.00
"Bolivia","La Paz","South America",1098575.00,7300000.00

Wie könnte der Code dazu aussehen?

Vielen Dank im Voraus

Jmich

DeddyH 21. Jul 2022 13:07

AW: CSV-Datei in SQlite3 Datenbank (Android) importieren
 
Hilft das hier für den Anfang? https://www.sqlitetutorial.net/sqlite-import-csv/

jmich 21. Jul 2022 18:47

AW: CSV-Datei in SQlite3 Datenbank (Android) importieren
 
So richtig verstehe ich das nicht.
Wie kann man sowas im Delphi-Code realisieren, da die
CSV in eine App geladen werden soll, die dann
das im Programm per Button führen soll.


Habe da noch eine Frage:
Und zwar ein "Permission denied" Problem mit Android 11 und 12.
Zurgriff auf den GetSharedDocumentsPath.
Auf mein Gerät mit Android 8 kein Problem, aber auf dem Gerät mit Android 12
die o.g. Fehlermeldung.
Ich weiss auch nicht wie man das Problem in Delphi 11 löst, komme auch da nicht weiter.
In Android bin ich nicht fit.
Wollte eben mal so eine App mit Delphi 11 Mobile erstellen.

Danke im Voraus
Jmich

Uwe Raabe 21. Jul 2022 19:51

AW: CSV-Datei in SQlite3 Datenbank (Android) importieren
 
Vielleicht ist TFDBatchMove hier eine Option.

jmich 21. Jul 2022 20:09

AW: CSV-Datei in SQlite3 Datenbank (Android) importieren
 
Ja das ist eine Option um Textdaten zu importieren.

Danke

haentschman 22. Jul 2022 06:27

AW: CSV-Datei in SQlite3 Datenbank (Android) importieren
 
Moin...8-)
Zitat:

Wie könnte der Code dazu aussehen?
Per Hand klassisch:
1. CSV in TStringList einlesen
2. iterieren durch die Liste
3. jede Zeile per SQL in die Datenbank per INSERT einlesen (nur die Daten die man benötigt :zwinker:)

...fertsch. :thumb:

Die Preisfrage ist...einmalig (DeddyH) oder permanent in der Anwendung (ich)?

Rollo62 22. Jul 2022 07:24

AW: CSV-Datei in SQlite3 Datenbank (Android) importieren
 
Oder ein OnlineTool wie CsvToSql benutzen.
Damit habe ich gerade erst gestern ein Csv in eine Tabelle umgebaut und funktioniert erstaunlich gut.

Man sollte natürlich keine persönlichen Daten hochladen.

himitsu 22. Jul 2022 13:28

AW: CSV-Datei in SQlite3 Datenbank (Android) importieren
 
Zitat:

Zitat von jmich (Beitrag 1509025)
Ja das ist eine Option um Textdaten zu importieren.

Ja leider, aber dieses "Problem" haben leider fast alle DBMS.

CSV-Import/Export und Ähnliches nur über die Konsole, aber nicht über einen BLOB/TEXT via SQL. :cry:

jmich 22. Jul 2022 15:57

AW: CSV-Datei in SQlite3 Datenbank (Android) importieren
 
Die Methode von Haentschman sagt mir zu.
Leider fehlt ein kleiner Bespielcode, damit
man es besser verstehen kann bzw. wie die
Lösung im Einzeln aussieht.
Jedenfalls werde ich den Tip versuchen
umzusetzen.

Danke an haentschman

TurboMagic 22. Jul 2022 19:36

AW: CSV-Datei in SQlite3 Datenbank (Android) importieren
 
Zitat:

Zitat von jmich (Beitrag 1509022)
So richtig verstehe ich das nicht.
Wie kann man sowas im Delphi-Code realisieren, da die
CSV in eine App geladen werden soll, die dann
das im Programm per Button führen soll.


Habe da noch eine Frage:
Und zwar ein "Permission denied" Problem mit Android 11 und 12.
Zurgriff auf den GetSharedDocumentsPath.
Auf mein Gerät mit Android 8 kein Problem, aber auf dem Gerät mit Android 12
die o.g. Fehlermeldung.
Ich weiss auch nicht wie man das Problem in Delphi 11 löst, komme auch da nicht weiter.
In Android bin ich nicht fit.
Wollte eben mal so eine App mit Delphi 11 Mobile erstellen.

Danke im Voraus
Jmich

Auf diese shared Filder kann man ab Android 11 nur noch über irgendwelche FileProvider oder so zugegriffen werden und über einen System Datei Auswahldialog. Der kann aber nur begrenzt auf Dateitypen eingeschränkt werden. :(


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz