Seite 2 von 2

Re: SQL Anfänger

Verfasst: 25.04.2020 18:04
von Kiffi
MenschMarkus hat geschrieben:Die implizite Schreibweise die ich hier verwendet habe hat halt den Vorteil, dass ich weniger Code programmieren muss.
jeder hat seinen eigenen Stil, kein Thema.

Da HemSA hier allerdings anscheinend Probleme mit Stringverknüpfungen hat, wollte ich lediglich eine alternative Schreibweise zeigen.

Grüße ... Peter

Re: SQL Anfänger

Verfasst: 25.04.2020 20:25
von HemSA
Hallo Ihr Beiden,
Danke für alles.

Ich hatte dieses Problem.

Wenn meine text.txt Datei so aussieht

Code: Alles auswählen

25	Hallo	3.141
18	Welt	2.718
wurden beide Zeilen eingelesen (benütze den DB-Browser für SQLite).

Wenn ich aber die text.txt Datei so geändert habe

Code: Alles auswählen

25	Hallo	m3.141
18	Welt	2.718
wurde nur die untere Zeile eingelesen.

Das habe ich nicht nachvolziehen können, hat mich den ganzen Tag gekostet.

Mit der Version von Kiffi hat es geklappt

Code: Alles auswählen

Wert1.s = StringField(String, 1, #TAB$)
Wert2.s = StringField(String, 2, #TAB$)
Wert3.s = StringField(String, 3, #TAB$)

Query = "INSERT INTO `mytable` (wert1, wert2, wert3) VALUES ('" + Wert1 + "', '" + Wert2 + "', '" + Wert3 + "')"
Jetzt mache ich mich mal an die Originaldatei ran die eingelesen werden soll.

Vielen Dank nochmal.

Re: SQL Anfänger

Verfasst: 27.04.2020 20:58
von MenschMarkus

Code: Alles auswählen

Code:
25   Hallo   m3.141
18   Welt   2.718
wurde nur die untere Zeile eingelesen.
Das habe ich nicht nachvolziehen können, hat mich den ganzen Tag gekostet.
Ich hatte das 3. Feld als Float deklariert. "m3.141" Ist keine Zahl mehr, sondern ein String !! In ein Float Feld kann kein String eingelesen werden !!

SQLite führt fehlerhafte Queries nicht aus, daher wurde die Zeile nicht eingelesen.

In Kiffis Beispiel sind alles Character deklarierte Felder, da spielt es keine Rolle ob ein "m" vore einer Zahl steht.

Re: SQL Anfänger

Verfasst: 28.04.2020 19:20
von HemSA
Hallo MenschMarkus,

ich hatte auch alle Felder als String deklariert.

Habe deine Zeile von

Code: Alles auswählen

Query = "CREATE TABLE `mytable` (wert1 INT,wert2 CHAR,wert3 float)"
in

Code: Alles auswählen

Query = "CREATE TABLE `mytable` (wert1 CHAR,wert2 CHAR,wert3 CHAR)" 
geändert. Hat aber trotzdem nicht geklappt.

Denke sonst hätte es auch mit dem Code von Kiffi nicht geklappt, wenn ich es so gelassen hätte wie bei dir.

Danke nochmal.