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?
Aktualisieren von Daten
-
-
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:
Codesql = "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.
-
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? -
bei internen Serverfehlern sind die LogFiles oft sehr aufschlussreich ... schau da mal rein
-
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? -
Zitat von itk5
fnachname = request.Form("nachname")
fkundennnummer = request.Form("kundennummer")
Set rs = db.execute("update kunden set nachname = fnachname where kundennummer = fkundennummer ")
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) -
bin wirklich kein profi, deshalb danke für deine Hilfe. hat alles super geklappt! DANKE!!!!!
lg
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!