1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Aktualisieren von Daten

  • itk5
  • 21. Februar 2005 um 11:57
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • itk5
    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
    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.

  • itk5
    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
    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

  • itk5
    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
    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 ;)

    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
    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.

  1. Datenschutzerklärung
  2. Impressum