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
      Verwalter

      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
      Verwalter

      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
      Verwalter

      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.