![]() |
AW: Dynamische zuweisung von Spalten
Hi Chris,
ich entnehme mal dem ersten Post, dass die CSV jeweils einen Header hat, in welchem die Spalten stehen? Die Reihenfolge ist in der Regel fest? Es gibt zu keinem Zeitpunkt eine wirklich mustergültige Datei, die das Programm intern kennt? Man könnte hier natürlich das Ganze etwas auf die Spitze treiben und für jede Spalte das Mapping speichern in einer Zuordnungstabelle. Somit könntest du später einfach schauen: Wurde irgendwann die Spalte "Zuname" schon mal zugeordnet? CSV-Datei
Code:
Spaltenmapping
Vorname|Zuname|Anrede
Code:
Neue CSV-Datei nach Monaten
Vorname=firstname
Zuname=surname Anrede=title
Code:
Ergibt dann ein neues Mapping
Zuname|Anrede|Rufname
Code:
Für Rufname gibt es noch kein Mapping, muss zugeordnet werden und ist somit beim nächsten Mal bekannt..
Zuname=surname
Anrede=title Das ist so die grobe Idee, die ich im Kopf hab. Hierbei spielt die Struktur der CSV keine Rolle, einzig das Mapping ist entscheidend und du musst nur die Spalten anzeigen/zuordnen lassen, die unklar sind. Edit: Grad gesehen, dass Dejan-vu so etwas Ähnliches vorgeschlagen hat. Need some coffee Anmerkung Ich würde das Hinzufügen/Entfernen der Spalten in der Datenbank nicht umsetzen. Warum? Weil das Programm damit dann auch umgehen müsste, sprich sich der Dynamik der Datenbank anpassen. Bei jedem Import könnte man theoretisch Felder entfernen lassen, die für die Funktionsweise der Anwendung relevant sind. |
AW: Dynamische zuweisung von Spalten
Zitat:
export_partial
Code:
Export (Neu)
alter = Alter
nam1 = Vorname summe = Kontostand name2 = Nachname ort = Wohnort
Code:
Neue Spalten mit gleicher Zuweisung. Was wenn "nach_name" nicht zugewiesen wird? Was wenn es später zugewiesen wird?
alter = Alter
vor_name = Vorname Anrede = Anrede nach_name = Nachname Beruf = Beruf Wenn Anrede nicht angezeigt werden soll, aber der Benutzer sich entscheidet das erst später anzeigen zu lassen? Es dürfen keine Daten verloren gehen. Zitat:
Ich bin nach wie vor offen für Vorschläge:
|
AW: Dynamische zuweisung von Spalten
Nunja, importieren tust du alles.
In deinen Beispielen ist links die Überschrift aus der CSV und rechts die Spalte in der Datenbank? Beim Import gibt es kein "später". Du prüfst vor dem Import ab, ob es für die CSV-Spalte eine Zuordnung zur DB gibt. Ja: Super, nimm die Nein: Dann entweder a) vorhanden Spalte entspricht dieser oder b) neue Spalte hinzufügen (evlt. den User fragen, welcher Inhalt dahinter steht [numerisch, Zeichenkette]). Auf diese Weise bekommst du immer alle Daten mit, allerdings kann es natürlich sein, dass der Benutzer sagt: neue Spalte anlegen, obwohl es für diese Information bereits eine Spalte gibt.. Es wird keinen Weg geben, der zu 100 % sicher und sauber ist... |
AW: Dynamische zuweisung von Spalten
Liste der Anhänge anzeigen (Anzahl: 1)
Wer Interesse an der Anzeige hat:
Seite ![]() Zitat:
|
AW: Dynamische zuweisung von Spalten
Liste der Anhänge anzeigen (Anzahl: 1)
Ja, genau, im Prinzip kann man das so aufbauen.
Vielleicht würde ich es einfach kürzer machen und wie eine Art Wizard aufbauen. Du zeigst pro Schritt immer nur eine CSV-Spalte an, die konfiguriert werden muss, sprich
Was an der Sache blöd ist: Inkonsistenz der Daten, wie ich aus deinem Mockup erkenne, aber das wird schon so seine Richtigkeit haben. |
AW: Dynamische zuweisung von Spalten
Ich hab jetzt nicht alles durchgelesen - aber der MSSqlServer (auch die kostenlose Express Version) eigene (eigentlich eher das Managementstudio) Import kann das schon. Erzeugt die Felder nach Namen wenn nicht vorhanden, wahlweise können Spaltennamen in Excel auf Spaltennamen in der Tabelle gemappt werden. Daten können angehängt oder vorher alte gelöscht werden usw. Wenn die Tabelle (Excel Sheetname) nicht existiert wird sogar die Tabelle angelegt.
|
AW: Dynamische zuweisung von Spalten
Zitat:
Joa, wobei Chris meinte: SQLite oder MySQL ;-) |
AW: Dynamische zuweisung von Spalten
Ja. Nur kann man beim Import-Wizard Quelle *und* Ziel frei wählen. D.h. wäre es eine Anforderung vom Vorgesetzten, wäre man ziemlich schnell fertig. Hier soll das aber ein Hobbyprojekt -idealerweise mit Lerneffekt- werden, also werden wir das hier mal hübsch alles selbst spezifizifizieren.
|
AW: Dynamische zuweisung von Spalten
@-=ZGD=-: Der Wizard sieht gut aus. Diese Schritt für Schritt Idee gefällt mir.
Zitat:
Zitat:
Zitat:
|
AW: Dynamische zuweisung von Spalten
MSSQL Express kosten zwar nichts, aber Ich glaube nicht, das Du das in einem gewerblich vertrieben Projekt als kostenpflichtigen Punkt mit verkaufen kannst. Aber die üblichen Tricks greifen da immer, also z.B. selber installieren lassen, oder im Rahmen der Gesamtinstallation mit installieren und darauf hinweisen, das dieser Punkt vom MS-SSMS Express erschlagen wird. Genaueres wirst Du in den Lizenzbestimmungen von Microsoft lesen.
In jedem Fall hast Du da alles, was Du brauchst, sogar Skripting, um dein Mapping noch besser zu machen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:39 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