Der Daten Import / Export Spezialist
Schauen Sie sich auch die verfügbaren Beispiele zum MySQL Adapter an evtl. kann Ihre Frage hiermit schon beantwortet werden: CSV Import , Nur neue Datensätze exportieren , Datenmigration

Unterschiedliche Import/Export Pfade

  • FlowHeater-Team
  • Autor
  • Offline
  • Administrator
  • Administrator
Mehr
12 Jahre 6 Monate her #89 von FlowHeater-Team
Unterschiedliche Import/Export Pfade wurde erstellt von FlowHeater-Team
Anfrage per Email erhalten.

Sehr geehrte Damen und Herren,

ich verwende jetzt Ihr Produkt schon längere Zeit und bin sehr zufrieden. Ist es damit auch möglich unterschiedliche Eingangs- und/oder Ausgangsdateien/Datenbanken zu nutzen?

z.B. will ich nicht jedes mal das Script öffen und die Pfade anpassen sondern ein Automatismus wie folgt erstellen:

1. Anlegen von konvertieren_csv2MySQL.fhd

2. diese Datei nutzen für:
heute konvertieren_csv2MySQL.fhd datei07.csv 2010_07
nächsten Monat konvertieren_csv2MySQL.fhd datei08.csv 2010_08


Mit freundlichen Grüßen
Uwe Richter

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.

  • FlowHeater-Team
  • Autor
  • Offline
  • Administrator
  • Administrator
Mehr
12 Jahre 6 Monate her #90 von FlowHeater-Team
FlowHeater-Team antwortete auf Aw: Unterschiedliche Import/Export Pfade
Hallo Herr Richter,

Über das Batch-Modul haben Sie die Möglichkeit mit den Aufrufoptionen

/ReadFileName dateiname bzw. /WriteFileName dateiname

den Dateinamen und Pfad, der in der Definition hinterlegt/gespeichert ist vor der Ausführung zu überschrieben. Dies funktioniert allerdings nur zusammen mit dem TextFile Adapter bzw. dem Excel Adapter.

Sie möchten vermutlich auch noch auf der WRITE Seite vor dem Import eine neue Tabelle dynmaisch anlegen? Das würde zusammen mit dem .NET Script Heater und einen wenig Code funktionieren.

Erstellen Sie dazu ganz normal Ihre CSV Import Defintion. Nachdem Sie den Import getestet haben ziehen Sie einen .NET Script Heater per Drag & Drop in eine bestehende Verbindung und fügen weiter unten stehenden .NET Script Code ein.

Wichtig: Der .NET Script Heater muss zwischen eine bestehende Verbindung gezogen werden da sonst der Code nicht dynamisch ausgeführt wird!

Der Code legt pro Import eine neue Tabelle t_DynImport + Aktuelles Datum und Uhrzeit an. Als Basis werden die auf der WRITE Seite vorhandenen Felder verwendet. Schauen Sie sich das ganze einmal an. Anpassungen am Tabellennamen bzw. Aufbau der Tabelle z.B. Primary Key können relativ schnell durchgeführt werden.
Code:
bool bFirst = true; public object DoWork() { if (bFirst) { // nur vor 1. Datensatz aufrufen bFirst = false; bool primary = true; string tabelle = "t_DynImport_" + DateTime.Now.ToString("yyyyMMdd_hhmmss"); BaseDBAdapter adapter = (BaseDBAdapter)AdapterWrite; adapter.SQL = "select * from " + tabelle; string sql = "create table " + tabelle + " ("; int len = 0; int count = 0; foreach(Field f in adapter.Fields) { BaseDBAdapterField field = (BaseDBAdapterField)f; if (count > 0) sql += ", "; sql += "[" + field.Name + "] "; switch(field.DataType) { case DataType.String: len = field.Length; if (len == 0) len = 100; //SQL Datentyp für strings sql += "varchar(" + len.ToString() + ")"; break; case DataType.Date: case DataType.Time: case DataType.DateTime: //SQL Datentyp für datetime sql += "datetime"; break; case DataType.Bool: //SQL Datentyp für Bool: bei MSSQL bit verwenden! sql += "boolean"; break; case DataType.Int: //SQL Datentyp für Int (Ganzzahl) sql += "Integer"; break; case DataType.Double: case DataType.Currency: //SQL Datentyp für Double und Currency, evtl. auch numeric(18,2) ... sql += "Float"; break; } if (primary) { primary = false; sql += "not null "; } count++; } sql += " );"; //File.WriteAllText("C:\\Temp\\sql.txt", sql); // Tabelle anlegen adapter.Execute(sql); } // Eingangsparameter einfach wieder zurückliefern! return InValues[0].GetValue(); }

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.

Mehr
12 Jahre 6 Monate her #91 von U. Richter
U. Richter antwortete auf Aw: Unterschiedliche Import/Export Pfade
Gibts den Code auch in VB?

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • FlowHeater-Team
  • Autor
  • Offline
  • Administrator
  • Administrator
Mehr
12 Jahre 6 Monate her #92 von FlowHeater-Team
FlowHeater-Team antwortete auf Aw: Unterschiedliche Import/Export Pfade
Hier der Code in VB.NET. Der Code wurde leicht angepasst, mit dieser Version wird die Tabelle nicht im TestModus angelegt!

Noch ein Hinweis: Der Code legt momentan keine PrimaryKeys sowie evtl. AutoWerte an.
Code:
Dim bFirst as Boolean = true Public Function DoWork() As Object ' Nur beim 1. Aufruf sowie nicht im TestModus! If bFirst = True And AdapterWrite.OnlyTest = False then ' nur vor 1. Datensatz aufrufen bFirst = false Dim primary as boolean primary = true Dim tabelle as String tabelle = "t_DynImport_" + DateTime.Now.ToString("yyyyMMdd_hhmmss") Dim adapter as BaseDBAdapter adapter = AdapterWrite adapter.SQL = "select * from " + tabelle Dim sql as String sql = "create table " + tabelle + " (" Dim len as Integer Dim count as Integer len = 0 count = 0 For Each f as Field in adapter.Fields Dim field as BaseDBAdapterField field = f If count > 0 Then sql = sql + ", " End If sql = sql + "[" + field.Name + "] " Select Case field.DataType Case DataType.String len = field.Length If len = 0 Then len = 100 End If 'SQL Datentyp für strings sql = sql + "varchar(" + len.ToString() + ")" Case DataType.Date, DataType.Time, DataType.DateTime 'SQL Datentyp für datetime sql = sql + "datetime" Case DataType.Bool 'SQL Datentyp für Bool: bei MSSQL bit verwenden sql = sql + "boolean" Case DataType.Int 'SQL Datentyp für Int (Ganzzahl) sql = sql + "integer" Case DataType.Double, DataType.Currency 'SQL Datentyp für Double und Currency, evtl. auch numeric(18,2) ... sql = sql + "float" End Select If primary = True Then primary = False sql = sql + " not null " End If count = count + 1 Next f sql = sql + " );" 'Tabelle anlegen adapter.Execute(sql) End If DoWork = InValues(0).GetValue() End Function

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.

Ladezeit der Seite: 0.277 Sekunden

andere Sprachen

en

FlowHeater Home

de en

Impressum/Kontakt

Datenschutz

Copyright © 2009-2023 by FlowHeater GmbH.
Alle Rechte vorbehalten.

Follow us on

twitter  facebook

YouTube

 de en