Zum Hauptinhalt springen
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 Chart

SQL in .NET Heater

Mehr
6 Jahre 6 Monate her #3501 von Flo
SQL in .NET Heater wurde erstellt von Flo
Hallo zusammen,

in verschiedenen Schleifen im .Net Heater möchte ich mittels C# verschieden SQL Befehle nacheinander und in Abhängigkeiten ausführen.
Nun komme ich mit meinen bisherigen Befehlen zum schreiben aus dem .Net Heater in die Datenbank jedoch nicht an allen Stellen mehr weiter

1) Das reine Update oder Insert funktioniert!
string sql = String.Format("SET FOREIGN_KEY_CHECKS=0; UPDATE Geo SET iv1={0} WHERE loc_id={1}; SET FOREIGN_KEY_CHECKS=1;", Ort, of);
AdaptersWrite[0].Execute(sql, false); //oder //AdaptersRead[0].Execute(sql, false);

2) Nun benötige ich jedoch den SELECT Rückgabewert innerhalb des .Net-Heaters. Also ähnlich dem SQL Heater nur innerhalb des .Net. Hier stelle ich mir vor, dass man mittels SELECT (innerhalb einer Schleife im .Net-Heater) einen Wert in eine Variable geschrieben um diesen weiter verarbeiten kann. Geht das? Hier wäre ein kurzes einfaches Beispiel mittels SELECT und einigen Variablen {0}, {1} ... sehr hilfreich.

3) Da mein SQL seeeehr rudimentär ist wäre ich total dankbar, wenn mir jemand bei der richtigen Verschachtelung/Subquery-Erstellung in eine funktionsfähige Query (mit INNER JOIN?) helfen könnte.

Ich hoffe in nachfolgendem fehlerhaften Query wird mein eigentliches Ziel verständlich. Hierdurch kann ich mir dann einige zusätzliche Zeilen in den .NET Schleifen erpaaren.

int ROW = (int)InValues[0].GetInt();
int of= (int)InValues[1].GetInt();
...
...
UPDATE Geo SET iv1=(SELECT Ort FROM Geo WHERE loc_id=of) WHERE loc_id=ROW

Schon einmal vielen Dank an die alle Mithelfer

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
6 Jahre 6 Monate her - 6 Jahre 6 Monate her #3504 von FlowHeater-Team
FlowHeater-Team antwortete auf SQL in .NET Heater
Den Rückgabewert einer SQL Execute Ausführung können Sie im .NET Script Heater folgendermaßen abfragen.

string sql = String.Format(“select [wert] from [Ihre-Tabelle] where ID = {0}”, id);
object o = AdaptersWrite[0].Execute(sql, true);

Wenn Sie den 2. Parameter auf “true” setzen gibt der Execute einen Wert zurück. Wichtig dabei ist, das im SELECT nur eine Spalte zurückgegeben wird und der SELECT auch nur einen Datensatz liefert!

Bzgl. SQL JOINS, etc. kann hier natürlich keine Schulung durchgeführt werden. Hierzu finden Sie im Internet genügend andere Tutorials.

Bevor Sie sich hier tiefer einarbeiten würde ich es über einen weiteren Execute durchführen. Das ist minimal langsamer, der Vorteil daran ist aber daas Ganze ist auch für nicht so ganz erfahrene SQL Spezialisten nach Monaten/Jahren noch lesbar und wartbar!

z.B. (Achtung ungetestet!)
Code:
int row = (int)InValues[0].GetInt(); int id= (int)InValues[1].GetInt(); // Ort auslesen string sql = String.Format("SELECT Ort FROM Geo WHERE loc_id={0}", id); object ort = AdaptersWrite[0].Execute(sql, true); // Update ausführen sql = String.Format("UPDATE Geo SET iv1='{0}' WHERE loc_id={1}", ort, row); AdaptersWrite[0].Execute(sql, false);

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.
Letzte Änderung: 6 Jahre 6 Monate her von FlowHeater-Team.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ladezeit der Seite: 0.251 Sekunden
FlowHeater Logo

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.