Archief - ASP: ADO probleem

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

spikie

Legacy Member
ik ben een database voor mijn dvd's aan het aanleggen en wou deze via een simpele asp site die op mijn localhost draait besturen. Het werkt bijna volledig, het enige dat niet werkt is het toevoegen van een nieuwe film via een form.

Ik krijg de volgende foutmelding:

Soort fout:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access-stuurprogramma] Kan de gegevens niet bijwerken. De database of het object is alleen-lezen.
/filmlijst/toevoegen2.asp, line 21

De code voor toe te voegen is:
Code:
<%
Dim strtitel
Dim srtnieuw

set rstnieuw = server.CreateObject("ADODB.Recordset")
rstnieuw.open "tblfilms", cnDB, 1, 3

strtitel = request.form("txttitel")

With rstnieuw
	.addnew
	.fields("Titel") = strtitel
	[B].update[/B]
end with

cnDB.close
response.redirect "lijst.asp"
%>


de code die in het vet staat is de lijn 21 waar hij een fout op geeft.

Ik heb het toevoegen ook al geprobeerd via SQL maar hij geeft dezelfde fout, nochtans is mijn database niet alleen lezen volgens de eigenschappen (rechtermuisknop, eigenschappen op de database)

Kan iemand mij hiermee helpen?

Boddah

Legacy Member
kan zijn dat je een ASP gebruiker moet aanmaken in je database

BloodSeaker

Legacy Member
Mmm, ik doe meestal voor een nieuw item gewoon een rechtstreekse query

zijnde

set cn = Server.CreateObject(ADODB.Connection)
Query = "INSERT INTO mijntabel(naamke1, waarde1) VALUES('haha', 'en nog iets')"
cn.Execute(Query)


Eventueel kunt ge bij die execute nog parameter meegeven die u dan teruggeeft hoeveel records affected zijn. Als dat 0 is, is de insert niet gelukt

In het andere geval, zoals jij doet open ik men recordset als volgt

rs.open Query, Connectie, 3, 1, 1


En dan werkt dat perfectr

spikie

Legacy Member
awel ik heb die methode ook al gebruikt, en dan geeft hem error bij cn.execute(Query)

@Boddha: waar maakt ge die gebruikers aan?

Boddah

Legacy Member
voor asp.net doe je het volgende: (voor 'gewone' asp weet ik het niet zeker)

dat doe je in sql zelf.
selecteer je db -> users.
rechtermuisknop -> new db user
bij Login name, open je de dropdownlist en selecteer je <new>
bij Name, klik je op de knop met '...'
uit de lijst die je ziet zoek je ASPNET (jij zult dan moeten zoeken naar ASP of zo)
klik op Add, dan Ok
selecteer onderaan je eigen db, en dan klik je op Ok.

en dat zou het moeten zijn

Joriz

Legacy Member
- kijk of read-only niet aanstaat
- ntfs rechten aanpasen (IUSR_MACHINENAME) of iedereen read/write/modify geven

spikie

Legacy Member
op de database staat geen read only, op mijn wwwroot wel, ma als ik da aanpas zet winxp da automatisch terug

Joriz

Legacy Member
ga via windows verkenner naar de plaats waar je .mdb staat, rechter muis klik er op, properties, security en daar "iedereen" of "everyone" toevoegen

spikie

Legacy Member
security (of beveiliging) staat er ni tusse (ik werk me windows xp SP2)

spikie

Legacy Member
ik heb hierjuist het programma op mijn webserver geupload en daar blijkt de code perfect te werken :s

Joriz

Legacy Member
duidelijk ntfs rechten, kijk maar goed op je properties van de database op bestandsbeheerniveau

@lcedo

Legacy Member
Je moet eerst bij uw mapopties in verkenner eenvoudig delen van bestanden uitschakelen dan heb je meer mogelijkheden om gebruikers rechten te geven denk ik
En als je dan naar eigenschappen gaat van uw database doe dan toevoegen... bij tabblad beveiliging -> geavanceerd -> zoeken en aspnet toevoegen + alle rechten geven
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan