Toon posts:

[ASP] Database Read-only ..... ?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Morguh!

ik gebruik de volgende SQL query om mijn database te openen, zodat ik 'm kan updaten, een record toevoegen dus:

rsQuery.Open "SELECT * From wars", cnDB, 2, 2

dit werkt op mijn eigen site, maar nu ben ik bezig met de site van iemand anders, en daar werkt 't niet. ligt het aan de server???

ergens anders op die site van die ander, zit nog een Access database, en daar kan je wel alles updaten. die gebruikt inplaats van 2, 2 gebruikt ie 1, 3 ..... dat heb ik ook geprobeerd, maar krijg dat de melding dat er een conflict is tussen die 2... (de 1 en de 3)

Wat kan hier aan de hand zijn???? Alvast bedankt!

PS: 't gaat hier dus om een Access 2002 database!

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:11
Ik zou zeggen. Duik de help eens in. Ga eens gaan opzoeken wat die 1, 2 en 3 eigenlijk betekenen ipv zomaar te gokken.
Verder bestaan er geen glazen bollen meer, dus met de beperkte uitleg die jij verschaft zul je niet kunnen geholpen worden.

En je hoeft niet eerst een SELECT uit te voeren om daarna een UPDATE te doen. En met een SELECT open je ook de database niet, de database moet al geopend zijn voordat je uw select doet.

https://fgheysels.github.io/


Verwijderd

Heeft het account waaronder de webserver draait wel schrijf rechten op je mdb?

Verwijderd

Topicstarter
Op woensdag 05 juni 2002 11:00 schreef whoami het volgende:
Ik zou zeggen. Duik de help eens in. Ga eens gaan opzoeken wat die 1, 2 en 3 eigenlijk betekenen ipv zomaar te gokken.
Verder bestaan er geen glazen bollen meer, dus met de beperkte uitleg die jij verschaft zul je niet kunnen geholpen worden.

En je hoeft niet eerst een SELECT uit te voeren om daarna een UPDATE te doen. En met een SELECT open je ook de database niet, de database moet al geopend zijn voordat je uw select doet.
Ik weet wat die cijfertjes doen! Waarom denk je dat ze 't doen op mijn eigen site dan? 't werkt alleen hier niet.

en ten tweede, dit is de complete query:

Set rsQuery = Server.CreateObject("ADODB.Recordset")
rsQuery.Open "SELECT * From wars", cnDB, 2, 2

Hij IS geopened.

Ik gok dus niet zo maar...

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:11
Waarom doe je een SELECT als je spreekt van een record up te daten (dat volgens jou gelijk is aan toevoegen)?

Feit is gewoon dat je post nogal vaag is en je niet met voldoende informatie over de brug komt.

https://fgheysels.github.io/


Verwijderd

Topicstarter
Okidokie, hierbij, het complete scrpt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<%
Set cnDB = Server.CreateObject("ADODB.Connection")
cnDB.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data source= C:\Inetpub\wwwroot\warplanner\warplanner.mdb"
cnDB.Open

Set rsQuery = Server.CreateObject("ADODB.Recordset")
rsQuery.Open "SELECT * From wars", cnDB, 2, 2

rsQuery.AddNew
rsQuery("Date")     = Request.Form("Date")
rsQuery("Opponent") = Request.Form("Opponent")
rsQuery("League")   = Request.Form("League")
rsQuery("Map1")     = Request.Form("Map1")
rsQuery("Map2")     = Request.Form("Map2")
rsQuery("Screenshot1") = Request.Form("Screenshot1")
rsQuery("Screenshot2") = Request.Form("Screenshot2")
rsQuery("Players")  = Request.Form("Players")
rsQuery("Server")   = Request.Form("Server")
rsQuery("Score")    = Request.Form("Score")
rsQuery("WonLost")  = Request.Form("WonLost")
rsQuery.Update

rsQuery.Close
cnDB.Close
%>

Dit is dus een warplanner voor een clan site.

Dit is exact hetzelfde script soort wat gebruik op mijn eigen site www.creepsworld.com/svencoop/ waar het prima werkt.

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:11
Die query waar je iets wilt aan toevoegen, en waarbij de fout komt dat het 'read-only' is ofzo, ziet die er ongeveer zo uit:
code:
1
SELECT * FROM tabel1, tabel2 WHERE tabel1.id = tabel2.id

maw, selecteer je gegevens uit 2 tabellen?

En ik moet eerlijk zeggen dat ik dat geen mooie manier vind om iets toe te voegen aan de databank. Eerst een select doen en dan een record toevoegen aan uw recordset en die dan wegschrijven. Bah. :r
Waarom gebruik je niet gewoon een SQL - INSERT statement?

https://fgheysels.github.io/


  • weerdo
  • Registratie: December 2000
  • Niet online
Zoek eens uit wat de commandopties zijn voor "rs.open".
Het is ook mogelijk om een odbc-datasource als read-only in te stellen. Controleer of dat het geval is.

Verwijderd

Topicstarter
Ben maar een newbie! :(
weet nog niet veel van ASP... anyway,
zo stond 't in mijn boek wat ik heb, en 't werkt (op mijn eigen site) prima.. duss..

anyway, ik ben dus niet bekent met 't INSERT dingetje...

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:11
Op woensdag 05 juni 2002 11:20 schreef Wiegje het volgende:

anyway, ik ben dus niet bekent met 't INSERT dingetje...
SQL tutorialtje of documentje zoeken. INSERT statement bekijken:
INSERT INTO tabel ...

https://fgheysels.github.io/


  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Los van de discussie of je met insert statements moet werken of met de recordset methods om updates uit te voeren, lijkt het me ook verstandig dat je eens op de foutmelding zoekt bij microsoft (of google).
Daar zul je na een beetje zoeken zien wat de meest voorkomende oorzaken van deze foutmelding zijn (inclusief oplossing).

Today's subliminal thought is:


Verwijderd

ik vind dat wel grappig trouwens:

select star from wars

maarja. Hoogstwaarschijnlijk rechten inderdaad. Zorg dat je schijfrechten hebt en kijk dan nog eens.

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 03-09 15:18

Crazy D

I think we should take a look.

Op woensdag 05 juni 2002 11:00 schreef whoami het volgende:
Verder bestaan er geen glazen bollen meer, dus met de beperkte uitleg die jij verschaft zul je niet kunnen geholpen worden.
Bestaan die in België niet meer? Had ik dat geweten, van de week nog eentje op Rotterdam Zuidplein in de winkel zien liggen (of zou dat nep zijn, aangezien ie het formaat van een grote kniker had, en er een tovenaar naast stond) :P

Check idd je schrijfrechten, niet alleen op de mdb file zelf, maar ook in die directory moet je kunnen schrijven (voor de .ldb file). En leer jezelf meteen queries aan... de recordset methodes zijn wel makkelijk, maar dat is een insert query ook, en een heel stuk efficienter (zeker als je eerst alle records ophaalt... select * from tabel where idveld=niet_bestaand_nummer werkt ook om een AddNew te doen, alleen hoeft dan niet eerst de hele tabel te worden geopend.

Exact expert nodig?


  • Sjnirk
  • Registratie: Maart 2001
  • Laatst online: 27-03-2025

Sjnirk

Hie vrieve

wat is je precieze foutmelding dan

Bikkelen gebeurt pas na 2:00


  • Boudi
  • Registratie: Oktober 2000
  • Laatst online: 09-08 02:32

Boudi

Always Coca Cola

Op woensdag 05 juni 2002 11:22 schreef whoami het volgende:
SQL tutorialtje of documentje zoeken. INSERT statement bekijken:
INSERT INTO tabel ...
Volgens mij is het allemaal hetzelfde. Het is wel voldoende om MyRs.Open "Tabelnaam" te doen, dan is de tabel opent. Doe je nu
code:
1
2
3
MyRs.AddNew
MyRs.Fields("veld") = waarde
MyRs.Update

dan wordt er tot de update-functie helemaal niks met de DB gedaan (hooguit een tabel of record gelocked als je de recordset zo geopend hebt) en wordt door de update-functie een SQL-INSERT commando gemaakt en uitgevoerd wat de juiste veranderingen in de DB doorvoert... ik vind deze manier eigenlijk mooier omdat al je db-operaties er in ASP dezelfde structuur hebben, ipv dat je allerlei lastige SQL-syntax moet gebruiken (en ja, die ken ik heus wel)... al is het alleen maar omdat Access een hoop SQL helemaal niet ondersteund...

Met of zonder mayonaise?


Verwijderd

Waarschijnlijk staat je Access DB in een directory waar IUSR_<machine_name> geen schrijfrechten op heeft, dat is wel nodig om het file te editen. Maak een directory aan en voeg daar de IUSR aan toe met modify rights.

Anders ff nakijken:
Staat je Access database niet op single user?

Gebruik adOpenKeySet(1), kan je meteen de identity opvragen.

Je locked pessimistic (adLockPessimistic(2)), de update failed als iemand het record ook heeft opgevraagd en de connectie staat nog open.

  • robjanssen
  • Registratie: September 2001
  • Laatst online: 02-08 16:10

robjanssen

Software Developer

Probeer eens:
code:
1
rsQuery.Open "SELECT * From wars", cnDB, 2, 3

Of anders:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<%
Set cnDB = Server.CreateObject("ADODB.Connection")
cnDB.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data source= C:\Inetpub\wwwroot\warplanner\warplanner.mdb"
cnDB.Open

strSQL = "INSERT INTO Wars (Date, Opponent, League, Map1, Map2, Screenshot1, Screenshot2, Players, Server, Score, WonLost) " _
     & "VALUES (" + CStr(Request.Form("Date")) + ", " _
     & CStr(Request.Form("Opponent")) + ", " _
     & CStr(Request.Form("League")) + ", " _
     & CStr(Request.Form("Map1")) + ", " _
     & CStr(Request.Form("Map2")) + ", " _
     & CStr(Request.Form("Screenshot1")) + ", " _
     & CStr(Request.Form("Screenshot2")) + ", " _
     & CStr(Request.Form("Players")) + ", " _
     & CStr(Request.Form("Server")) + ", " _
     & Cstr(Request.Form("Score")) + ", " _
     & Cstr(Request.Form("WonLost")) + ")"
cnDB.Execute strSQL

cnDB.Close
Set cnDB = Nothing
%>
Pagina: 1