Dynamischer Daten Import / Export

datenbank

weil Einfach - produktiver ist
Mit der Freeware Version können bis zu 100.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.
  • Seite:
  • 1

THEMA: Delete on Update

Delete on Update 6 Jahre 4 Monate her #214

  • Daniel Griesheimer
  • Daniel Griesheimers Avatar Autor
  • Offline
  • New Member
  • 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?

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Aw: Delete on Update 6 Jahre 4 Monate her #216

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 1165
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.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

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.
  • Seite:
  • 1
Moderatoren: FlowHeater-Team
Ladezeit der Seite: 0.085 Sekunden