Får ett felmeddelande när jag ska uppdatera en nyhet... Hej Haha.. jag kom just på varför jag programmerar i Editplus och inte i DreamWeaver... Klassiskt Access-problem som jag har för mig beror på att du måste ha med alla dina parametrar i resultsetet, dvs. alla fält som finns i Where-satsen, måste också finnas i Select-satsen. Troligast har någon av fälten ett ' i sig och det gör att din sql-sats sprängs sönder och blir färre fält än du tänkt dig. Lösningen för dig är att innesluta alla fält med ' men även replaca alla ' med ''. Det gör även att sql-injection undviks. Hejsan! Ja det stämmer.. J*klar vad snabba ni är på att svara!! Jag är imponerad! Ska genast testa!! Vill nån visa med min kod hur man gör detta? Jag har försökt på alla vis nu, men jag lyckas inte *snyft* Hmm.. jag har kopierat din kod och kollar lite.. en fråga bara var är innehållet i "MM_klot_1_STRING" Guud vad snällt! Hehe.. ok. Nu börjar vi snacka ;-) Använd dig av denna kod och prova ;-) Tack, men jag skickas till min förbannade 404-sida... =) Access denied skulle kunna bero på att du inte har skrivrättigheter på databasen. Haha.. nja,, det var kanske inte det jag ville åstadkomma med koden... Anna-Karin, Hej igen, nja, det beror lite på vad det är för program.. var är det nedladdat? Det är nån programmerare som tydligen gjort det till min kompis, som sedan har lämnat över det bara... o nu sitter vi här! med knepig kod (enligt oss, haha -bara för att vi inte fattar givetvis!!) Maila på du ;-)Uppdatering falerar, "Too few parameters"
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 2.
/asp/edit.asp, line 131
Här kommer den mastiga koden... någon som orkar sätta sig in??
<%
' *** Edit Operations: declare variables
Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd
Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId
Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i
MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
MM_editAction = MM_editAction & "?" & Server.HTMLEncode(Request.QueryString)
End If
' boolean to abort record edit
MM_abortEdit = false
' query string to execute
MM_editQuery = ""
%>
<%
' *** Update Record: set variables
If (CStr(Request("MM_update")) = "form1" And CStr(Request("MM_recordId")) <> "") Then
MM_editConnection = MM_klot_1_STRING
MM_editTable = "tblArtikel"
MM_editColumn = "ID"
MM_recordId = "" + Request.Form("MM_recordId") + ""
MM_editRedirectUrl = "login_ok.asp"
MM_fieldsStr = "rubrik|value|datum|value|ledtext|value|lank|value|lanktext|value|artikel|value"
MM_columnsStr = "Rubrik|',none,''|Datum|',none,''|Ledtext|',none,''|Lank|',none,''|Lanktext|',none,''|Artikel|',none,''"
' create the MM_fields and MM_columns arrays
MM_fields = Split(MM_fieldsStr, "|")
MM_columns = Split(MM_columnsStr, "|")
' set the form values
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
Next
' append the query string to the redirect URL
If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
Else
MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
End If
End If
End If
%>
<%
' *** Update Record: construct a sql update statement and execute it
If (CStr(Request("MM_update")) <> "" And CStr(Request("MM_recordId")) <> "") Then
' create the sql update statement
MM_editQuery = "update " & MM_editTable & " set "
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_formVal = MM_fields(MM_i+1)
MM_typeArray = Split(MM_columns(MM_i+1),",")
MM_delim = MM_typeArray(0)
If (MM_delim = "none") Then MM_delim = ""
MM_altVal = MM_typeArray(1)
If (MM_altVal = "none") Then MM_altVal = ""
MM_emptyVal = MM_typeArray(2)
If (MM_emptyVal = "none") Then MM_emptyVal = ""
If (MM_formVal = "") Then
MM_formVal = MM_emptyVal
Else
If (MM_altVal <> "") Then
MM_formVal = MM_altVal
ElseIf (MM_delim = "'") Then ' escape quotes
MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
Else
MM_formVal = MM_delim + MM_formVal + MM_delim
End If
End If
If (MM_i <> LBound(MM_fields)) Then
MM_editQuery = MM_editQuery & ","
End If
MM_editQuery = MM_editQuery & MM_columns(MM_i) & " = " & MM_formVal
Next
MM_editQuery = MM_editQuery & " where " & MM_editColumn & " = " & MM_recordId
If (Not MM_abortEdit) Then
' execute the update
Set MM_editCmd = Server.CreateObject("ADODB.Command")
MM_editCmd.ActiveConnection = MM_editConnection
MM_editCmd.CommandText = MM_editQuery
MM_editCmd.Execute ' ########### HÄR ÄR RAD 131 ##########'
MM_editCmd.ActiveConnection.Close
If (MM_editRedirectUrl <> "") Then
Response.Redirect(MM_editRedirectUrl)
End If
End If
End If
%>
<%
Dim rsUser__MMColParam
rsUser__MMColParam = "1"
If (Session("User") <> "") Then
rsUser__MMColParam = Session("User")
End If
%>
<%
Dim rsUser
Dim rsUser_numRows
Set rsUser = Server.CreateObject("ADODB.Recordset")
rsUser.ActiveConnection = MM_klot_1_STRING
rsUser.Source = "SELECT * FROM tblUser WHERE UserName = '" + Replace(rsUser__MMColParam, "'", "''") + "'"
rsUser.CursorType = 0
rsUser.CursorLocation = 2
rsUser.LockType = 1
rsUser.Open()
rsUser_numRows = 0
%>
<%
Dim rsArtikel__MMColParam
rsArtikel__MMColParam = "1"
If (Request.QueryString("ID") <> "") Then
rsArtikel__MMColParam = Request.QueryString("ID")
End If
%>
<%
Dim rsArtikel
Dim rsArtikel_numRows
Set rsArtikel = Server.CreateObject("ADODB.Recordset")
rsArtikel.ActiveConnection = MM_klot_1_STRING
rsArtikel.Source = "SELECT * FROM tblArtikel WHERE ID = " + Replace(rsArtikel__MMColParam, "'", "''") + ""
rsArtikel.CursorType = 0
rsArtikel.CursorLocation = 2
rsArtikel.LockType = 1
rsArtikel.Open()
rsArtikel_numRows = 0
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>edit</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<p>inloggad som: <%=(rsUser.Fields.Item("Namn").Value)%></p>
<form ACTION="<%=MM_editAction%>" METHOD="POST" name="form1">
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr>
<td width="6%">Rubrik</td>
<td width="50%"><input name="rubrik" type="text" id="rubrik" value="<%=(rsArtikel.Fields.Item("Rubrik").Value)%>" size="33">
<input name="datum" type="hidden" id="datum" value="<%=Response.Write(Date())%>">
</td>
<td width="9%"> </td>
<td width="1%"> </td>
<td width="1%"> </td>
<td width="1%"> </td>
<td width="32%"><div align="right"> </div></td>
</tr>
<tr>
<td><div align="right"></div>
<div align="left">Ledtext</div></td>
<td><input name="ledtext" type="text" id="ledtext" value="<%=(rsArtikel.Fields.Item("Ledtext").Value)%>" size="33" maxlength="22">
(max 22 tecken)</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td valign="top">Text</td>
<td><textarea name="artikel" cols="40" rows="20" id="artikel"><%=(rsArtikel.Fields.Item("Artikel").Value)%></textarea></td>
<td valign="bottom">
</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td valign="top">Länk</td>
<td><input name="lank" type="text" id="lank" value="<%=(rsArtikel.Fields.Item("Länk1").Value)%>"></td>
<td valign="bottom"> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td valign="top">Länktext</td>
<td><input name="lanktext" type="text" id="lanktext" value="<%=(rsArtikel.Fields.Item("Länk1txt").Value)%>"></td>
<td valign="bottom"><input type="submit" name="Submit" value="Submit"></td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
<input type="hidden" name="MM_update" value="form1">
<input type="hidden" name="MM_recordId" value="<%= rsArtikel.Fields.Item("ID").Value %>">
</form>
<p>
</p>
</body>
</html>
<%
rsUser.Close()
Set rsUser = Nothing
%>
<%
rsArtikel.Close()
Set rsArtikel = Nothing
%>
Sv: Uppdatering falerar, "Too few parameters"
Testa att skriva ut din SQL sats så att du ser vilka värden som du får med och att du har alla fnuttar på rätta ställena och att inga är glömda.
//Anna-KarinSv: Uppdatering falerar, "Too few parameters"
Testa att skriva ut SQL Satsen så du ser vad den ger för kommando, på så sätt är det lättare att hitta felet..
Edit.. bra att man tar sådan tid på sig att skriva så alla andra hinner före ;-)Sv: Uppdatering falerar, "Too few parameters"
Mvh // JohanSv: Uppdatering falerar, "Too few parameters"
<code>
sql = "'" & replace(request.form("kalle"), "'","''") & "', " & _
"'" & replace(request.form("olle"), "'","''") & "', " & _
"'" & replace(request.form("lisa"), "'","''") & "'"
con.execute "insert into tabell (a,b,c) values (" & sql & ")
</code>
Hoppas detta hjälper dig vidareSv: Uppdatering falerar, "Too few parameters"
tack för alla bra svar, men ni får ursäkta min dåliga asp!
Har jag förstått rätt att det är dessa två rader som jag ska använda det som Pelle beskriver?
MM_fieldsStr = "rubrik|value|datum|value|ledtext|value|lank|value|lanktext|value|artikel|value"
MM_columnsStr = "Rubrik|',none,''|Datum|',none,''|Ledtext|',none,''|Lank|',none,''|Lanktext|',none,''|Artikel|',none,''"
O Anna-Karin, hur skriver man ut det?
Sv: Uppdatering falerar, "Too few parameters"
På Anna-Karins svar kan jag säga att om du vill skriva ut en sql sats så är det bara att kommentera raden som sparar i databasen och sedan använda dig av
<% = MM_FieldsStr %><br />
<% = MM_columnsStr %>
Du ser då hur strängarna ser ut och du kan se om du har en ' för mycket eller liknande...
/W
Sv: Uppdatering falerar, "Too few parameters"
TACK
Jag har skrivit såhär nu, efter bästa "förståelseförmåga"... men det blir inget bra...
MM_fieldsStr = "rubrik|value|datum|value|ledtext|value|lank|value|lanktext|value|artikel|value"
MM_columnsStr = "'"Rubrik|",none,"|Datum|",none,"|Ledtext|",none,"|Lank|",none,"|Lanktext|",none,"|Artikel|",none,"'"
Sv: Uppdatering falerar, "Too few parameters"
Måste få det att fungera, annars kan man inte ändra redan inlagda nyheter, vilket är väldigt tråkigt ju...
Jag hade vart såå tacksam, jag kommer inte längre...Sv: Uppdatering falerar, "Too few parameters"
Har du några includerade filer som inte finns med i den koden du skickade in? Sv: Uppdatering falerar, "Too few parameters"
Koden som finns ovanför ser ut såhär:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="../Connections/klot_1.asp" -->
<%
' *** Restrict Access To Page: Grant or deny access to this page
MM_authorizedUsers="2,xxx,1"
MM_authFailedURL="error.asp"
MM_grantAccess=false
If Session("MM_Username") <> "" Then
If (false Or CStr(Session("MM_UserAuthorization"))="") Or _
(InStr(1,MM_authorizedUsers,Session("MM_UserAuthorization"))>=1) Then
MM_grantAccess = true
End If
End If
If Not MM_grantAccess Then
MM_qsChar = "?"
If (InStr(1,MM_authFailedURL,"?") >= 1) Then MM_qsChar = "&"
MM_referrer = Request.ServerVariables("URL")
if (Len(Request.QueryString()) > 0) Then MM_referrer = MM_referrer & "?" & Request.QueryString()
MM_authFailedURL = MM_authFailedURL & MM_qsChar & "accessdenied=" & Server.URLEncode(MM_referrer)
Response.Redirect(MM_authFailedURL)
End If
%>
och klot1.asp ser ut såhär:
<%
' FileName="Connection_ado_conn_string.htm"
' Type="ADO"
' DesigntimeType="ADO"
' HTTP="false"
' Catalog=""
' Schema=""
Dim MM_klot_1_STRING
MM_klot_1_STRING = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../DB/klot_1.mdb")
%>
Sv: Uppdatering falerar, "Too few parameters"
Hur ser klot1.asp ut?Sv: Uppdatering falerar, "Too few parameters"
Set MM_editCmd = Server.CreateObject("ADODB.Command")
MM_editCmd.ActiveConnection = MM_editConnection
MM_editCmd.CommandText = MM_editQuery
'MM_editCmd.Execute ' ########### HÄR ÄR RAD 131 ##########'
Response.Write("<br /><br /><font size=""4"" color=""red"">" & MM_editQuery & "</font><br /><br />")
MM_editCmd.ActiveConnection.Close
Du ser vad jag har ändrat...
Sv: Uppdatering falerar, "Too few parameters"
i adressfönstret så står det så här:
http://www.xxx.com/asp/error.asp?accessdenied=%2Fasp%2Flogin%5Fok%2Easp%3FID%3D521
Måste väl vara nåt med rättigheter att ändra eller?
MM_authorizedUsers="2,xxx,1"
har provat att ändra ordning på detta...
MM_authorizedUsers="1,xxx,2" -utan resultat, bara att om jag tar bort 2an får jag inte uppdatera alls.
E d nåt som kan vara till hjälp?
Tack Daniel för att du orkar bry dig!!Sv: Uppdatering falerar, "Too few parameters"
Testa att ge IUSR_Datornamn skrivärttigheter på mappen och databasen.
Mappen för att postlåsningsfilerna ska kunna tas bort.
//Anna-Karin
Som alltid skriver sin kod för hand.Sv: Uppdatering falerar, "Too few parameters"
Nåväl, en fråga bara, har ni gjort programmeringen själv eller är det ett nedladdat skript?
Dit du kommer nu verkar som den inte vill ta inloggningen, ska kolla lite till på koden och se vad den försöker åstadkomma..
(Ytterligare en anledningen till att programmera i Editplus, ingen konstig kod som ingen kännner igen ;-)
Inget att tacka för förresten... Sv: Uppdatering falerar, "Too few parameters"
I koden som jag skickade har jag kommenterat bort exekveringen till databasen ;-)Sv: Uppdatering falerar, "Too few parameters"
Anna-Karin: Jag hade MER ÄN GÄRNA(!) skrivit egen kod, om jag bara hade kunnat så mkt, än så länge får jag försöka använda mig av färdiga skript o modda så det passar... denna koden har jag bara fått i uppdrag av en kompis att ändra lite i, men det blev mer komplicerat än vad jag trodde.. inte så lätt att bara sätta sig in i nån annans kod o sen ändra... iaf inte när man inte är duktig på det.
Daniel: Kan man inte sätta: MM_authorizedUsers="2,xxx,1" till nåt som gör att alla som har kommit såhär långt i inloggning oxå får lov att uppdatera.. nån global rättighet eller nåt? (E jag ute o cyklar??)Sv: Uppdatering falerar, "Too few parameters"
Vad som falerar är
<code>
MM_editQuery = update Tabell Set fält where column = id
</code>
Det verkar som den strängen inte riktigt vill vara med...
Vad är det för något du har laddat ner (eller din kompis) så ska jag titta på hela scriptet istället ;-)Sv: Uppdatering falerar, "Too few parameters"
Kan jag mejla filerna ist... blir så mkt kod här annars?
(jag använder både Dreamweaver & Editplus) =)Sv: Uppdatering falerar, "Too few parameters"
jokern@gmail.com
Och du. håll dig bara till Editplus ;-)