AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi AccessDB in csv-Datein umwandeln

AccessDB in csv-Datein umwandeln

Ein Thema von blema · begonnen am 5. Feb 2015 · letzter Beitrag vom 8. Feb 2015
Antwort Antwort
Seite 4 von 6   « Erste     234 56   
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#31

AW: AccessDB in csv-Datein umwandeln

  Alt 6. Feb 2015, 17:23
Hast Du auch schon die von Jumpy in #27 verlinkte Lösung mit der Schema.ini getestet?
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
pelzig
(Gast)

n/a Beiträge
 
#32

AW: AccessDB in csv-Datein umwandeln

  Alt 6. Feb 2015, 17:48
Geht's immer noch um die Fehlermeldung von #21?

K.A. ob's hilft, aber nimm doch das Pipingsymbol als Trennzeichen und lass den Umlaut im Dateinamen weg. Hast Du im Hauptordner von C:\ Schreibrechte?

Vorschlag (kein Access und von SQL nul Ahnung):

Code:
SELECT * INTO [Text;FMT=Delimited('|');HDR=Yes;DATABASE=C:\Test\DBLoesungen;].csvCategories.csv] FROM Categories;
MfG
  Mit Zitat antworten Zitat
blema

Registriert seit: 5. Feb 2015
48 Beiträge
 
#33

AW: AccessDB in csv-Datein umwandeln

  Alt 6. Feb 2015, 19:22
Hast Du auch schon die von Jumpy in #27 verlinkte Lösung mit der Schema.ini getestet?
ja, habe ich... ohne Erfolg
  Mit Zitat antworten Zitat
blema

Registriert seit: 5. Feb 2015
48 Beiträge
 
#34

AW: AccessDB in csv-Datein umwandeln

  Alt 6. Feb 2015, 19:25
Geht's immer noch um die Fehlermeldung von #21?

K.A. ob's hilft, aber nimm doch das Pipingsymbol als Trennzeichen und lass den Umlaut im Dateinamen weg. Hast Du im Hauptordner von C:\ Schreibrechte?

Vorschlag (kein Access und von SQL nul Ahnung):

ja, es geht immer noch um die Fehlermeldung von#21
Mit dem Pipe-Zeichen habe ich auch versucht, no solution ...

Code:
SELECT * INTO [Text;FMT=Delimited('|');HDR=Yes;DATABASE=C:\DBLoesungen;].csvCategories.csv] FROM Categories;
Hast Du im Hauptordner von C:\ Schreibrechte?
Ja habe ich. Das ist mein privater Rechner

Geändert von blema ( 6. Feb 2015 um 19:33 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#35

AW: AccessDB in csv-Datein umwandeln

  Alt 6. Feb 2015, 19:48
Hauahauaha ... hier sind ja einige Anfänger unterwegens
(Nein, nicht schlagen ... ich bin ja schon lieb )

So dann lösen wir mal das Rätsel:

Dieses ominöse
Code:
FMT=...
wird beim Export nicht ausgewertet. Da kann man auch hinschreiben
Code:
FMT=Oma ihr klein Häuschen;
und man bekommt das gleiche Resultat.

Hintergrund:

In der Registry
Code:
HKLM/SOFTWARE/Microsoft/Jet/4.0/Engines/Text
gibt es einen Eintrag Format und der steht default auf CSVDelimited, was gleichbedeutend mit dem , ist. Und genau das beisst sich mit der (in Deutschland gültigen) Regions-Einstellung für das Dezimaltrennzeichen , .

Man kann jetzt die Registry ändern (doof), die Regionseinstellungen ändern (noch doofer ) oder man schreibt in das Export-Verzeichnis eine schema.ini (wurde hier auch schon genannt).

Hier wird also für jede Exportdatei eine Sektion angelegt die folgende Einträge zwingend enthalten muss (beispielhaft für die Categories.csv)
Code:
[Categories.csv]
Format=Delimited(;)
oder, wenn es eine Komma-getrennte Datei werden soll
Code:
[Categories.csv]
Format=CSVDelimited
DecimalSymbol=.
CurrencyDecimalSymbol=.
Alle weiteren Möglichkeiten der Konfiguration finden sich im oben angegebenen Link.

Das dazu passende Export-Statement lautet also
SQL-Code:
SELECT *
INTO [Text;HDR=Yes;DATABASE=C:\DBLoesungen;].[Categories.csv]
FROM Categories;
So dann noch ein fröhliches Exportieren
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo ( 6. Feb 2015 um 19:52 Uhr)
  Mit Zitat antworten Zitat
pelzig
(Gast)

n/a Beiträge
 
#36

AW: AccessDB in csv-Datein umwandeln

  Alt 6. Feb 2015, 20:08
Geht's immer noch um die Fehlermeldung von #21?

K.A. ob's hilft, aber nimm doch das Pipingsymbol als Trennzeichen und lass den Umlaut im Dateinamen weg. Hast Du im Hauptordner von C:\ Schreibrechte?

Vorschlag (kein Access und von SQL nul Ahnung):

ja, es geht immer noch um die Fehlermeldung von#21
Mit dem Pipe-Zeichen habe ich auch versucht, no solution ...

Code:
SELECT * INTO [Text;FMT=Delimited('|');HDR=Yes;DATABASE=C:\DBLoesungen;].csvCategories.csv] FROM Categories;
Hast Du im Hauptordner von C:\ Schreibrechte?
Ja habe ich. Das ist mein privater Rechner
Mein Rechner ist auch mein "privater" Rechner, aber wenn ich nach "C:\" schreiben will, brauche ich Admin-Rechte.

Öffne doch mal auf Deiner Kiste den Ordner "C:\DBLoesungen" oder "C:\DBLösungen" oder wohinauchimmer Du zu exportieren glaubst.

Gibt's die Ordner überhaupt, und falls JA: Was ist da denn drin?
*.csv-Dateien kannst Du mit notepad öffnen.

Als jemand, der von SQL null Ahnung (und auch kein Access) hat:
- Wo wird im SQL-Befehl die Datenquelle eingetragen?
- Wo wird im SQL-Befehl das Exportziel (dessen Dateiname) eingetragen?

Irgendwie scheinen mir in den vielen obigen SQL-Befehlen manche Semikola oder Leerzeichen "falsch" - rein gefühlsmäßig.

MfG
  Mit Zitat antworten Zitat
pelzig
(Gast)

n/a Beiträge
 
#37

AW: AccessDB in csv-Datein umwandeln

  Alt 6. Feb 2015, 20:09
Hauahauaha ... hier sind ja einige Anfänger unterwegens
(Nein, nicht schlagen ... ich bin ja schon lieb )

So dann lösen wir mal das Rätsel:

Dieses ominöse
Code:
FMT=...
wird beim Export nicht ausgewertet. Da kann man auch hinschreiben
Code:
FMT=Oma ihr klein Häuschen;
und man bekommt das gleiche Resultat.

Hintergrund:

In der Registry
Code:
HKLM/SOFTWARE/Microsoft/Jet/4.0/Engines/Text
gibt es einen Eintrag Format und der steht default auf CSVDelimited, was gleichbedeutend mit dem , ist. Und genau das beisst sich mit der (in Deutschland gültigen) Regions-Einstellung für das Dezimaltrennzeichen , .

Man kann jetzt die Registry ändern (doof), die Regionseinstellungen ändern (noch doofer ) oder man schreibt in das Export-Verzeichnis eine schema.ini (wurde hier auch schon genannt).

Hier wird also für jede Exportdatei eine Sektion angelegt die folgende Einträge zwingend enthalten muss (beispielhaft für die Categories.csv)
Code:
[Categories.csv]
Format=Delimited(;)
oder, wenn es eine Komma-getrennte Datei werden soll
Code:
[Categories.csv]
Format=CSVDelimited
DecimalSymbol=.
CurrencyDecimalSymbol=.
Alle weiteren Möglichkeiten der Konfiguration finden sich im oben angegebenen Link.

Das dazu passende Export-Statement lautet also
SQL-Code:
SELECT *
INTO [Text;HDR=Yes;DATABASE=C:\DBLoesungen;].[Categories.csv]
FROM Categories;
So dann noch ein fröhliches Exportieren
Push
  Mit Zitat antworten Zitat
blema

Registriert seit: 5. Feb 2015
48 Beiträge
 
#38

AW: AccessDB in csv-Datein umwandeln

  Alt 7. Feb 2015, 00:22
vielen Dank an alle...
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#39

AW: AccessDB in csv-Datein umwandeln

  Alt 7. Feb 2015, 00:54
vielen Dank an alle...
Was war die Lösung?

Ich schätze einmal die Schema.ini!
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#40

AW: AccessDB in csv-Datein umwandeln

  Alt 7. Feb 2015, 10:56
Die Schema.ini ist es.
Wenn du allerdings Tante G fragst, wird sie meist für dem Import genutzt. Heb Dir Sir Rufos Erläuterungen gut auf, die sind besser als das meiste was Du finden kannst.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:03 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