WK 2026: Scoor de beste deals! Stel jouw winnende opstelling samen met behulp van ons advies.

[ASP] ADODB error + Access DB

Pagina: 1
Acties:

  • Aced
  • Registratie: December 2001
  • Laatst online: 03-06 14:27
OK, het zit dus zo: Voor school moeten we dus een webwinkel bouwen in ASP welke werkt met een Access DB. Vraag me niet waarom, het is niet mijn idee... Ik heb nu thuis op m'n eigen servertje IIS-5.0 draaien, om al die ASP code op te testen, maar om de een of andere reden kan ik geen records toevoegen aan de DB, en krijg ik de volgende error:

Error Type:
ADODB.Recordset (0x800A0CB3)
Object or provider is not capable of performing requested operation.
/opdracht14.asp, line 30

En dit is de ASP code die ik gebruik:

<% @Language = VBScript %>
<% Option Explicit %>

<%
Dim connectie, record
Dim omschrijving, prijs, controle

omschrijving = Request.Form("omschrijving")
prijs = Request.Form("prijs")

Set connectie = Server.CreateObject("ADODB.Connection")
connectie.Open "Data Source=c:\Inetpub\wwwroot\opdracht12.mdb; Provider=Microsoft.Jet.OLEDB.4.0;"

Set record = Server.CreateObject("ADODB.Recordset")
record.Open "Product", connectie, 2, 2

Private Function InvoerControle()
If Not IsNumeric(prijs) Then
controle = false
ElseIf omschrijving="" Then
controle = false
Else
controle = true
End If
End Function

Private Sub VoegProductToe()
InvoerControle()
If controle = True Then
record.AddNew
record("Omschrijving") = omschrijving
record("Prijs") = prijs
record.Update

Response.Write "<B>Het volgende product is toegevoegd:</B><BR>"
Response.Write "Productcode: " & record("Productcode") & "<BR>"
Response.Write "Omschrijving: " & record("Omschrijving") & "<BR>"
Response.Write "Prijs: " & record("Prijs") & "<BR>"
Response.Write "Voorraad: " & record("Voorraad") & "<BR>"

record.Close
connectie.Close
ElseIf controle = false Then
Response.Write "<b>Het product is niet toegevoegd aan de database.</b><BR><BR>Een oorzaak hiervoor kan incorrecte invoer zijn. Gebruik de Back-button van u browser om U invoer te controleren en het opnieuw te proberen."

record.Close
connectie.Close
End If
End Sub

%>

Heeft iemand ook maar enig idee wat ik moet doen om het werkende te krijgen?

Verwijderd

Post ff de code van deze funtie: InvoerControle()!!!!

Daar gaat ie mis, als ik goed geteld heb

[EDIT]

Ik neem aan dat het een functie is dus doe het ff zo dan:


If InvoerControle() = True Then

[EDIT]

  • SuperJERK
  • Registratie: Januari 2002
  • Laatst online: 01-05 23:20
Op dinsdag 18 juni 2002 12:40 schreef voetenzalf het volgende:
Post ff de code van deze funtie: InvoerControle()!!!!

Daar gaat ie mis, als ik goed geteld heb

[EDIT]

Ik neem aan dat het een functie is dus doe het ff zo dan:


If InvoerControle() = True Then

[EDIT]
Het gaat niet om de code, ik snap eigelijk ook niet waarom Aced die gepost heeft :+. De code is namelijk goed, maar op 1 of vage reden wil ie toch niks toevoegen.

Ik heb ook een servertje staan en daarp ISS geinstalleerd en ik krijg het dus ook niet voor elkaar om dingen aan de database toe te voegen.

Dus waarschijnlijk ligt het aan een instelling van ISS.

Wat trouwens wel vaag was is dat ie het eerst wel deed (bij mij en bij Aced). Maar zonder wat te veranderen deed ie het niet meer.

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:34
Gebruik gewoon een INSERT statement om records toe te voegen, veel makkelijker. Veel mooier, ... etc.

https://fgheysels.github.io/


  • SuperJERK
  • Registratie: Januari 2002
  • Laatst online: 01-05 23:20
Op dinsdag 18 juni 2002 12:47 schreef whoami het volgende:
Gebruik gewoon een INSERT statement om records toe te voegen, veel makkelijker. Veel mooier, ... etc.
Dat zou natuurlijk kunnen, maar waarom doet ie het op deze manier niet en volgens mij werkt het dan nog niet.

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:34
Op dinsdag 18 juni 2002 12:51 schreef SuperJERK het volgende:

[..]

Dat zou natuurlijk kunnen, maar waarom doet ie het op deze manier niet
Hoe ziet jouw SQL statement er uit waarmee je uw recordset opvult?
en volgens mij werkt het dan nog niet.
Waarom denk je dat? Heb je het al geprobeerd met een SQL INSERT statement?

https://fgheysels.github.io/


Verwijderd

Heb je "write" permission op c:\Inetpub\wwwroot\ ???

  • Aced
  • Registratie: December 2001
  • Laatst online: 03-06 14:27
Op dinsdag 18 juni 2002 12:57 schreef ScalaFreak het volgende:
Heb je "write" permission op c:\Inetpub\wwwroot\ ???
Ja, voor zover ik weet staat dat aan, ik heb het vandaag nog gecontroleerd...

Verwijderd

is die access table toevallig een gelinkte tabel??
dan moet je de link via het netwerkpath opzetten en niet iva een mapping

fout:
h:\....
goed:
\\pc\....

  • Aced
  • Registratie: December 2001
  • Laatst online: 03-06 14:27
Op dinsdag 18 juni 2002 13:43 schreef watnou het volgende:
is die access table toevallig een gelinkte tabel??
dan moet je de link via het netwerkpath opzetten en niet iva een mapping

fout:
h:\....
goed:
\\pc\....
De Access DB heb ik gewoon in de wwwroot staan op de server, als je dat bedoelt...

  • SuperJERK
  • Registratie: Januari 2002
  • Laatst online: 01-05 23:20
Op dinsdag 18 juni 2002 12:53 schreef whoami het volgende:

Hoe ziet jouw SQL statement er uit waarmee je uw recordset opvult?

Waarom denk je dat? Heb je het al geprobeerd met een SQL INSERT statement?
Ik kan ffies niet vinden hoe je dat moet doen met een SQL insert statement, maar ik vind het gewoon zo vaag dat ie het eerst wel deed en toen na een gegeven moment opeens niet meer.

Had je misschien een voorbeeldje van die SQL insert statement voor me?

  • DRAFTER86
  • Registratie: April 2002
  • Laatst online: 23:04
Vervang
record.AddNew
record("Omschrijving") = omschrijving
record("Prijs") = prijs
record.Update

met

sql="Insert into Product (Omschrijving,Prijs) Values ('" & Omschrijving & "'," & Prijs & ");"
Record.execute(sql)


(Bij het prijs record geen '' omdat het numeriek is!
en nattuurlijk sql ff dimmen :)

Succes

  • SuperJERK
  • Registratie: Januari 2002
  • Laatst online: 01-05 23:20
Op dinsdag 18 juni 2002 14:34 schreef DRAFTER86 het volgende:
Vervang
record.AddNew
record("Omschrijving") = omschrijving
record("Prijs") = prijs
record.Update

met

sql="Insert into Product (Omschrijving,Prijs) Values ('" & Omschrijving & "'," & Prijs & ");"
Record.execute(sql)


(Bij het prijs record geen '' omdat het numeriek is!
en nattuurlijk sql ff dimmen :)

Succes
Eeeeeej, aan jouw vroeg ik het helemaal niet :( ( ;) )
Bedankt! ik ga meteen ffies proberen!

  • SuperJERK
  • Registratie: Januari 2002
  • Laatst online: 01-05 23:20
Nou nog steeds,

Error Type:
ADODB.Recordset (0x800A0CB3)
Object or provider is not capable of performing requested operation.

Volgens mij ligt het "gewoon" aan IIS, iemand enig idee om wat aan te passen in de instellingen?

Wie heeft er trouwens IIS geinstalleerd?

  • DRAFTER86
  • Registratie: April 2002
  • Laatst online: 23:04
<zeikmodus>
Even voor de duidelijkheid het is IIS, internet information services ;)
</zeikmodus>
misschien is het je DB? Heb je daar wat vcerkeerd ingesteld? En wat als je een alleen het volgende probeert:

<% @Language = VBScript %>
<% Option Explicit %>

<%
Dim connectie, record,sql
Dim omschrijving, prijs

omschrijving = "test"
prijs = 123

Set connectie = Server.CreateObject("ADODB.Connection")
connectie.Open "Data Source=c:\Inetpub\wwwroot\opdracht12.mdb;Provider=Microsoft.Jet.OLEDB.4.0;"

Set record = Server.CreateObject("ADODB.Recordset")
sql="Insert into Product (Omschrijving,Prijs) Values ('" & omschrijving & "'," & prijs & ");"
record.execute(sql)



record.Close
connectie.Close


%>

Werkt dat wel?

  • SuperJERK
  • Registratie: Januari 2002
  • Laatst online: 01-05 23:20
Op dinsdag 18 juni 2002 14:47 schreef DRAFTER86 het volgende:
<zeikmodus>
Even voor de duidelijkheid het is IIS, internet information services ;)
</zeikmodus>
misschien is het je DB? Heb je daar wat vcerkeerd ingesteld? En wat als je een alleen het volgende probeert:

<code knip>

Werkt dat wel?
(ik had het al aangepast ;))

Als ik jouw code probeer krijg ik,

Error Type:
Microsoft VBScript runtime (0x800A01B6)
Object doesn't support this property or method: 'execute'
/opdracht14.asp, line 16

:?

Edit: line 16 = sql="Insert into Product (Omschrijving,Prijs) Values ('" & omschrijving & "'," & prijs & ");"

  • DRAFTER86
  • Registratie: April 2002
  • Laatst online: 23:04
Sorry sorry sorry
record.execute(sql)
moet zijn:
connectie.execute(sql)

(tis al weer ff geleden :))

  • SuperJERK
  • Registratie: Januari 2002
  • Laatst online: 01-05 23:20
Op dinsdag 18 juni 2002 15:08 schreef DRAFTER86 het volgende:
Sorry sorry sorry
record.execute(sql)
moet zijn:
connectie.execute(sql)

(tis al weer ff geleden :))
Error Type:
Microsoft JET Database Engine (0x80004005)
Operation must use an updateable query.
/opdracht14.asp, line 17

*zucht* ;(

  • DRAFTER86
  • Registratie: April 2002
  • Laatst online: 23:04
Aha die ken ik :)
Dat betekent dat je prmissies fout staan!
Welk os heb je?
Volgens mij moet je ook de system map goede rechten geven ivm met de sql-server-dll die daar staat maar dat weet k niet zeker , ik ben geen systeembeheerder. Als ik jou was zou ik voor deze gewoon ff googlen.

  • Aced
  • Registratie: December 2001
  • Laatst online: 03-06 14:27
Op dinsdag 18 juni 2002 15:24 schreef DRAFTER86 het volgende:
Aha die ken ik :)
Dat betekent dat je prmissies fout staan!
Welk os heb je?
Volgens mij moet je ook de system map goede rechten geven ivm met de sql-server-dll die daar staat maar dat weet k niet zeker , ik ben geen systeembeheerder. Als ik jou was zou ik voor deze gewoon ff googlen.
Het is een Windows 2000 Server met IIS-5... Ik heb onder andere wat dingen gevonden dat het mogelijk met NTFS permissies iets te maken heeft, maar dit schijnt het ook niet te zijn...

  • Aced
  • Registratie: December 2001
  • Laatst online: 03-06 14:27
Ik heb nu ook geprobeerd om de account die wordt gebruikt voor Anonymous access meer rechten te geven, maar dit schijnt ook niet te werken, het probleem blijft... Heeft iemand ook maar enig idee wat ik hier nog aan kan doen?

  • DRAFTER86
  • Registratie: April 2002
  • Laatst online: 23:04
ff gezocht en het antwoord:
Je moet de IUSR goed rechten geven in de map maar de db staat. Volgens mij kan dit gewoon in de verkenner (rechter muisknop en dan permissions ofzo maar ik heb geen w2k meer dus weet het niet psies) hier staat dan een user met als naam:
jouw-pcnaam/IUSR ofzoiets
En die moet goede rechten hebben in de map
Hoop dat het lukt en sorry dat ik niet zon goeie uitleg geeft maar k weet echt niet hoe ik het beter kan uitleggen ;)

Verwijderd

Om een antwoord te geven op je probleem,
het zijn zeker weten de rechten van je folder.

ik heb me ook suf ge-googled, heb de halve msdn-online library bekeken, heb enkele postings hier en op andere forums gezet.

maar dit probleem schijnt iedereen te kennen en niemand heeft de oplossing ff zo neergetypt.

bij mij werkt het nou. vraag me niet hoe ik het voor elkaar heb gekregen :) je moet in ieder geval Iusr rechten geven denk ik..)

en als iemand een link weet naar een uitleg of zelf ff wat kan typen :)

  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
code:
1
2
3
4
5
6
7
ConnString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=c:\blabal\grr.mdb"
Set objConn = Server.CreateObject( "ADODB.Connection" )
objConn.Open ConnString

objConn.Execute( "INSERT INTO tblTable (fldField1) VALUES( 'eenwaarde' );" )

Set objRS = objConn.Execute( "SELECT * FROM tblTable;" )

Met deze code moet het gewoon werken. Een standaard installatie van IIS geeft je genoeg rechten om normaal een database te gebruiken dus tenzij je de boel hebt lopen vernaggelen zou het gewoon moeten werken. :)

  • Aced
  • Registratie: December 2001
  • Laatst online: 03-06 14:27
Op dinsdag 18 juni 2002 17:06 schreef Gert het volgende:
code:
1
2
3
4
5
6
7
ConnString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=c:\blabal\grr.mdb"
Set objConn = Server.CreateObject( "ADODB.Connection" )
objConn.Open ConnString

objConn.Execute( "INSERT INTO tblTable (fldField1) VALUES( 'eenwaarde' );" )

Set objRS = objConn.Execute( "SELECT * FROM tblTable;" )

Met deze code moet het gewoon werken. Een standaard installatie van IIS geeft je genoeg rechten om normaal een database te gebruiken dus tenzij je de boel hebt lopen vernaggelen zou het gewoon moeten werken. :)
Tja, en dat is dus ook het vreemde eraan... Voor zover ik weet heb ik dus absoluut niets verandert...
Pagina: 1