Skip to main content
Weil einfach - produktiver ist

Der Daten Spezialist

Konvertieren Sie die Daten mühelos zwischen verschiedenen Formaten ohne Programmierkenntnisse dank Visual Designer. Effizient und super einfach.
Flowheater Download

Instert in sql-Datenbank mit Löschen

Mehr
12 Jahre 11 Monate her #390 von Martin
Instert in sql-Datenbank mit Löschen wurde erstellt von Martin
Hallo, ich habe folgendes Problem. Softwarestand 1.32:

Ich lade Daten in eine Tabelle 1. Anschließend werden die Daten über eine "group by" Funktion zusammengefasst und in eine andere Tabelle 2 geschoben.

Nächster Lauf: Daten in Tabelle 1, "Tabelle vor dem Import leeren" usw.

Das Ganze mache ich 4x über den batch-Lauf.

So weit so gut.

Sind jedoch bei einem Lauf keine Daten vorhanden, also keine Daten in Tabelle 1 zu laden, dann werden die Daten auch nicht vorher gelöscht. Zusammengefasste Daten werden dann doppelt in die Tabelle 2 gestellt.

Gibt es hierfür einen bypass?

Bitte Anmelden um der Konversation beizutreten.

Mehr
12 Jahre 11 Monate her #392 von FlowHeater-Team
FlowHeater-Team antwortete auf Aw: Instert in sql-Datenbank mit Löschen
Sie können die Tabelle über eine zusätzliche Dummy Definition löschen.

Schauen Sie sich hierzu folgenden Forumsbeitrag an.

Ursprungstabelle leeren

Hier ist zwar beschrieben wie die Ursprungstabelle nach dem Import geleert werden kann, das gleich Vorgehen kann aber auch vor dem eigentlichen Import angewendet werden, so dass Ihre Tabelle vor dem Import immer sauber geleert ist.

In Ihrem Batch CMD Skript geben Sie dann folgendes an
Code:
@echo off … vorherige Anweisungen FHBatch.exe Import-Tabelle-Leeren.fhd FHBatch.exe Daten-Import.fhd … weitere Anweisungen

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 um der Konversation beizutreten.

Mehr
12 Jahre 11 Monate her #393 von Martin
Hallo,

danke für die Antwort. Meines Erachtens wäre das ein Fehlverhalten der Anwendung. Ich kann das Problem aber auch so lösen.

Noch eine Frage hierzu: Ich arbeite in Tabellen mit einer "foreign key Einschränkung". Es gibt eine Tabelle 1, in der ein Kopfsatz steht, und eine Tabelle 2 in der sich Datensätze in der Tabelle 1 auf den jeweiligen Kopfsatz beziehen. Die Datensätze der Tabelle 2 kann ich so löschen. Wenn ich dann aber die Datenätze der Tabelle 1 löschen will (mit der oben beschriebenen fhd-Datei), dann kommt die Fehlermeldung: "Die Tabelle 1 kann nicht abgeschnitten werden, da eine Foreign Key-Einschränkung auf sie verweist". Direkt auf der MS-SQL Datenbank kann ich die Datensätze jedoch löschen.

Können Sie da weiterhelfen?

Vielen Dank!

Bitte Anmelden um der Konversation beizutreten.

Mehr
12 Jahre 11 Monate her #394 von FlowHeater-Team
FlowHeater-Team antwortete auf Aw: Instert in sql-Datenbank mit Löschen
Als Fehler würde ich das nicht ansehen, das ist by Design so vorgesehen. Das Problem ist dass wenn auf der WRITE Seite keine Daten ankommen auch nichts weiter durchgeführt wird u.a. wird auch die Tabelle nicht geleert. Ich werde die Verarbeitungsweise in dieser Hinsicht mal überdenken und ggf. ändern.

Zu Ihrer 2. Frage) Das ist ein Problem der Version 1.x Hier werden Tabellen aus Performance Gründen nicht mit dem SQL Befehl "delete from Ihre_Tabelle" geleert sondern mit "truncate Ihre_Tabelle" abgeschnitten.

In Version 2.x wurde das Umgestellt, so dass hier wieder delete verwendete wird. Über die Adapter Eigenschaft "UseTruncate = true" kann das auch wieder auf TRUNCATE umgestellt werden.

Workaround für Version 1.x: Ziehen Sie einen .NET Script Heater in irgendeine bestehende Verbindung und Kopieren folgenden Code hinein.
Code:
public object DoWork() { // nicht im Testmodus ausführen if (AdapterWrite.OnlyTest == false) AdapterWrite.Execute("delete from IhreTabelle_BITTE_Anpassen"); return InValues[0].GetValue(); }
Passen Sie im Skript den Tabellennamen an, so dass Ihre gewünschte Tabelle geleert wird. Danach müssen Sie noch auf der WRITE Seite die Option "Tabelle vor dem Import Leeren" wieder deaktivieren.

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 um der Konversation beizutreten.

Ladezeit der Seite: 0.271 Sekunden

FlowHeater - Der Daten Spezialist

Effiziente Datenintegration und Transformation mit FlowHeater - Ihre Lösung für nahtlosen Datentransfer.

Rechtliches

Support & Kontakt

Kontaktinformation

Telefon:
0951 / 99339792

E-Mail:
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.


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