Vilka rättigheter behöver man sätta till mappen med databaserna i. Det kan, som felmeddelandet säger, bero på att du har felaktig provider eller låstyp. Ett annat tänkbart problem är filrättigheterna som du säger, du måste ha skrivrättigheter på databasen. Alltså jag kör det bara lokalt med IIS5.1. >Vad är provider och låstyp, var ändrar man det? Det hjälper inte att sätta fulla skrivrättigheter. När man använder con.Execute blir rs:et automatiskt skrivskyddat, testa såhär istället: Tänk på att jag kör ASP.NET Fick det att funka lite grann, men det lagras inte i databasen. Och nu tror jag att jag kom på varför. Ursäkta, tänkte inte på att det var .NET... Dessutom fick jag med lite mycket när jag klippte och klistrade, skulle vara såhär istället: Ska man ändra rättigheterna/(vilka filer som är delade) från Utforskaren (Högerklicka på mapp och välja Webbutdelning) eller från Aministrationsverktyg/IIS. Har löst sig nu!.Net + Databas
Som det är nu kan jag läsa från databasen, men det verkar inte gå att ändra ett värde i den.
FELMEDDELANDE:
---
Aktuellt Recordset kan inte uppdateras. Det kan bero på en begränsning av providern eller den valda låstypen.
---
Eller kan detta bero på något annat...
/ACSv: .Net + Databas
/JohanSv: .Net + Databas
Vad är provider och låstyp, var ändrar man det?
Menar du att man ska högerklicka på databasmappen och klicka i skrivrättighet. (Är inte det att användaren får skrivrättighet?)
Bit av sidan: (Använder ingen Provider.)
-----
Dim MyConn, RS
MyConn = Server.CreateObject("ADODB.Connection")
MyConn.Open ("Driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("/test/db/Unity.mdb"))
RS = MyConn.Execute("Select * From Users WHERE Name = '" & logName & "'")
-----
/ACSv: .Net + Databas
Providern är den "drivrutin" som hanterar databasen, alla vanliga providers hanterar uppdateringar, så det är säkert inte det. Vilken databas använder du? Låstyp är det sätt som postlåsningen sker på, det ställer du in när du öppnar recordsetet, hur ser din kod ut?
>Menar du att man ska högerklicka på databasmappen och klicka
>i skrivrättighet. (Är inte det att användaren får skrivrättighet?)
Precis så, du ställer rättigheter till olika användare, IIS går på en egen användare som heter IUSR_datornamn, denna måste ha skrivrättigheter.
/JohanSv: .Net + Databas
.Ska man göra det från Utforskaren eller från Aministrationsverktyg/IIS.
Här är koden: SÄKERT NÅT FEL I DEN
<code>
<%@ Page aspcompat=true Language="VB" Debug="true"%>
<%
Dim login as Boolean
'Save login info to variables
Dim logName, logPass
logName = Request.Form("name")
logPass = Request.Form("password")
'Open database and compare
Dim MyConn, RS
MyConn = Server.CreateObject("ADODB.Connection")
MyConn.Open ("Driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("/unity/db/Unity.mdb"))
RS = MyConn.Execute("Select * From Users WHERE Name = '" & logName & "'")
Dim password as String
password = RS("Password").Value
If logPass = password Then login = True else login = False
'If logged in, register visit
If login = True Then
RS("Visits").Value = RS("Visits").Value + 1 '<---- HÄR KOMMER FELET!
End If
Response.Write(login)
RS.Close
%>
</code>Sv: .Net + Databas
Byt
RS = MyConn.Execute("Select * From Users WHERE Name = '" & logName & "'")
mot
Set RS = Server.CreateObject("ADODB.Recordset")
RS.Open SQLStmt, Connection, 1, 2
RS.Open "Select * From Users WHERE Name = '" & logName & "'", MyConn, 1, 2
/JohanSv: .Net + Databas
('Set' funkar inte)
[Din kod]:
RS = Server.CreateObject("ADODB.Recordset")
RS.Open SQLStmt, Connection, 1, 2
RS.Open "Select * From Users WHERE Name = '" & logName & "'", MyConn, 1, 2
ger massa fel att SQLStmt inte är deklarerad mm.Sv: .Net + Databas
Först är:
RS("Visits").Value 1
Sen kör jag:
RS("Visits").Value = RS("Visits").Value + 1
INGA FELMEDDELANDEN
MEN Konstigt nog visar:
Response.Write(RS("Visits").Value)
Det nya värdet!!!!!!!
MEN DET LAGRAS INTE I DATABASEN.
/ACSv: .Net + Databas
Man måste juh ha:
rs.Update
Och det skriver man (tror jag, verkar det som):
rs.Update()
MEN det står ändå:
[Det går inte att uppdatera. Databasen eller objektet är skrivskyddat.]
/ACSv: .Net + Databas
Set RS = Server.CreateObject("ADODB.Recordset")
RS.Open "Select * From Users WHERE Name = '" & logName & "'", MyConn, 1, 2
Hur motsvarande ser ut i ASP.NET vet jag inte, men du verkar ju ha fått den biten att fungera nu, alltså har det nog med rättigheterna på databasen att göra *gissar*
/JohanSv: .Net + Databas
Om man tar webbutdelning i utforskaren så verkar det automatiskt delas ut i Aministrationsverktyg/IIS.
Men om man delar ut i Aministrationsverktyg/IIS så delas det inte auto i utforskaren.
(Det spelar ingen roll om jag så sätter helt fulla rättigheter överallt.)
/ACSv: .Net + Databas
Var lite som jag trodde.
Extra mycket strul när man kör NTFS. ;-(
Var tvungen att först gå in i Utforskaren, Meny/Verktyg/Mappalternativ och sen klicka Visning.
Och sen klicka bort ett alternativ som Microsoft REKOMMENDERAR att ska vara iklickat. (Trögt)
Efter detta: Högerklicka på databas-mapp, sen klicka alla användare, och slutligen klicka i "Tillåt skriva"
Svårare än så är det inte :)))
/AC