MySQL "UPDATE"-Befehl und Textfeld

Startseite Foren Deutsches LiveCode-Forum MySQL "UPDATE"-Befehl und Textfeld

Schlagwörter: ,

Dieses Thema enthält 4 Antworten und 2 Teilnehmer. Es wurde zuletzt aktualisiert von  Klaus Major vor 3 Wochen.

  • Autor
    Beiträge
  • #9601

    SashMo
    Teilnehmer

    Guten Tag zusammen, 🙂

    ich hoffe angenehme Feiertage gehabt zu haben. Ich brauche mal wieder einen kleinen Tritt in den Hintern um vorwärts zu kommen.

    Diesmal habe ich eine Frage zu einem SQL-Befehl in LiveCode. Ich habe mich generell an die Lesson in diesem Blog gehalten: Keine Angst vor Datenbanken und das klappt ziemlich gut. Wie das Meiste, wenn man es richtig macht. 😉

    Meine konkrete Frage bezieht sich auf die folgende Zeile

    `put "UPDATE personendaten SET email='erwin@mayer.de' WHERE nachname = 'Mayer' AND vorname = 'Erwin'" into sql
    revExecuteSQL dbid, sql

    Ist es möglich anstelle eines festen "Wertes" (wie hier z.B. erwin@mayer.de) auch den Inhalt einer Textbox zu übergeben? Oder müsste ich dazu ein anderen Befehl nutzen?

    viele Grüße und kommt gut ins neue Jahr!
    Sascha

  • #9603

    Klaus Major
    Moderator

    Hi Sascha,

    der Trick ist es, den korrekten SQL Befehl zusammenzubauen.
    Das sollte so gehen:

    ...
    put "UPDATE personendaten SET email='" & fld "das mit der emailadresse" & "' WHERE nachname = 'Mayer' AND vorname = 'Erwin'" into sql
    revExecuteSQL dbid, sql
    ...

    Mit den ganzen Anfürungszeichen wrid das aber schnell schlecht lesbar, daher benutze ich immer zwei kleine Funktion, die mit einfache und doppelte Anführungszeichen um einen String packt:

    
    ## Doppelte Anführungszeichen -> "
    function q tString
       return QUOTE & tString & QUOTE
    end q
    
    ## Einfache Anführungszeichen -> '
    function q2 tString
       return "'" & tString & "'"
    end q2

    Ins Stackskript packen und nutzen. So sieht das dann mit der Funktion aus:

    ...
    put "UPDATE personendaten SET email= & q2(fld "das mit der emailadresse") & " WHERE nachname = 'Mayer' AND vorname = 'Erwin'" into sql
    revExecuteSQL dbid, sql
    ...

    Gruß

    Klaus

  • #9605

    SashMo
    Teilnehmer

    Oh mein Gott ich werd verrückt. Es funktioniert (natürlich) tadellos. Und ich habe erst die erste Variante getestet. Vielen Dank für dieses tolle Weihnachtsgeschenk. =)
    Die Anführungsstriche sind echt verwirrend. Jetzt schau ich mir als Nächstes die anderen Varianten an.

    Jetzt habe ich natürlich aber noch die Frage: Steht das irgendwo geschrieben oder hast du dein Wissen aus Erfahrung? Ich glaube ich muss mich noch mehr damit beschäftigen. 🙂

    Vielen, vielen Dank!

  • #9607

    Klaus Major
    Moderator

    Jetzt habe ich natürlich aber noch die Frage: Steht das irgendwo geschrieben oder hast du dein Wissen aus Erfahrung?

    Das ist Erfahrung. 🙂

  • #9609

    Klaus Major
    Moderator

    Aber das ist ja gerade ein der Stärken von LC: die Behandlung von Text. Du weisst, wie der SQL Befehl aussehen muss, also basteln wir uns den in LC entsprechend zusammen.

Du musst angemeldet sein, um auf dieses Thema antworten zu können.