MySQL "UPDATE"-Befehl und Textfeld

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

Schlagwörter: ,

Ansicht von 4 Antwort-Themen
  • 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
        Administrator

          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
            Administrator

              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
              Administrator

                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.

            Ansicht von 4 Antwort-Themen
            • Du musst angemeldet sein, um auf dieses Thema antworten zu können.