AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Tabelle mit sql erstellen

Ein Thema von fl63 · begonnen am 8. Jul 2011 · letzter Beitrag vom 15. Jul 2011
Antwort Antwort
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.460 Beiträge
 
Delphi 12 Athens
 
#1

AW: Tabelle mit sql erstellen

  Alt 8. Jul 2011, 15:35
Hallo...

das Prinzip ist im weitesten Sinne ähnlich.

1. Datenbank erstellen
2. Tabelle erstellen
3. Felder erstellen, Indexe anlegen
4. CSV einlesen (Stringlist)
5. Schleife über alle Einträge aus Pkt. 4
6. innerhalb der Schleife die Daten in die Datenbank per INSERT Statement (ggf. die Werte der Zeile aufsplitten und einzeln schreiben)

Hinweise:
- Pkt1-3 kann man auch vorher mit einem Tool wie IBExpert erledigen. Vorraussetzung, man weiß welche Felder die CSV Datei enthällt.

Fragen:
- Du sprichst von CSV lädst aber in deinem Beispiel eine TXT und liest nur die komplette Zeile ein. Eine Zeile eines CSV besteht aber in der Regel aus mehreren Werten.
- willst du mit jedem Import eine neue Tabelle / Datenbank erstellen ?
- sind die CSV vom Aufbau immer gleich ?



PS: eine dbf ist keine Datenbank sondern nur eine Tabelle im "File Format". Hier hast du schon den Unterschied zu Firebird. Dort existieren keine Tabellen ohne Datenbank. Diese Datenbank ist ein File und enthällt mehrere Tabellen.

Geändert von haentschman ( 8. Jul 2011 um 15:39 Uhr)
  Mit Zitat antworten Zitat
fl63

Registriert seit: 30. Mär 2008
124 Beiträge
 
#2

AW: Tabelle mit sql erstellen

  Alt 8. Jul 2011, 16:04
Hallo...


Fragen:
- Du sprichst von CSV lädst aber in deinem Beispiel eine TXT und liest nur die komplette Zeile ein. Eine Zeile eines CSV besteht aber in der Regel aus mehreren Werten.
- willst du mit jedem Import eine neue Tabelle / Datenbank erstellen ?
- sind die CSV vom Aufbau immer gleich ?
- Die txt Datei ist in diesem Fall ein Ergebnis aus zwei Bearbeitungsschritten:

a) zweispaltige Open Office Datei als csv Speichern

1.Schritt: zweite Spalte innerhalb des Delphi Programms löschen,

2.Schritt: doppelte Begriffe entfernen.

b) Datenbanktabelle (dbf) mit obigen Quelltext erstellen.


- Ja, es soll jedesmal die komplette Tabelle neu erstellt werden.

- im nachhinein soll der Importvorgang auf 2 und mehr Spalten (csv) erweitert werden.

fl63
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.460 Beiträge
 
Delphi 12 Athens
 
#3

AW: Tabelle mit sql erstellen

  Alt 8. Jul 2011, 16:08
Zitat:
Ja, es soll jedesmal die komplette Tabelle neu erstellt werden.
Kannst du den Sinn dahinter mal begründen ?
Eine Datenbank ist eine "Sammlung" von Daten aus der man sich das suchen lassen kann was benötigt wird. (macht die Ddatenbank) Wenn du jedesmal eine neue Tabelle / Datenbank erzeugst mußt du selbst nach den Daten suchen (anhand des Datenbank Namens z.B) Was ist wohl übersichtlicher und effektiver ?
  Mit Zitat antworten Zitat
fl63

Registriert seit: 30. Mär 2008
124 Beiträge
 
#4

AW: Tabelle mit sql erstellen

  Alt 8. Jul 2011, 16:21
Zitat:
Ja, es soll jedesmal die komplette Tabelle neu erstellt werden.
Kannst du den Sinn dahinter mal begründen ?
Neue Datensätze (aus Open Office), werden bereits zwischen die alten Datensätze geschrieben.
zB. werden zwischen den 200sten und dem 201sten Datensatz zwei Neue eingefügt,was bei 1000 und mehr Datensätzen nicht zu erkennen ist.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.880 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Tabelle mit sql erstellen

  Alt 8. Jul 2011, 16:25
Auch nicht anhand des Inhalts?
Markus Kinzler
  Mit Zitat antworten Zitat
fl63

Registriert seit: 30. Mär 2008
124 Beiträge
 
#6

AW: Tabelle mit sql erstellen

  Alt 8. Jul 2011, 16:32
Auch nicht anhand des Inhalts?
Wie ist das bitte gemeint. Ich kann nicht feststellen an welcher Stelle der Tabelle sich etwas verändert hat. Ich sehe nur die zunehmende Gesamtzahl der Datensätze.
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#7

AW: Tabelle mit sql erstellen

  Alt 8. Jul 2011, 16:35
Neue Datensätze (aus Open Office), werden bereits zwischen die alten Datensätze geschrieben.
zB. werden zwischen den 200sten und dem 201sten Datensatz zwei Neue eingefügt,was bei 1000 und mehr Datensätzen nicht zu erkennen ist.
Dann würde ich das System nochmal überdenken oder einen eindeutigen Index einführen. Und einer DB ist das auch ganz egal, wo der Datensatz steht, die Tabelle kann nämlich vorsortiert ausgegeben werden. Spätestens wenn du einen Datensatz löschst und das DB-System den Speicher nicht sofort freigibt und die Tabelle optimiert, dann kann ein neuer Datensatz (auch mit neuem Index) irgendwo mittendrin erstellt werden.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
fl63

Registriert seit: 30. Mär 2008
124 Beiträge
 
#8

AW: Tabelle mit sql erstellen

  Alt 8. Jul 2011, 16:50
@ rollstuhlfahrer

Um Sinngemäße Überschneidungen der Datensätze zu vermeiden, wird bereits in Open Office vorsortiert.
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#9

AW: Tabelle mit sql erstellen

  Alt 8. Jul 2011, 19:58
Gut, andere Frage: Warum löschst du gleich die ganze Tabelle? - Reicht es dir nicht, diese zu leeren?

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:13 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-2025 by Thomas Breitkreuz