[ASP / Access] - Operation must use an updateable query

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Nutcaze
  • Registratie: Oktober 1999
  • Laatst online: 16-08 06:35
Het probleem is als volgt: eens in de zoveel tijd krijg ik deze error. Ik heb onderstaande pagina geraadpleegd en kwam tot de conclusie dat niet 1 van de mogelijkheden bij mij van toepassing is.

http://support.microsoft.com/kb/175168

Het gaat altijd om een insert into query. Zelfde connectie wordt altijd gebruikt. De database heeft slechts 1 tabel met als primary key een autonummering-veld. Verder geen restricties. Er worden verder geen records geopend in deze database. Het is ook niet zo dat de database veelvuldig gebruikt wordt voor zo'n query. Het gaat bijv. een tijd goed en dan ineens (zoals toevallig een uur geleden, verder niet relevant maar...) ging het drie achter elkaar fout. Tussen die 3 errors door telkens minimaal 40 seconden terwijl de insert query niet langer dan 1/10 sec.nodig heeft, vaak zelfs 0,00000 sec. Iemand enig idee waar het nog meer aan kan liggen?

Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.


Acties:
  • 0 Henk 'm!

  • dj_vibri
  • Registratie: Oktober 2007
  • Laatst online: 16-09 17:16

dj_vibri

int(e^x) = f(u)^n

en misschien de code van de insert-query?

Last night I lay in bed looking up at the stars in the sky and I thought to myself, where the heck is the ceiling.


Acties:
  • 0 Henk 'm!

  • Nutcaze
  • Registratie: Oktober 1999
  • Laatst online: 16-08 06:35
code:
1
con.Execute("insert into DigitaalArchief (recordID, TypeDocumentID, Extensie, Datum, SchadeID, PolisID, RelatieID, TPID, Beschrijving,bestandsnaam) values ('901021', '99', 'PDF', '28-4-2009', '174292', '', '', '900', 'Omschrijving', 'test.pdf')")


Dan staat er nog een veld in de db genaamd die als auto-nummering dient.

Query is overigens goed want ik heb de foutlopende queries naar mezelf toegemaild en daarna rechtsstreeks in de database ingevoerd en dat werkte wel.

[ Voor 30% gewijzigd door Nutcaze op 28-04-2009 13:18 . Reden: Queryfoutje aangepast ]

Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.


Acties:
  • 0 Henk 'm!

  • dj_vibri
  • Registratie: Oktober 2007
  • Laatst online: 16-09 17:16

dj_vibri

int(e^x) = f(u)^n

Hey,

volgens mij zal dit een permission probleem zijn. Je moet 'modify' rechten geven aan de ASPNET account op je database.

Windows Explorer --> Rechtermuis op je database bestand --> properties --> security tab --> ASPNET account toevoegen met min. modify rechten.

tenzei dit in orde is natuurlijk :)

ps: kan zijn dat het de rechten op de 'FOLDER' met de database moet zijn, heb hier zo meteen geen test-omgeving voor handen...

[ Voor 17% gewijzigd door dj_vibri op 28-04-2009 13:22 . Reden: ps'je ]

Last night I lay in bed looking up at the stars in the sky and I thought to myself, where the heck is the ceiling.


Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 10:11

TeeDee

CQB 241

Ten eerste: Er even van uitgaande dat in ieder geval alle *-ID velden een integer veld zijn is de insert ietwat vreemd.
Ten tweede: laat eens de code zien waarbij je de conn. opbouwt.
Ten derde: is de DB niet gelocked?

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • Nutcaze
  • Registratie: Oktober 1999
  • Laatst online: 16-08 06:35
dj_vibri schreef op dinsdag 28 april 2009 @ 13:20:
Hey,

volgens mij zal dit een permission probleem zijn. Je moet 'modify' rechten geven aan de ASPNET account op je database.

Windows Explorer --> Rechtermuis op je database bestand --> properties --> security tab --> ASPNET account toevoegen met min. modify rechten.

tenzei dit in orde is natuurlijk :)
Het gaat 99 van de 100 keer wel goed met exact dezelfde connectiestring. Lijkt me toch niet dat het dan daar aan kan liggen?

Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.


Acties:
  • 0 Henk 'm!

  • Nutcaze
  • Registratie: Oktober 1999
  • Laatst online: 16-08 06:35
TeeDee schreef op dinsdag 28 april 2009 @ 13:22:
Ten eerste: Er even van uitgaande dat in ieder geval alle *-ID velden een integer veld zijn is de insert ietwat vreemd.
Ten tweede: laat eens de code zien waarbij je de conn. opbouwt.
Ten derde: is de DB niet gelocked?
1: geef ik toe, de meeste Id velden zijn integer. M'n collega heeft deze database gemaakt en die neemt het verder niet zo nauw.
2: is gewoon een standaard connectie zoals alle andere:
code:
1
2
Set con = Server.CreateObject("ADODB.Connection")
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sDatabasepath & ";Persist Security Info=False"

3: ik kan het me moeilijk voorstellen. Enige wat er in gebeurt is insert into en af en toe een read met adLockReadOnly. Ik zou niet weten wat 'm verder zou kunnen locken.

Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.


Acties:
  • 0 Henk 'm!

  • dj_vibri
  • Registratie: Oktober 2007
  • Laatst online: 16-09 17:16

dj_vibri

int(e^x) = f(u)^n

TeeDee schreef op dinsdag 28 april 2009 @ 13:22:
Ten derde: is de DB niet gelocked?
Ook een mogelijkheid natuurlijk, dat wanneer er iets fout gelopen is de DB geduurde een tijd open blijft staan en vervolgens auto. sluit en terug beschikbaar is?

Indien dit het geval is, was ik in ieder geval in de buurt met de 'modify' rechten :) :p

Last night I lay in bed looking up at the stars in the sky and I thought to myself, where the heck is the ceiling.


Acties:
  • 0 Henk 'm!

  • Pogostokje
  • Registratie: September 2001
  • Laatst online: 09:27

Pogostokje

* twiet *

Gaat het om een access database?
Bij openen maakt deze een <databasenaam>.lck bestand aan. Als dit bestand niet kan worden aangemaakt of worden beschreven, kan de database niet geopend worden. Deze file verdwijnt weer wanneer de laatste database sessie wordt afgesloten. Je kunt om die reden geen file rechten zetten op deze *.lck file, want hij verdwijnt weer. Daarom moet het op de hele folder zo zijn dat de user waaronder de website draait (dit hoeft niet de iusr te zijn, dat kan/moet je zelf instellen) rechten heeft om nieuwe files aan te maken.
Het kan voorkomen dat deze file door de 1e sessie geopend kan worden, bij vervolg sessies niet meer, wat kan verklaren waarom het vaak wel maar soms niet werkt.

[ Voor 12% gewijzigd door Pogostokje op 28-04-2009 13:35 ]

... ook ik heb soms per ongeluk gelijk.


Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 10:11

TeeDee

CQB 241

Nutcaze schreef op dinsdag 28 april 2009 @ 13:28:
[...]
1: geef ik toe, de meeste Id velden zijn integer. M'n collega heeft deze database gemaakt en die neemt het
verder niet zo nauw.
Dus? Geen excuus imo om het zo te houden. In ieder geval tegen je collega zeggen dat het (op z'n zachtst) gezegd niet netjes is.
2: is gewoon een standaard connectie zoals alle andere:
code:
1
2
Set con = Server.CreateObject("ADODB.Connection")
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sDatabasepath & ";Persist Security Info=False"
Set bij con.Open ook eens explicitiet dat deze geopend mag worden met lees/schrijf rechten (3).
3: ik kan het me moeilijk voorstellen. Enige wat er in gebeurt is insert into en af en toe een read met adLockReadOnly. Ik zou niet weten wat 'm verder zou kunnen locken.
Nee, want zeker weten is te moeilijk of te veel werk? Als de Access DB geopend is in Access zelf dan kan deze gelocked worden. Iets met een .lock bestand erin. Misschien wordt de connectie ook niet netjes gesloten bij een Error of iets dergelijks?

[ Voor 9% gewijzigd door TeeDee op 28-04-2009 13:36 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • Nutcaze
  • Registratie: Oktober 1999
  • Laatst online: 16-08 06:35
Ik heb zojuist weer een melding gehad waarin ik de connectiestring had staan en daar staat het volgende in:
Mode=Read|Share Deny Read|Share Deny Write

Het zal dus inderdaad wel aan de connectiestring liggen. Vreemd dat ik daar nooit eerder problemen mee gehad heb met andere databases die een zelfde connectiestring gebruiken en veel vaker geraadpleegd, beschreven worden.

Maar goed eerst maar eens afwachten. Mode=3 moet er in staan toch?

Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.


Acties:
  • 0 Henk 'm!

  • Nutcaze
  • Registratie: Oktober 1999
  • Laatst online: 16-08 06:35
Mode=3;Jet OLEDB:Database Locking Mode=1 dit staat er nu bij in de connectiestring. Het heeft allemaal geen nut. Fouten blijven.

Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Welke server gebruik je? Ik meen me te herinneren dat JET nogal gaar is op W2k8 en misschien W2k3 ook nog wel (maar zeker weten doe ik 't niet).
Sowieso wellicht eens de moeite waard om naar MSSQL Express te kijken denk ik; je kunt relatief makkelijk migreren, 't is gratis en is meer geschikt als RDBMS voor websites dan MS Access :P

(En natuurlijk kan eender welk ander RDBMS als MySQL etc. natuurlijk ook)

[ Voor 48% gewijzigd door RobIII op 29-04-2009 12:31 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 21-09 22:35
Kan me herinneren dat je ook dergelijke meldingen krijgt als je een insert doet terwijl er een ander een recordset open heeft die een serverside cursor heeft of op een andere manier een een lock op je table.

Lang geleden trouwens aangezien Access een beetje heeft afgedaan voor mij in de professionele sfeer :P

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • Nutcaze
  • Registratie: Oktober 1999
  • Laatst online: 16-08 06:35
Het gaat om een Windows 2003 server. Ik heb eigenlijknog nooit eerder die problemen gehad. Migratie naar SQL server Express is inderdaad de enige optie die ik nog zie. Databaseserver is al gewoon aanwezig dus wat dat betreft....

Het irriteert me alleen dat ik 't niet opgelost krijg want dat zou betekenen dat andere Access databases hier ook problemen mee kunnen ondervinden.

Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.

Pagina: 1