Toon posts:

[ASP] Probleem met ALTER

Pagina: 1
Acties:
  • 116 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb al vanalles geprobeerd, maar ik krijg het niet voor mekaar. Constant krijg ik deze foutmelding :

Microsoft JET Database Engine fout '80040e14'

De database-engine kan de tabel tblTemp niet vergrendelen. De tabel is momenteel in gebruik door een andere gebruiker of een ander proces.

code:
1
2
3
4
5
for i=1 to n
   temp = Request.Form("R"&i&"")
   daoRecord.Open "ALTER Table tblTemp ADD Rubriek"&i&" varchar(30)", daoConn
   daoRecord.Open "UPDATE tblTemp set Rubriek"&i&" = '"&temp&"' where Rubriek"&i&" = null", daoConn
next


Ik gebruik wel vaker select en insert opdrachten, moet je soms voor een alter opdracht een andere methode gebruiken ?

Er zit verder ook niemand in de DB en wanneer ik de queries handmatig op de DB loslaat, werken ze gewoon :(

[ Voor 28% gewijzigd door Verwijderd op 28-01-2003 15:30 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 12:26
Zolang je dat alter statement niet gecommit hebt, kan je de tabel niet updaten.
Net hetzelfde als je bv in Access uw tabel in 'ontwerpmode' zet, en laat dan uw applicatie eens een rij toevoegen, updaten of verwijderen in die tabel. Dat zal ook niet lukken, en je zult dezelfde fout krijgen.

Herschrijf je code eens als volgt:
Doe eerst een alter table (die hoef je slechts 1x te doen per tabel, en niet voor ieder record).
Doe dan in die lus uw update. (Doe het ook enkel in een lus als het echt nodig is).

https://fgheysels.github.io/


  • DukeMan
  • Registratie: Mei 2000
  • Niet online
en wat als je daoconn.execute "ALTER Table tblTemp ADD .....???

Werkt dat niet? Je moet in ieder geval zorgen dat je alle andere connecties en recordsets hebt gesloten (in de pagina) ... dat kan namelijk ook de uitvoer verhinderen...

Verwijderd

volgens mij moet je op een andere manier je recordset openen als je iets wilt wijzigen of toevoegen, dan bij selecteren... hoe het ook al weeer zat weet ik niet precies meer

Verwijderd

Topicstarter
Het vervelende is dat het wel in een lus moet. Er moet namelijk voor een variabel aantal velden een variabel aantal kolommen aangemaakt worden.... Die lus is dus wel degelijk nodig.

Verwijderd

Topicstarter
Verwijderd schreef op 28 January 2003 @ 15:33:
volgens mij moet je op een andere manier je recordset openen als je iets wilt wijzigen of toevoegen, dan bij selecteren... hoe het ook al weeer zat weet ik niet precies meer
weet iemand hier meer over ?????

Verwijderd

Verwijderd schreef op 28 January 2003 @ 15:35:
Het vervelende is dat het wel in een lus moet. Er moet namelijk voor een variabel aantal velden een variabel aantal kolommen aangemaakt worden.... Die lus is dus wel degelijk nodig.
Brak datamodel?

Verwijderd

Verwijderd schreef op 28 January 2003 @ 15:36:
[...]


weet iemand hier meer over ?????
google?

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 09:37

Basszje

Reisvaap!]

hoe set je de recordlocks als je de connectie opent ? Die kan je nl ook beinvloed. Wellicht heeft dat effect.

En kijk of die DB bv niet op read-only staat of een of ander iets de tabel heeft gelocked.
Plus is het access? heb je access geladen met die database ? Probeer die dan eens af te sluiten

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


Verwijderd

Topicstarter
Dat slaat ook nergens op...dat noemen ze nou dynamisch, maar misschien is wat ik wil wel te dynamisch :)

  • whoami
  • Registratie: December 2000
  • Laatst online: 12:26
Tweakie en Gofur:
Gebruik es ff die edit knop ipv meerdere posts na elkaar te doen

Ik denk ook dat jouw datamodel brak is, als je in de applicatie-logica het data-model moet gaan aanpassen. In fact, ik denk het niet, als je dat moet doen, dan is jouw logica brak.

Heb je al eens een artikel gelezen over data modellering, database ontwerp of normalisatie? Dan zal je zien dat er andere manieren zijn om jouw probleem op te lossen. (Gebruik maken van koppeltabellen etc.)

Verwijderd schreef op 28 januari 2003 @ 15:38:
[...]


Dat slaat ook nergens op...dat noemen ze nou dynamisch, maar misschien is wat ik wil wel te dynamisch :)


Dat slaat niet nergens op. ;)
Dat is zelfs een heel goede opmerking. :P
Zie ook mijn post. Een datamodel dat 'dynamisch' is zoals jij het zegt, is gewoon uber-fout.

[ Voor 30% gewijzigd door whoami op 28-01-2003 15:41 ]

https://fgheysels.github.io/


Verwijderd

het is maar een vraag... [tjek vraagteken :) ] misschien heb je het niet goed gemodelleerd, waardoor je dus nu tegen een probleem aan loopt

Verwijderd

Topicstarter
Basszje schreef op 28 januari 2003 @ 15:38:
hoe set je de recordlocks als je de connectie opent ? Die kan je nl ook beinvloed. Wellicht heeft dat effect.

En kijk of die DB bv niet op read-only staat of een of ander iets de tabel heeft gelocked.
Plus is het access? heb je access geladen met die database ? Probeer die dan eens af te sluiten
code:
1
2
Set daoConn = Server.CreateObject("ADODB.Connection")
Set daoRecord = Server.CreateObject("ADODB.RecordSet")


Het is inderdaad access. Ik heb al vanalles geprobeerd, zelfs access helemaal afgesloten, heeft allemaal geen nut. Volgens mij ligt het idd aan die recordsets
Pagina: 1