.:thomas:.: ASP & mySQL

Hallo,
ich greife von einer ASP Seite auf eine mySQL Datenbank zu. Mit folgendem Befehl, möchte ich einen bestimmten Datensatz ändern. Nur leider tut sich gar nichts. Nicht mal eine Fehlermeldung...

sql = "UPDATE anlagenbuch SET "
sql = sql & "kommentar='" & Request.Form("T99") & "' "
sql = sql & "WHERE id=" & Request.QueryString("id")

Lasse ich den SQL Befehl ausgeben, so sieht er so aus. Nur leider kann ich absolut kein Problem feststellen.

UPDATE anlagenbuch SET kommentar='test' WHERE id=8

Danke schon mal für die Hilfe

  1. Halihallo .:thomas:.

    ich greife von einer ASP Seite auf eine mySQL Datenbank zu. Mit folgendem Befehl, möchte ich einen bestimmten Datensatz ändern. Nur leider tut sich gar nichts. Nicht mal eine Fehlermeldung...

    Hast du sie auch wirklich abgefragt? - Die kommt nicht umbedingt von sich aus.

    sql = "UPDATE anlagenbuch SET "
    sql = sql & "kommentar='" & Request.Form("T99") & "' "
    sql = sql & "WHERE id=" & Request.QueryString("id")

    Request.Form und Request.QueryString sollte eigentlich nicht gemischt werden.

    UPDATE anlagenbuch SET kommentar='test' WHERE id=8

    Der Query ist zumindest für MySQL OK, aber nicht umbedingt für die Schnittstelle. Also
    meine Frage: Welche DB-Schnittstelle benutzt du? ADO, ODBC, ...?
    Versuch mal die etwas allgemeinere Syntax:

    UPDATE anlagenbuch (kommentar) VALUES ('test') WHERE id=8

    Viele Grüsse

    Philipp

    1. Hallo Philipp,

      vielen Dank für den Tipp:

      Hast du sie auch wirklich abgefragt? - Die kommt nicht umbedingt von sich aus.

      Hat mich echt auf die richtige Spur gebracht und jetzt funktionierts auch.

      Danke.

    2. Hi, hallo

      Request.Form und Request.QueryString sollte eigentlich nicht gemischt werden.

      kannst du mir bitte verraten, wieso?

      .Form
      .QueryString

      sind zweil Aufzählungen ^= Hashtables die unabhängig voneinander während des Seitenaufrufes gefüllt werden über das Request-Objekt zur Verfügung stehen

      Wo ist denn jetzt der Unterschied zwischen
      <script>
      ab = Request.Form("ab")
      cd = Request.QueryString("cd")

      ef = ab & cd
      </script>

      und

      <script>
      ef = Request.Form("ab") & Request.QueryString("cd")
      </script>

      es funktioniert, performance-defizite sind nicht messbar, führte bislang nie zu fehlern.

      Tschau, tschüß,
      Frank

      1. Halihallo Frank

        Request.Form und Request.QueryString sollte eigentlich nicht gemischt werden.

        kannst du mir bitte verraten, wieso?

        QueryString im CGI-Sinne, gibt es nur bei GET-Requests. Form verwaltet auch POST-Daten.
        Bei der Umstellung von GET auf POST könnte (s. unten) es also zu Problemen führen.
        Voraussetzung dieser Argumentation ist, dass QueryString auch wirklich nur bei GET-
        Requests Daten enthält, was ich nicht weiss. Wenn dem so ist (nur GET-Daten), sollte
        man die beiden wirklich nicht mischen; wenn nicht liege ich falsch (... und bin einem
        Wording- und Konzeptionsfehler von M$ auf den Leim gegangen).

        es funktioniert, performance-defizite sind nicht messbar, führte bislang nie zu fehlern.

        Wenn QueryString auch POST-Daten speichert, gebe ich dir recht. Weisst du es gleich? -
        Sonst werde ich es bei Zeiten nachprüfen.

        Viele Grüsse

        Philipp

      2. Halihallo Frank

        Request.Form und Request.QueryString sollte eigentlich nicht gemischt werden.
        kannst du mir bitte verraten, wieso?

        http://www.w3schools.com/asp/asp_inputforms.asp
        manifestiert den Unterschied auch in der verwendeten 'method'. Ist ist also, wenn
        evtl. auch anders möglich, doch ratsam, zwischen den Zugriffen zu differenzieren.

        Nachprüfen kann ich es leider im Moment nicht, da mein IIS tot ist und ich die XP-CD
        nicht finde :-(
        Würde mich freuen, wenn das jemand überprüfen könnte: Ist Response.QueryString auch bei
        der POST-Methode "gefüllt"?

        Viele Grüsse

        Philipp

        1. Hi, hallo

          Request.Form und Request.QueryString sollte eigentlich nicht gemischt werden.
          kannst du mir bitte verraten, wieso?

          http://www.w3schools.com/asp/asp_inputforms.asp
          manifestiert den Unterschied auch in der verwendeten 'method'. Ist ist also, wenn
          evtl. auch anders möglich, doch ratsam, zwischen den Zugriffen zu differenzieren.

          Auf der Seite steht nichts annähernd darüber warum man die beiden Sachen nicht vermischen sollte.

          Request.QueryString wird beim Request auf eine .asp mit Wertpaaren gefüllt, die mittels der form-method GET übermittelt wurden oder der URL angehängt wurden

          Bsp:
          <form action="abc.asp?site=v.asp&language=1" method="POST">
          <input type="hidden" name="myHiddenField" value="test">
          <input type="submit" value="submit">
          </form>

          an "site" und "language" kommst du nur mit Request.QueryString und an "myHiddenField" nur mit Request.Form, TAUSCHEN geht aber NICHT, wenn du das meintest - hab ich aber nie so behauptet, daß man mit beiden Aufzählungen an jeden Parameter rankommt.

          nichts beißt sich und kann miteinander / hintereinander verwendet werden

          Request.Form("myHiddenField") & Request.QueryString("site") = "testv.asp"

          Ist Response.QueryString auch bei der POST-Methode "gefüllt"?

          Request.Form und Request.QueryString existieren _immer_ bei der Anforderung einer ASP ressource, sie _müssen_ _aber_ _nicht_ gefüllt sein!!

          Die Füllung mit Werten hängt davon ab, wie welche Werte übergeben werden !!POST / GET!!  die stehen danach in der jeweils

          Ich bin beim Posting von .:thomas:. davon ausgegangen, dass er sowohl Parameter via URL übergibt als auch Werte per <form method=post> sendet... daher vielleicht die gegenseitige Verwirrung ;-)

          Tschau, tschüß,
          Frank

          1. Halihallo Frank

            Request.Form und Request.QueryString sollte eigentlich nicht gemischt werden.
            kannst du mir bitte verraten, wieso?

            http://www.w3schools.com/asp/asp_inputforms.asp
            manifestiert den Unterschied auch in der verwendeten 'method'. Ist ist also, wenn
            evtl. auch anders möglich, doch ratsam, zwischen den Zugriffen zu differenzieren.

            Auf der Seite steht nichts annähernd darüber warum man die beiden Sachen nicht vermischen sollte.

            Eine Argumentation nicht, ja. Aber die Beispiele sprechen für sich (das
            wiederspricht sich nicht mit dem, was du weiter unten schreibst).

            an "site" und "language" kommst du nur mit Request.QueryString und an "myHiddenField" nur mit Request.Form, TAUSCHEN geht aber NICHT, wenn du das meintest - hab ich aber nie so behauptet, daß man mit beiden Aufzählungen an jeden Parameter rankommt.

            Ja, dann sind wir gleicher Meinung ;)

            Request.Form und Request.QueryString existieren _immer_ bei der Anforderung einer ASP ressource, sie _müssen_ _aber_ _nicht_ gefüllt sein!!

            ACK.

            Die Füllung mit Werten hängt davon ab, wie welche Werte übergeben werden !!POST / GET!!  die stehen danach in der jeweils

            Das ist die Antwort auf meine Frage, danke.

            Ich bin beim Posting von .:thomas:. davon ausgegangen, dass er sowohl Parameter via URL übergibt als auch Werte per <form method=post> sendet... daher vielleicht die gegenseitige Verwirrung ;-)

            Ja, war mein Fehler.
            Wir wiedersprechen uns in keinem Punkt ;-)

            Viele Grüsse

            Philipp

            1. Hello again, ...

              wir hatten nur aneinander vorbei geredet :-)  passiert unter geeks ab und zu :-)

              Bis demnext,
              Frank

          2. Hallo,
            wenn ich mich auch noch kurz einmischen darf :-),

            Ich bin beim Posting von .:thomas:. davon ausgegangen, dass er sowohl Parameter via URL übergibt als auch Werte per <form method=post> sendet...

            Das ist auch so. Ich hatte auch bis jetzt noch keine Probleme damit, aber ich habe aus euerer Unterhaltung schon jeden menge gelernt :-)