Avatar billede dingkee Nybegynder
21. december 2002 - 19:30 Der er 5 kommentarer og
1 løsning

Gemme i database

Er der nogen der kan se hvorfor dette ikke virker:

Set Rs = Server.CreateObject("ADODB.Connection")
  DBPath = "DBQ=" & server.mappath("database.mdb")
  Rs.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

  If (Request.ServerVariables("Content_length") > 0) then
    Sql = "Insert into T_Voteresult (Voteid, Vote, Ip) values('" & Request("Voteid") & "','" & Request("R1") & "','" &  Request.ServerVariables("REMOTE_ADDR") & "')"
    Rs.Execute(Sql)

    Response.redirect Request.ServerVariables("SCRIPT_NAME") & "?design=4&id=" & Request("Voteid")
  end if

Jeg får denne fejl:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query.

default.asp, line 538

Jeg har skriveadgang til databasen
Avatar billede dingkee Nybegynder
21. december 2002 - 20:25 #1
Eller er der måske en der kan skrive det om så det virker, hele koden kommer her:

<%

font    = "<font size='2' face='Verdana'>"
faktor  = 5
barcolor = "#FF0000"


Set Rs = Server.CreateObject("ADODB.Connection")
  DBPath = "DBQ=" & server.mappath("database.mdb")
  Rs.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

  If (Request.ServerVariables("Content_length") > 0) then
    Sql = "Insert into T_Voteresult (Voteid, Vote, Ip) values('" & Request("Voteid") & "','" & Request("R1") & "','" &  Request.ServerVariables("REMOTE_ADDR") & "')"
    Rs.Execute(Sql)

    Response.redirect Request.ServerVariables("SCRIPT_NAME") & "?design=4&id=" & Request("Voteid")
  end if

  ' *******************************************************
  ' * Viser resultat                                      *
  ' *******************************************************
  If "" <> Request.QueryString("id") then
    If "" = Request.QueryString("mode") then
      Sql = "Select * from T_Vote where Id = " & Request.QueryString("Id")
      Set Record =  Rs.Execute(Sql)
      Dim Valg(5)
      valg(1) = Record("valg1")
      valg(2) = Record("valg2")
      valg(3) = Record("valg3")
      valg(4) = Record("valg4")
      valg(5) = Record("valg5")

      response.write font & Record("Beskrivelse")  & "<br><br>"

      Sql = "Select count(*) as Found from T_VoteResult where VoteId = " & Request.QueryString("Id")
      Set Record =  Rs.Execute(Sql)
      Ialt = Record("found")

      Response.Write "<div align='left'><table border='0'><tr>"
      For i = 1 to 5
        If valg(i) <> "" then
          Sql = "Select count(*) as Found from T_VoteResult where VoteId = " & Request.QueryString("Id") & " and vote = '" & Valg(i) & "'"
          Set Record = Rs.Execute(Sql)
          Procent = 100/Ialt * Record("Found")
          response.write "<td>" & font & Valg(i) & "</td><td>" & font & Round(procent) & "%</td><td><hr width='" & Procent * faktor & "' size='10' align='left' color='" & barcolor & "'></td></tr>"
        end if
      Next
      Response.Write "</table></div>"
    end if
   
    ' *******************************************************
    ' * Hvis mode = vote, opbygges "stemmeseddel"          *
    ' *******************************************************

    If "vote" = Request.QueryString("mode") then
      Sql = "Select * from T_Vote where Id = " & Request.QueryString("Id")
      Set Record =  Rs.Execute(Sql)
      response.write font & Record("Beskrivelse")
      response.write "<form method='POST' action='default.asp?design=4'>"
      response.write "<input type='hidden' name='Voteid' value=" & Request.QueryString("Id") & ">"
      If Record("Valg1") <> "" then
        response.write "<img src='babe\1.jpg' height='100'><input type='radio' value='" & Record("Valg1") & "' name='R1'>" & Record("Valg1") & "<br>"
      end if 
      If Record("Valg2") <> "" then
        response.write "<img src='babe\2.jpg' height='100'><input type='radio' value='" & Record("Valg2") & "' name='R1'>" & Record("Valg2") & "<br>"
      end if
      If Record("Valg3") <> "" then
        response.write "<img src='babe\3.jpg' height='100'><input type='radio' value='" & Record("Valg3") & "' name='R1'>" & Record("Valg3") & "<br>"
      end if
      If Record("Valg4") <> "" then
        response.write "<img src='babe\4.jpg' height='100'><input type='radio' value='" & Record("Valg4") & "' name='R1'>" & Record("Valg4") & "<br>"
      end if
      If Record("Valg5") <> "" then
        response.write "<img src='babe\5.jpg' height='100'><input type='radio' value='" & Record("Valg5") & "' name='R1'>" & Record("Valg5") & "<br>"
      end if
      response.write "<p>&nbsp;<input type='submit' value='Stem' name='B1'>&nbsp;&nbsp; <input type='reset' value='Slet' name='B2'></p>"
      response.write "</form></body></html>"
    end if
end if
%>
Avatar billede fixxxer Nybegynder
21. december 2002 - 21:00 #2
drop din DBPath og lav en connection:

dim Conn

function OpenConn( DBName )

Set Conn = Server.CreateObject("ADODB.Connection")
ODBCpath = left(request.servervariables("PATH_TRANSLATED"), instrrev(request.servervariables("PATH_TRANSLATED"), "\"))
Conn.Open "DBQ=" & ODBCpath & DBName & ";DefaultDir=" & ODBCpath & ";Driver={Microsoft Access Driver (*.mdb)}"

end function

OpenConn("database.mdb")

så skal du bare bruge Conn.Execute(SQL) i stedet for rs.Execute(SQL)
Avatar billede fixxxer Nybegynder
21. december 2002 - 21:00 #3
min egen udbyder www.wannafind.dk kræver at man bruger den type connection til sin access db, for at det virker. ved ik hvorfor :)
Avatar billede fixxxer Nybegynder
21. december 2002 - 21:04 #4
et mere præcist eks, og så den passer til de variabler du har valgt at bruge:

Set Rs = Server.CreateObject("ADODB.Connection")
  DBPath = "DBQ=" & server.mappath("database.mdb")
  Rs.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath


skal blive til:


dim Rs

function OpenConn( DBName )

Set Rs = Server.CreateObject("ADODB.Connection")
ODBCpath = left(request.servervariables("PATH_TRANSLATED"), instrrev(request.servervariables("PATH_TRANSLATED"), "\"))
Rs.Open "DBQ=" & ODBCpath & DBName & ";DefaultDir=" & ODBCpath & ";Driver={Microsoft Access Driver (*.mdb)}"

end function

OpenConn("database.mdb")
Avatar billede dingkee Nybegynder
22. december 2002 - 15:20 #5
Det virker altså desværre stadig ikke, får stadig denne fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query.

default.asp, line 546
Avatar billede sup Nybegynder
23. december 2002 - 12:17 #6
Hvis du søger på den fejl vil den fortælle dig at du ikke har skrive rettigheder til databasen. Du burde kunne se permissions på databasen ved at gå ind med FTP.

Sup
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