- Beiträge: 23
Generisches SQL-Tabellen-Mapping auf der Write-Seite
- Jan Brandenburger
- Autor
- Offline
- Benutzer
Weniger
Mehr
1 Jahr 1 Woche her #4983
von Jan Brandenburger
Generisches SQL-Tabellen-Mapping auf der Write-Seite wurde erstellt von Jan Brandenburger
Lieber Herr Stark,
ich habe eine Anforderung eines Kollegen und möchte auf diesem Weg anfragen, wie und ob es gelöst werden könnte.
Er schrieb mir:Ich bekomme 6 csv-Dateien mit den gleichen Spalten. Jede Datei enthält Werte für einen anderen Aufgabenbereich.Jede Datei soll in eine andere Tabelle in der gleichen SQL Server Datenbank. Auch der Aufbau der Tabellen in der Datenbank ist gleich. Die Read-Seite kann man ja schon beim Batch einstellen, aber die Tabellen auf der Write-Seite lassen sich irgendwie nicht steuern.
Haben Sie eine Idee?
Viele Grüße
Jan Brandenburger
ich habe eine Anforderung eines Kollegen und möchte auf diesem Weg anfragen, wie und ob es gelöst werden könnte.
Er schrieb mir:Ich bekomme 6 csv-Dateien mit den gleichen Spalten. Jede Datei enthält Werte für einen anderen Aufgabenbereich.Jede Datei soll in eine andere Tabelle in der gleichen SQL Server Datenbank. Auch der Aufbau der Tabellen in der Datenbank ist gleich. Die Read-Seite kann man ja schon beim Batch einstellen, aber die Tabellen auf der Write-Seite lassen sich irgendwie nicht steuern.
Haben Sie eine Idee?
Viele Grüße
Jan Brandenburger
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
1 Jahr 1 Woche her #4984
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Generisches SQL-Tabellen-Mapping auf der Write-Seite
Hallo Herr Brandenburger,
mit dem .NET Script Heater und folgenden C# Skript kann das gelöst werden.
Wichtig: Das Skript muss für „Ausführen bei“ auf "Start" gestellt werden, so wird es vor dem Ausführen des jeweiligen Verarbeitungsschrittes ausgeführt. Das Skript holt sich den aktuellen Dateinamen der READ Seite und setzt die Tabelle anhand des Namens. Da Sie weiter keine Angaben gemacht haben wie die Tabelle identifiziert werden kann habe ich den ganzen Dateinamen ohne Dateiendung verwendet, hier müssen Sie ggf. noch Anpassungen vornehmen.
Hinweis: Das Skript ist nicht auf den SqlServer Adapter begrenzt, sondern kann für alle Datenbank Adapter verwendet werden!
Wenn Sie jetzt das Ganze mit Hilfe vom Batch Modul ausführen und hier die Option "/ReadFileName *.csv" verwenden, wird jede CSV Datei dynamisch in die Richtige MS SQL Server Tabelle importiert.
Im Anhang finden Sie ein kleines Beispiel dazu.
C# Skript für generisches SQL Server Tabellen Mapping
mit dem .NET Script Heater und folgenden C# Skript kann das gelöst werden.
Wichtig: Das Skript muss für „Ausführen bei“ auf "Start" gestellt werden, so wird es vor dem Ausführen des jeweiligen Verarbeitungsschrittes ausgeführt. Das Skript holt sich den aktuellen Dateinamen der READ Seite und setzt die Tabelle anhand des Namens. Da Sie weiter keine Angaben gemacht haben wie die Tabelle identifiziert werden kann habe ich den ganzen Dateinamen ohne Dateiendung verwendet, hier müssen Sie ggf. noch Anpassungen vornehmen.
Hinweis: Das Skript ist nicht auf den SqlServer Adapter begrenzt, sondern kann für alle Datenbank Adapter verwendet werden!
Wenn Sie jetzt das Ganze mit Hilfe vom Batch Modul ausführen und hier die Option "/ReadFileName *.csv" verwenden, wird jede CSV Datei dynamisch in die Richtige MS SQL Server Tabelle importiert.
Im Anhang finden Sie ein kleines Beispiel dazu.
C# Skript für generisches SQL Server Tabellen Mapping
Code:
public object DoWork()
{
// Zugriff auf die READ/WRITE Adapter
TextFileAdapter aRead = (TextFileAdapter)AdapterRead;
DatabaseAdapter aWrite = (DatabaseAdapter)AdapterWrite;
// Aktuellen READ Dateinamen holen
string filename = aRead.Filename;
// Tabelle vom aktuellen Dateinamen der READ Seite ableiten
string table = Path.GetFileNameWithoutExtension(filename);
// Write Tabelle setzen
aWrite.SQL = String.Format("dbo.[t_{0}]", table);
// Rückgabe für Ausführung bei "Start" nicht notwendig!
return null;
}
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Jan Brandenburger
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 23
1 Jahr 1 Woche her #4985
von Jan Brandenburger
Jan Brandenburger antwortete auf Generisches SQL-Tabellen-Mapping auf der Write-Seite
Guten Morgen Herr Stark,
ich bedanke mich herzlich für die Antwort und werde die Information an meinen Kollegen weiterleiten.
Mit freundlichen Grüßen
Jan Brandenburger
ich bedanke mich herzlich für die Antwort und werde die Information an meinen Kollegen weiterleiten.
Mit freundlichen Grüßen
Jan Brandenburger
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.275 Sekunden