1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Aktualisieren von Daten

  • itk5
  • 21. Februar 2005 um 11:57
  • Unerledigt
  • itk5
    2
    itk5
    Mitglied
    Punkte
    25
    Beiträge
    4
    • 21. Februar 2005 um 11:57
    • #1

    hallo,
    habe folgendes Problem:

    > Set rs = db.execute("UPDATE kunden SET kunden.nachname =
    > Request.Form('nachname') WHERE (((kunden.Kundennummer)=
    > Request.Form('kundennummer')));")
    >
    > Zu diesem Befehl kommt dann die folgende Fehlermeldung:
    >
    > >>>>Microsoft OLE DB Provider for ODBC Drivers Fehler "80040e14'
    > >>>>[Microsoft][ODBC Microsoft Access Driver] Undefinierte
    > >>>>>>>>Funktion
    > 'Request.Form' in Ausdruck.
    > >>>>/MamaChen/Projektarbeit/datenbank/aenderung3.asp, line 37
    >
    > Warum ist das so?
    > An "Request.Form" kann es nicht liegen, weil ich das
    > schon mit "response.write" versucht habe. Außerdem habe ich auch
    > versucht eine Variable für nachname und kundennummer zuzuweisen und
    > diese Variablen statt dem "Request.Form" in den sql-Befehl einzufügen.
    > Aber dann kommt eine andere Fehlermeldung, die sagt, dass nicht genug
    > Parameter übergeben worden sind.

    wer kann mir helfen?

  • rck
    15
    rck
    Mitglied
    Reaktionen
    2
    Punkte
    2.342
    Beiträge
    437
    • 25. Februar 2005 um 15:45
    • #2
    Zitat von itk5

    An "Request.Form" kann es nicht liegen

    Das sieht MS-SQL offensichtlich anders, zumindest entnehme ich das der Fehlermeldung.

    Probiere mal testweise einen String zusammenzustöpseln. Ich bin nicht besonders fit in ASP, aber so ungefähr:

    Code
    sql = "UPDATE kunden "
    sql=sql+"SET kunden.nachname="+Request.Form('nachname')+" "
    sql=sql+"WHERE kunden.Kundennummer="+Request.Form('kundennummer')
    
    
    set rs=db.execute(sql)

    Meiner Meinung nach ist nämlich Request.Form eine Funktion von ASP -- nicht von MS-SQL. Du verwendest es aber als MS-SQL Funktion.

    [ egapemoh eniem ] [ Korneuburg Community ] [ FB ] [ Xng ]

  • itk5
    2
    itk5
    Mitglied
    Punkte
    25
    Beiträge
    4
    • 7. März 2005 um 12:11
    • #3

    Leider hat dein Lösungsvorschlag auch nicht funktioniert... jetzt wird die Seite gar nicht mehr angezeigt... irgendso ein interner Serverfehler... was auch immer das heißen mag... :confused:

    wer kann mir noch helfen?

  • phlow
    12
    phlow
    Mag.rer.soc.oec
    Reaktionen
    3
    Punkte
    1.423
    Beiträge
    262
    • 7. März 2005 um 12:48
    • #4

    bei internen Serverfehlern sind die LogFiles oft sehr aufschlussreich ... schau da mal rein

    Florian Bauer

    Managing Director


    Impact Hub Vienna


    M: +43 664 4182106


    E: florian.bauer@impacthub.net 
    W: vienna.impacthub.net


    Lindengasse 56, 1070 Vienna, Austria



    visit us | facebook.com/impacthubvienna
    follow us | instagram.com/impacthubvienna

  • itk5
    2
    itk5
    Mitglied
    Punkte
    25
    Beiträge
    4
    • 14. März 2005 um 14:29
    • #5

    komme immer noch nicht weiter... ich habe jetzt den sql befehl etwas anders geschrieben:

    fnachname = request.Form("nachname")
    fkundennnummer = request.Form("kundennummer")

    Set rs = db.execute("update kunden set nachname = fnachname where kundennummer = fkundennummer ")

    doch jetzt kommt die folgende Fehlermeldung obwohl die 'nachname' und 'kundennummer' übertragen worden sind (habs mit response.write ausprobiert)


    Microsoft OLE DB Provider for ODBC Drivers Fehler "80040e10' 

    [Microsoft][ODBC Microsoft Access Driver] 2 Parameter wurden erwartet, aber es wurden zu wenig Parameter übergeben. /MamaChen/projektarbeit/datenbank/aenderung33.asp, line 39 

    hat jemand eine Ahnung was das bedeutet?

  • lerod
    13
    lerod
    Mitglied
    Reaktionen
    5
    Punkte
    1.620
    Beiträge
    315
    • 14. März 2005 um 16:58
    • #6
    Zitat von itk5



    fnachname = request.Form("nachname")
    fkundennnummer = request.Form("kundennummer")

    Set rs = db.execute("update kunden set nachname = fnachname where kundennummer = fkundennummer ")

    Alles anzeigen



    hm ich denke, du bist nicht ganz fit in sql bzw. der programmiersprache :winking_face:

    was du machst, ist nichts anderes als jeweils 2 spalten miteinander zu vergleichen, anstatt dem string den eigentlich wert von fnachname & fkundennummer zu übergeben.

    Set rs = db.execute( "update kunden set nachname = " + fnachname + " where kundennummer = " + fkundennummer )


    ich möchte dich in diesem zusammenhang auch hinweisen, daß solche direkten abfragen, sql injections hervorrufen können, sprich sicherheitsrisiken in sich birgen!


    hope that helps .. lg


    PS: eventuell müßtest noch einzelne Hochkommas (') zur Parameteridentifizierung verwenden -> .. set nachname = '<value>' ... (jetzt von der reinen sql syntax betrachtet)

  • itk5
    2
    itk5
    Mitglied
    Punkte
    25
    Beiträge
    4
    • 17. März 2005 um 17:19
    • #7

    bin wirklich kein profi, deshalb danke für deine Hilfe. hat alles super geklappt! DANKE!!!!!

    lg

  • Maximilian Rupp 27. Dezember 2024 um 12:06

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung