25. marts 2003 - 14:56Der er
6 kommentarer og 1 løsning
DB driver problem
Jeg har en lille asp-ting der fungerer upåklageligt... Lige indtil jeg skiftede udbyder. Nu har jeg et problem jeg ikke kan hitte ud af.
Jeg har et forum hvor man kan oprette indlæg. Disse bliver lagt i en acces database. Her er en smule kode, hvor det går galt:
------------------------------------ overskrift = Request("titel") tekst = Request("tekst") Const adOpenKeyset = 1 Const adLockOptimistic = 3 Conn = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../md b/forside.mdb") Set rs = Server.CreateObject("ADODB.RecordSet") strSQL = "SELECT * FROM forside WHERE (ID = 0)" rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic If (rs.BOF Or rs.EOF) Then rs.AddNew rs("forfatter") = Request.Cookies("login")("fornavn") rs("overskrift") = overskrift rs("tekst") = tekst ---------------------------------------
Der er fejl i linie 29. Det er linien rs("forfatter) ... Fejlen er:
Microsoft OLE DB Provider for ODBC Drivers error '80040e21' Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done. /asp/indsaet.asp, line 29
Nogle brugere kan godt oprette uden problemer, mens andre får denne fejl, og ikke kan oprette noget som helst. Og her står jeg sgu af. Jeg vil mene alt dette foregår rent serverside, og derfor ikke burde betyde noget hvem der udfører det.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Muligvis fordi mappen er skrivebeskyttet. Hvis du prøver at bytte rundt på forfatter og overskrift, finder du hurtigt ud af, om det er det, der er galt. Er det det, vil du få samme fejl igen.
Det synes jeg ikke giver nogen mening. Hvorfor kan jeg så selv oprette indlæg hvis den er skrivebeskyttet? Det skal siges at siden ligger på et webhotel, så der er ikke noget med at jeg har andre rettigheder fordi jeg kører lokalt.
Som fejlen antyder, så ligger fejlen i at der bliver foretaget en "MULTIPLE-STEP OLE DB OPERATION". Men hvorfor det sker for nogen, og ikke for andre, det kan jeg ikke greje.
Det ser ud til at du har ikke åbnet en Connection: overskrift = Request("titel") tekst = Request("tekst")
strConn = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../md b/forside.mdb") Set rs = Server.CreateObject("ADODB.RecordSet") Set Conn = Server.CreateObject("ADODB.Connection") 'Tilføj Conn.Open strConn strSQL = "SELECT * FROM forside WHERE (ID = 0)" rs.Open strSQL, Conn, 1, 3 If (rs.BOF Or rs.EOF) Then ' ved ikke om det?? rs.AddNew rs("forfatter") = Request.Cookies("login")("fornavn") rs("overskrift") = overskrift rs("tekst") = tekst ... rs.update rs.Close Set rs = Nothing
hossein >> Det gjorde ikke nogen forskel. M.h.t. din kommentar, så har du ret. Den if-sætning er slet ikke nødvendig. Jeg vedligholder blot skidtet, og har ikke spekuleret videre over det, men den er slet og ret overflødig.
Jeg fandt ud af problemet. Det viste sig at brugernavnet for enkelte brugere indeholdt tegn som systemet fik galt i halsen. Derfor var der nogle der fik fejl, mens andre kørte fint igennem.
Jeg er gået igang med en "patch" :-)
Synes godt om
Ny brugerNybegynder
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.