Abfragen miteinander verknüpfen

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Thomas2705.

    Abfragen miteinander verknüpfen

    gegeben MySQl DB mit Tabelle: ds_kom mit folgenden Spalten:

    ds_kom_nr
    ds_kom_art

    Beim Ereignis sollen folgende Abfragen ausgeführt werden:

    [code=sql] cmd.CommandText = "INSERT INTO ds_kom (ds_kom_nr) VALUES (' " & MyVar & " ')" [/code]

    und

    [code=sql] cmd.CommandText = "INSERT INTO ds_kom (ds_kom_art) VALUES ('Mail')" [/code]

    Beide Abfragen sollen miteinander verknüpft werden weil sie in der gleichen Zeile stattfinden sollen.

    Geht das?
    Ich denke mal du meinst das:
    Code: "INSERT INTO ds_kom (ds_kom_nr) VALUES (' " & MyVar & " '); INSERT INTO ds_kom (ds_kom_art) VALUES ('Mail')"

    Mit dem ";" (Semikolon) kannst du verschiedene Queries in eine Zeile schreiben. Wichtig: Nicht alle Server unterstützen dies!


    lg Morph
    Dein Vorschlag funktioniert mit der Einschränkung das die Abfragen nacheinander ausgeführt werden. D.h. es wird erst ein DS mit ds_kom_nr angelegt und dann noch ein weiterer DS mit ds_kom_art. Es werden zwei verschiedene Zeilen angelegt.

    Es sollen aber beide Abfragen in einer Zeile angelegt werden. Verstehst Du was ich meine? ?(
    Hm... Ich bin mir nicht sicher, aber probier mal das hier:

    SQL-Abfrage

    1. INSERT INTO ds_kom (ds_kom_nr), ds_kom (ds_kom_art) VALUES (' " & MyVar & " '), ('Mail');

    Allerdings scheint mir das eher unlogisch... Ich denke da ist eine der Grenzen von MySQL vorzufinden ;)
    Falls es nicht gehen sollte, werde ich mich aber auch nochmal schlauer machen! Irgendwo interessiert es mich nämlich auch ^^ Aber wozu benötigst du denn eine synchrone Einpflegung von Datensätzen? Es macht doch keinen Unterschied, ob die Daten synchron oder nacheinander eingepflegt werden...

    lg Morph
    "Es macht doch keinen Unterschied, ob die Daten synchron oder nacheinander eingepflegt werden..."

    Ich glaube das stimmt.

    In der Spalte sd_kom_art wird als Standardwert " kein Wert beim Anlegen eines DS gesetzt. Weil aber später die Auswahl zwischen Telefon oder Mail getätigt werden soll ist es danch vielleicht nötig den in der ersten Abfrage "INSERT INTO..." gesetzten werden durch Telefon oder Mail zu aktualisieren.

    Folgender Ablauf nach dem Ereignis:

    [code=sql]
    Dim Wert2 = "Mail"


    cmd.CommandText = "INSERT INTO ds_kom (ds_kom_nr) VALUES (' " & MyVar & " ')"
    cmd.ExecuteNonQuery()

    cmd.CommandText = String.Format("UPDATE ds_kom SET ds_kom_art = '{0}' WHERE ds_kom_art = " & MyVar, Wert2)
    cmd.ExecuteNonQuery()

    'Anzeige des neu angelegten Wertes:

    cmd.CommandText = "SELECT * FROM ds_kom WHERE ds_kom_nr = " & MyVar
    reader = cmd.ExecuteReader

    Do While reader.Read()
    TextBox8.Text = reader("ds_kom_art")
    Loop
    reader.Close()

    [/code]

    Obwohl der Wert "Mail" (=Wert2) hätte eingesetzt werden müssen wird nur der Standardwert "kein Wert" angezeigt.

    Nachtrag: Jetzt geht es: :rolleyes:

    [code=sql]

    cmd.CommandText = String.Format("UPDATE ds_kom SET ds_kom_art = '{0}' WHERE ds_kom_nr = " & MyVar, Wert2)

    [/code]