Hej! Det är ditt sql-statement som är felaktigt. T.ex. att du anger ett kolumnnamn som inte finns. (I din ena sats så skriver du mail och din andra email!) Hej och tack för svaret! Hmmm... AARRGGHhhh.....Att köra UPDATE med connection = trubbel ??
Har ni/du tid att titta på denna snippet av min kod:
#########################
Set Con = Server.CreateObject("ADODB.Connection")
conStr = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("dbMail.mdb")
Con.Open conStr
btn = LCase(Request("sbm"))
If Btn = "regga" Then
company = Request("company")
namn = Request("name")
adress = Request("adress")
postadress = Request("postnr")
mail = Request("email")
telefon = Request("tele")
titel = Request("titel")
format = CInt(Request("format")) ' HTML = 0 Text = 1
regga = CInt(Request("RBAction")) ' Registrera = 1 Avregistrera = 2
tid = Date()
' Kolla ifall email existerar redan
sql = "SELECT mail FROM persondata WHERE mail = '" & mail & "'"
Set Rst = Con.Execute(sql)
'Om den existerar så kollas om avregistrering har angetts.
' I så fall så ändrar vi egenskapen RBAction till 2 , = Avregistrerad
If Not Rst.Eof Then 'Om mailadressen finns.
If regga = 2 Then 'Om avregistrering är satt.
delsql = "UPDATE persondata SET RBAction = 2 WHERE email = '" & mail & "'"
Con.Execute(delsql)
Con.Close
Set Con = Nothing
#########################
Jag håller på med en nyhetsmailtjänst.
Nu håller jag på med sidan där man kan
registrera sig för att få mailet.
Man kan också avregistrera sig på denna sida.
Om man finns som registrerad och går in och vill avregistrera sig
dyker det upp ett problem.
Eftersom jag har valt att inte ta bort posten när man
avregistrerar sig, utan istället har ett fält med en flagga som
innehåller en 1'a ifall personen vill ha nyhetsbrev eller
en 2'a om man är avregistrerad.
Så behövs bara att uppdatera posten för den som vill avregistrera sig.
Dvs att ändra fältet RBAction till en 2'a.
När jag skall skicka detta till databasen så genereras ett felmeddelande
som ser ut på detta sätt:
########
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 2.
/mail/send.asp, line 30
########
Rad 30 är den som innehåller: Con.Execute(delsql)
och vad jag vet så behövs det inga fler parametrar till "execute", eller...??
Någon som kan hjälpa en som precis börjat med MS-databaser =)
Tack på förhand!
Mvh NiklasSv: Att köra UPDATE med connection = trubbel ??
Det är helt onödigt att först göra select, det räcker om du enbart gör update.Sv: Att köra UPDATE med connection = trubbel ??
Tänk vad man sitter o stirrar sig blind ibland (ibland för ofta :o)
Sql-satsen var mycket riktigt fel, 'email' existerar endast som ett element i formuläret så där hade jag gjort en förväxling som jag inte såg.
Nu har jag ändrat det och får (nästan) samma felmeddelande ändå.
Fast nu är det bara 1 parameter som fattas ????
#############################
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
/mail/send.asp, line 30
#############################
Sql-satsen ser ut såhär numera:
delsql = "UPDATE persondata SET RBAction = 2 WHERE mail = '" & mail & "'"
Con.Execute(delsql)
Något tips??
// NiklasSv: Att köra UPDATE med connection = trubbel ??
Nu har jag provat att köra en DELETE istället för UPDATE i strängen
på exakt samma ställe och då fungerar det utmärkt:
##
delsql = "DELETE FROM persondata WHERE mail = '" & mail & "'"
Con.Execute(delsql)
Con.Close
##
Jag såg i en bok också att när man använder UPDATE med connection
så kunde det generera fel då man skickar med apostrofer, citationstecken och dyl.
Det skulle ju kunna förklara en del.
Samtidigt väcker det min nyfikenhet då ingen av er garvade asp'are reagerar och vet om detta.
Det kan ju ha med att göra att ni vet en "workaround" för detta utan att ni tänker på det.
Eller (antagligen) så skall man helt enkelt använda Reckordset och den Update metoden som finns till den??
Min undran nu är:
Kan man köra UPDATE med bara connection som jag försöker göra, och i så fall HUR??
Eller:
Är det rätta att köra med ett reckordset??
Jag frågar för att jag vill lära!
Mvh NiklasSv: Att köra UPDATE med connection = trubbel ??
Jag ber om ursäkt för detta inlägg överhuvud taget.¤/%#¤"
Jag får skylla på att det är kodande på dagarna i jobbet
och kodande hemma sena nätter som gör att jag missar
triviala saer som detta....Vad det var??
Hmm.. jo jag trodde att jag kunde alla fältnamn som finns i tabellen
i huvudet, men det gjorde jag inte och jag tittade inte föränns nu.
Jag förstår att ingen har svarat nu!!!
Pelle om du ser denna tråd, ta bort den!!
:o/
// Niklas