AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Wie kann ich das am besten in eine DB Importieren?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie kann ich das am besten in eine DB Importieren?

Ein Thema von BBoy · begonnen am 25. Mai 2011 · letzter Beitrag vom 25. Mai 2011
Antwort Antwort
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#1

AW: Wie kann ich das am besten in eine DB Importieren?

  Alt 25. Mai 2011, 11:53
Ich importiere eine XML Datei in eine Datenbank.
...
Dachte mir das ich es mit einem Memofeld mache und jeden Eintrag in eine Memozeile schreibe. Allerdings können die Einträge manchmal sehr lang werden und memo bricht automatisch nach 1024 Zeichen die Zeile. So kann ich dann nicht mehr mit memo.lines auf einzelne Einträge zugreifen.
Soll ich nun 50 Datenbankfelder (Memos) anlegen auch wenn meist viel weniger benötigt werden? Oder gibt es elegantere Lösungen?
Beim Importieren habe ich das mit einem Dynamischen Array gelöst, aber sowas gibt es ja bei einer DB nicht.
Wie? Was? Memo?
Wenn du XML ausliest, dann nimmst du dafür eine XML-Bibliothek. Die kann das nämlich anhand des XML STandards einlesen, ohne darauf vertrauen zu müssen, dass da auch ja Zeilenumbrüche drin sind. Du kannst morgen ein XML ohne Zeilenumbrüche bekommen, und diese Datei wäre immer noch korrekt, aber dein Code nicht!
Es gibt hier in der DP eine Abteilung für Tutorials, da findest du auch Tutorials zum Umgang mit XML.
Bevor du auch nur irgendwas anderes anfängst[1], sollest du dich da schlau gemacht haben.
Und danach überlege bitte, ob dein Programm wirklich eine evolutionäre Sackgasse darstellen soll. Denn die BDE ist schon lange nicht mehr unterstützt und läuft auf keinem 64Bit-System ohne manuelle Hacks.

[1] Ernsthaft, du MUSST dich damit auskennen, bevor du auch nur eine weitere Zeile in deinem Programm schreibst!
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
BBoy

Registriert seit: 17. Jan 2007
418 Beiträge
 
Delphi 10 Seattle Professional
 
#2

AW: Wie kann ich das am besten in eine DB Importieren?

  Alt 25. Mai 2011, 12:09
TurboDB und ähnliche Datenbanken sind ein guter Ersatz für die BDE und immer noch weit verbreitet. Für mich als Heimanwender absolut ausreichend.

Der Datensatz besteht aus viel mehr als nur diesem kleinen Teil der oben gezeigt wird. Hier geht es darum wie ich diesen oben gezeigten Teil in diesen Datensatz einbringe.

Die XML Datei habe ich bereits erfolgreich importiert mit einer XML Komponente, dass ist kein Problem. Die meisten Daten aus dieser XML Datei kann ich auch einfach in Datenbankfelder (als String deklariert) eintragen. Also auch kein Problem.
Es sind also schon alle daten importert, außer diese:>
Probleme bereiten mir nur die Einträge aus der XML Datei (siehe beispiel oben) die mehrfach vorkommen. So hat das Beispiel oben 3 x <groundspeak:log Einträge mit Parametern wie ID, Date, Type usw. Und jeder dieser Einträge muss in meine DB eingetragen werden.
um einen Eintrag in die DB aufzunehmen könnte ich einfach die entsprechenden Datenbankfelder anlegen und fertig. Aber es sind immer verscheiden viele dieser Einträge (3, 30 oder noch mehr) und eben das bereitet mir probleme. Eine primitive Lösung wäre einfach 50 Datenbankfelder (nur so als vorsorge) für diese Einträge anzulegen. Aber denke nicht das es das optimale ist..... Sorry ich weis net wie ich das erklären soll.....

Jeder andere eintrag ist einfach zu übernehmen: Name=Meyer, Vorname=Peter, Ort=Frankurt usw. usw. Aber das oben möchte ich so übernehmen:
Log ID 1234434, date, type, finder, text.
Also als einen eintrag aber mit Parametern. Deswegen meine Idee mit dem DBMemo, da könnte ich jeden eintrag (Log ID 1234434, date, type, finder, text.) in eine Memo Zeile schreiben und könnte beim auslesen mit memo.lines auf einzelne einträge zugreifen. Aber das geht nicht da DBMemo nach 1024 zeichen einen zeilenumbruch macht.
Ich möchte sozusagen eine Liste in einem einzelnen Datenbankfeld speichern.

Geändert von BBoy (25. Mai 2011 um 12:16 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#3

AW: Wie kann ich das am besten in eine DB Importieren?

  Alt 25. Mai 2011, 12:13
Nochmal: überleg Dir doch erst einmal eine sinnvolle DB-Struktur. Wie viele Tabellen hast Du denn bisher?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#4

AW: Wie kann ich das am besten in eine DB Importieren?

  Alt 25. Mai 2011, 12:20
Wenn zu einem Datensatz eine variable gleichartige Datenmenge gehört, kann man das prima in einer extra Tabelle sammeln.

Beispiel (mal ganz einfach und reduziert):
Code:
TabelleWohnung
  Id : Integer;
  Strasse : Text;
  Ort : Text;

TabelleBewohner
  WohnungsId : Integer
  Name : Text;
Du kannst nun jeder Wohnung eine beliebige Anzahl Bewohner zuordnen, die Du über WohnungsId filtern/zuweisen kannst.

€: Ok, 6 Minuten im Tab geschlummert, Lemmys Hinweis geht in die gleiche Richtung.
Btw. wenn Beiträge in Tab's "schlafen" kommt auch keine "RedBox"... da geht wohl was verloren.

Geändert von Satty67 (25. Mai 2011 um 12:22 Uhr)
  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 20:33 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