Dynamischer Daten Import / Export

datenbank

weil Einfach - produktiver ist
Mit der Freeware Version können bis zu 10.000 Datensätze verarbeitet werden!
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
Willkommen im FlowHeater Support Forum!

Hier werden Fragen zum Umgang mit dem FlowHeater beantwortet.

THEMA: Delete on Update

Delete on Update 6 Jahre 1 Monat her #214

  • Daniel Griesheimer
  • Daniel Griesheimers Avatar
  • Offline
  • New Member
  • Beiträge: 2
Guten Morgen,

Zu aller erst möchte ich ein Lob aussprechen.
Die Software is mit Abstand das beste MYSQL Import-Tool das ich bisher gesehen. TOP!
Flowheater wird mir in Zukunft viele Stunden an Arbeit und nerven sparen.

Eine Frage hab ich aber trotzdem :-)
ich würde gerne beim Update meiner SQL Datenbank aus einer Excelliste folgendes durchführen:

Löschen eines Datensatzes sofern ein bestimmter Wert in einer Spalte steht.


Ist das möglich?
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Delete on Update 6 Jahre 1 Monat her #216

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1099
Hallo Herr Griesheimer,

vielen Dank für das Lob, wird immer wieder gerne angenommen :)

Ihre Anforderung ist machbar, erfordert aber etwas Handarbeit. Sie benötigen dafür den .NET Script Heater, den Filter Heater und folgendes kleines C# Skript.
public object DoWork()
{
	bool bRet = false;

	if (InValues.Length != 2)
		throw new Exception("Es werden 2 Eingangsparameter erwartet");

	// Nicht im Testmodus ausführen!
	if (AdapterWrite.OnlyTest)
		return bRet;

	// 1. Heater Eingangsparameter holen = Filter/Löschkriterium
	string filter = (string)InValues[0].GetString();

	// Diese Bedingung dient nur als Beispiel, es können auch komplexere Bedingungen gebildet werden!
	// z.B. wenn filter = 5 dann den Datensatz löschen
	if ( filter == "5" )
	{
		// 2. Heater Eingangsparameter holen = PrimaryKey
		string id = (string)InValues[1].GetString();
	
		// Tausender Trennzeichen entfernen kann bei Alphanummerischen Primary Keys entfalllen
		id = id.Replace(".", "").Replace(",", "");

		// DELETE SQL zusammenbauen
		// !!! ACHTUNG: Tabellenname sowie Primary Key Name muss manuell angepasst werden !!!
		string sql = "delete from IHRE_TABELLE where id = " + id;

		// Bei Alphanummerischen PrimaryKey diese Syntax verwenden
		//string sql = "delete from IHRE_TABELLE where id = '" + id + "'";	


		// SQL auf der WRITE Seite ausführen
		AdapterWrite.Execute(sql);
		
		// Rückgabe für den Filter Heater so dass der Datensatz
		// auf der WRITE nicht mehr behandelt wird!
		bRet = true;
	}

	return bRet;
}

Ziehen Sie den Filter Heater sowie den .NET Script Heater auf den Designer. Verbinden Sie als 1. Eingangsparameter das Excel Feld das das Filter/Löschkriterium enthält mit dem .NET Script Heater. Als 2. Eingangsparameter verbinden Sie nun das Excel Feld, das die Primary Key Informationen zum löschen der Daten enthält mit dem .NET Script Heater. Den Ausgang des .NET Script Heater verbinden Sie nun noch mit dem Filter Heater. Jetzt müssen Sie noch den o.s. Skript Code in den .NET Script Heater kopieren und manuell Ihre MySQL Tabellennamen, den MySQL PrimaryKey Namen sowie Ihr Filter/Löschkriterium anpassen. Siehe Kommentar im Skript!

ACHTUNG: Das ganze bitte mit Vorsicht genießen. Wird hier eine falsche SQL WHERE Bedingung angegeben können versehentlich falsche Datensätze, oder auch der ganze Tabelleninhalt gelöscht werden!

PS: Falls Sie damit nicht klar kommen kann ich Ihnen hierfür auch ein kleines Beispiel anfertigen. Bitte posten Sie dafür den MySQL Tabellenaufbau (Feldnamen, etc.), ihre Excel Arbeitsmappe mit Beispieldaten und noch ein paar zusatzinformationen was Sie genau machen wollen.
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.
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Moderatoren: FlowHeater-Team
Ladezeit der Seite: 0.075 Sekunden