Fishli: Syntaxfehler in der INSERT INTO-Anweisung

Jetzt weiss ich also auch nicht mehr weiter hat jemand eine Idee was da falsch ist? War mal ok bis ich auf dsn (odbc datenquelle)umgemodelt habe;-(

Fehlertyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Syntaxfehler in der INSERT INTO-Anweisung.
/process.asp, line 128

  1. emailtotal = emailtotal + (currentprice * acart(i,1))
  2. sql = "insert into orderitems orderid,productid,qty,priceperunit) values (" & orderid & "," & acart(i,0) & "," & acart(i,1) & "," & currentprice & ")"
  3. set rsorderitems = db.execute(sql)
  1. Hallo Fishli

    1. sql = "insert into orderitems orderid,productid,qty,priceperunit) values (" & orderid & "," & acart(i,0) & "," & acart(i,1) & "," & currentprice & ")"
    2. set rsorderitems = db.execute(sql)

    Ich kann mich irren, aber fehlt da nicht eine sich öffnende Klammer? (
    sql = "insert into orderitems _(_orderid,productid,..) values ( ... )"

    Grüsse,
      Christian

    --
    Erfahrung ist die Summe der Dummheiten, die man im Bedarfsfall wieder anwendet. (Dieter Hildebrand, Kabarettist)
    1. Ja da sieht man wie lange ich schon rumübe;-) das habe ich beim posten rausgelöscht;

      1. sql = "insert into orderitems (orderid,productid,qty,priceperunit) values (" & orderid & "," & acart(i,0) & "," & acart(i,1) & "," & currentprice & ")"
      2. set rsorderitems = db.execute(sql)
        129)end if

      habe inzwischen auch mit ' versucht geht aber auch nicht;

      1. sql = "insert into orderitems (orderid,productid,qty,priceperunit) values ('" & orderid & "','" & acart(i,0) & "','" & acart(i,1) & "','" & currentprice & "')"
      2. set rsorderitems = db.execute(sql)
      3. end if
      1. Hi!

        Ja da sieht man wie lange ich schon rumübe;-) das habe ich beim posten rausgelöscht;

        1. sql = "insert into orderitems (orderid,productid,qty,priceperunit) values (" & orderid & "," & acart(i,0) & "," & acart(i,1) & "," & currentprice & ")"
        2. set rsorderitems = db.execute(sql)
          129)end if

        habe inzwischen auch mit ' versucht geht aber auch nicht;

        1. sql = "insert into orderitems (orderid,productid,qty,priceperunit) values ('" & orderid & "','" & acart(i,0) & "','" & acart(i,1) & "','" & currentprice & "')"
        2. set rsorderitems = db.execute(sql)
        3. end if

        Machst du bitte mal Response.Write(sql). Ich seh hier immer eine Menge sql-Befehle mit Variablen drin, nur zur Sicherheit sollten wir mal nachgucken ob da nicht sowas steht wie INSERT ... (1, ,3) oder so.

        MfG
        Rouven

        --

        -------------------
        ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
        1. Machst du bitte mal Response.Write(sql). Ich seh hier immer eine Menge sql-Befehle mit Variablen drin, nur zur Sicherheit sollten wir mal nachgucken ob da nicht sowas steht wie INSERT ... (1, ,3) oder so.

          Bin ein in den sumpf geworfener Anfänger... Wo Response.Write(sql)?
          Bei Code Zeile 128 in process.asp geschieht nichts neues;-)

          Komischerweise werden die Daten in die Datenbank geschrieben aber ohne Werte. Der User wird erfasst aber keine orderid,productid,qty,priceperunit eingetragen die Werte sind alle bei 0. Und es wird keine Bestellbestätigung ausgelöst?

          1. Hi,

            machs mal zwischen 127 und 128, also lass einfach mal ausgeben, was die DB da executen soll. Poste dann einfach mal, was er da schreibt.
            Wenn du sagst, da wird 0 eingetragen dann sind wohl deine Variablen irgendwie nicht in Ordnung.

            MfG
            Rouven

            --

            -------------------
            ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
            1. machs mal zwischen 127 und 128, also lass einfach mal ausgeben, was die DB da executen soll. Poste dann einfach mal, was er da schreibt.

              »»

              Wenn ich es zwischen Zeile 127 und 128 schreibe wird die Bestätigungsseite der Bestellung angezeitgt und als erstes erscheint:

              insert into orderitems (orderid,productid,qty,priceperunit) values ('','13162','1','8,9') Ihre Bestellung wurde Übermittelt.
              Ihre Bestellung wurde Übermittelt. etc.... (die erste Ausgabe wird von der DB automatisch generiert - Bestellnummer)

              Die Mails werden auch ausgelöst. Aber die Geldbeträge werden mit 0 in die DB eingetragen.

              Der User wird erfasst mit einer Bestellung (0 Wert) wird in die DB geschrieben. Nur der Shipcost Betrag wird mit 6,00 und nicht wie vorher mit 6.00 eingetragen.

              1. Hi,

                ok, ich habe keine Ahnung ob dich das weiterbringt, aber probier mal was. Ich gehe mal davon aus, dass deine qty und priceperunit als Zahlen definiert sind. Wenn dem so ist, dann müsste auch ein insert into orderitems (orderid,productid,qty,priceperunit) values ('','13162', 1 , 8.9)
                funktionieren - Beachte: 8.9, das Dezimalformat bei der Datenbank ist - vermute ich - mit "." definiert.
                Bist du eigentlich sicher, dass du das mit einer leeren Orderid einfügen wolltest?

                Wenn dich das auch nicht weiterbringt, kann ich dir nicht aus der Ferne helfen...

                MfG
                Rouven

                --

                -------------------
                ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
                1. Bist du eigentlich sicher, dass du das mit einer leeren Orderid einfügen wolltest?»»

                  Nein, die orderid sollte eigentlich von der Datenbank selber erstellt werden (fortlaufend) und nicht leehr sein? ('orderid','13162', 1 , 8.9) Könnte das der Knackpunkt sein?

                  <img src="http://www.tiernarr.ch/db.gif" border="0" alt="">

                  Ja, dieser mistigen Punkt war seit jeher auf meinem lokalen Rechner ein Problem aber es hat vorher trotzdem funktioniert. Die EInstellungen inkl. Systemsteuerung sind alle auf "."

                  1. Hi,

                    also wenn du das als Autowert konzipiert hast, dann kann es sein, dass sich Access gegen die Zuweisung des Wertes sträubt - Unter Access ist es - meines Wissens - verboten einer Autowert Spalte einen Wert zuzuweisen - Du solltest sie daher nicht leer lassen, sondern sie erst gar nicht berücksichtigen:
                    insert into orderitems (productid,qty,priceperunit) values ('13162', 1, 8.9)

                    Das ist ja auch mit der Witz von Autowerten, sie befüllen sich sobald der Datensatz angelegt wird automatisch.

                    MfG
                    Rouven

                    --

                    -------------------
                    ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(