Avatar billede fun22 Nybegynder
20. november 2002 - 09:15 Der er 15 kommentarer og
1 løsning

Hvad betyder dette?

Object or provider is not capable of performing requested operation.
Avatar billede Spotgun Seniormester
20. november 2002 - 09:16 #1
Højest sandsynligt noget med at du ikke er koblet rigtigt op mod din database (eller et andet object), og ikke kan udføre det du forsøger.

Kom med noget kode, så er det væsentligt nemmere at hjælpe...
Avatar billede fun22 Nybegynder
20. november 2002 - 09:21 #2
Her er den kode det er galt med:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../db.mdb")
Sql = "SELECT * FROM users WHERE pkuserid = " & Session("userid")

Set Rs = Conn.execute(Sql)

If Rs("points") >= Request.Form("points") THEN
intTmp = (Rs("points") - Request.Form("points"))
Rs("points_b") = Request.Form("points") <----Det er denne linie
Rs("points") = intTmp
Rs.UpDate
rs.AddNew
      rs("Navn") = Request.form("Navn")
      rs("kat") = Request.form("kat")
      rs("f_points") = Request.form("points")
      rs("Besked") = Request.form("Besked")
      rs("Dato") = Now()
      rs("IP") = request.servervariables("remote_Addr")
      rs.Update
Else
Response.redirect("fejl.asp")
End If
%>

Jeg har vist hvad for en linie det er galt med
Avatar billede misbruger Nybegynder
20. november 2002 - 09:23 #3
du kan ikke opdatere en RecordSet ved at sætte den = et element fra din form collection

Altså...
Rs("point_b") = Request.Form("points")
...må man ikke!
Avatar billede misbruger Nybegynder
20. november 2002 - 09:25 #4
så skal du lave en update....

SQL = "UPDATE users SET points_b = Request.Form("points") WHERE pkuserid = "& Session("userid")
Avatar billede medions Nybegynder
20. november 2002 - 09:35 #5
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../db.mdb")
Sql = "SELECT * FROM users WHERE pkuserid = " & Session("userid")

Set Rs = Conn.execute(Sql)

If Rs("points") >= Request.Form("points") THEN
intTmp = (Rs("points") - Request.Form("points"))

rs.AddNew
      Rs("points_b") = Request.Form("points")
      Rs("points") = intTmp
      rs("Navn") = Request.form("Navn")
      rs("kat") = Request.form("kat")
      rs("f_points") = Request.form("points")
      rs("Besked") = Request.form("Besked")
      rs("Dato") = Now()
      rs("IP") = request.servervariables("remote_Addr")
      rs.Update
Else
Response.redirect("fejl.asp")
End If
%>

Prøv med denne!

//>Rune
Avatar billede fun22 Nybegynder
20. november 2002 - 14:49 #6
Rune> Den sender videre til fejl siden selvom at points i databasen er støre end det der står i formen
Avatar billede medions Nybegynder
20. november 2002 - 15:22 #7
Hmm ok, din fejl kommer fordi du prøver at tildele et recordset en værdi uden for et tildelingscope. Du er derfor nødt til at lægge det over i variabler først!
-Men hvad er det egentlig du vil ha' den til?

fx.:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../db.mdb")
Sql = "SELECT * FROM users WHERE pkuserid = " & Session("userid")

Set Rs = Conn.execute(Sql)

If Rs("points") >= Request.Form("points") THEN
intTmp = (Rs("points") - Request.Form("points"))
Rs("points_b") = Request.Form("points") <---- Hvad er det du vil her?
Rs("points") = intTmp
Rs.UpDate
rs.AddNew
      rs("Navn") = Request.form("Navn")
      rs("kat") = Request.form("kat")
      rs("f_points") = Request.form("points")
      rs("Besked") = Request.form("Besked")
      rs("Dato") = Now()
      rs("IP") = request.servervariables("remote_Addr")
      rs.Update
Else
Response.redirect("fejl.asp")
End If
%>

//>Rune
Avatar billede fun22 Nybegynder
20. november 2002 - 21:11 #8
Det er et point system til et forum. Når man opretter et indlæg skriver man eks. 10 i points og så en besked. Så skal den så tjække om brugeren har så mange points, og hvis han har skal den trække de 10 points fra i kollonnen points og smide dem over i poinst_b og hvis ikke han har de points så skal den sende videre til fejl.asp
Avatar billede fun22 Nybegynder
21. november 2002 - 13:53 #9
men som den er nu sender den videre til fejl.asp lige meget hvad
Avatar billede medions Nybegynder
21. november 2002 - 15:22 #10
Prøv at konvetere det til en Integerværdi!

If CInt(Rs("points")) >= CInt(Request.Form("points")) Then

//>Rune
Avatar billede fun22 Nybegynder
21. november 2002 - 15:46 #11
så kommer den med en fejl i linien med rs.AddNew

Object or provider is not capable of performing requested operation.
Avatar billede medions Nybegynder
21. november 2002 - 16:00 #12
Vil du updatere eller vil du tilføje?
-hvis du vil tilføje skal du fjerne din WHERE clouse...

//>Rune
Avatar billede fun22 Nybegynder
21. november 2002 - 16:29 #13
jeg skal både tilføje og opdatere. Det skal være sådan at bnrugerens points skal opdateres med det nye tal, og så skal indlæget tilføjes til databasen
Avatar billede fun22 Nybegynder
23. november 2002 - 09:34 #14
haloooo
Avatar billede fun22 Nybegynder
02. december 2002 - 13:30 #15
er der nogen hjemme???
Avatar billede fun22 Nybegynder
02. december 2002 - 19:21 #16
Der er ikke noget der virker så jeg lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester