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
-
itk5 -
21. Februar 2005 um 11:57 -
Unerledigt
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!
-
-
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 -
Maximilian Rupp
27. Dezember 2024 um 12:06 Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.