FlowHeater Demo Video
 
FlowHeater - The Data Import / Export Specialist
 
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
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
  • Seite:
  • 1

THEMA: SQL in .NET Heater

SQL in .NET Heater 11 Monate 2 Wochen her #3501

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.

SQL in .NET Heater 11 Monate 2 Wochen her #3504

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Beiträge: 1391
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!)
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.
Folgende Benutzer bedankten sich: Flo

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.
Letzte Änderung: von FlowHeater-Team.
  • Seite:
  • 1

andere Sprachen

en

FlowHeater Home

de en

Impressum/Kontakt

Datenschutz

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

Follow us on

twitter  facebook

YouTube

 de en