Toon posts:

ODBC en ASP Access koppeling

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben al de hele dag opzoek wat de rede kan zijn dat 't niet lukt..

Ik wil een enquete op mijn windows XP pro machine draaien. Ik heb IIS geinstalleerd. Verder heb ik een leuk voorbeeld van ASP gevonden (http://www.webwizguide.com/asp/tutorials/default.asp) wat ik gebruikt heb.
De gegevens uit de access database worden mooi weergegeven, alleen veranderingen pikt hij niet. Ik krijg telkens een errormelding:

* Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] Could not delete from specified tables.
/guestbook/guestbook_example/delete_entry.asp, line 82


Wie weet waar de fout kan zitten, ik word er gek van 8)7

Zelf heb ik 't idee dat het ergens bij de ODBC fout kan zitten. Alleen ik vraag me af of dat klopt aangezien ik wel gegevens uit de database kan lezen maar niet kan veranderen. Zowiezo heb ik de ballen verstand van dat hele ODBC gebeuren. Ik heb toen straks heel Tweakers afgezocht of ik een oplossing kon vinden (stond wel veel nuttigs bij maar ik kom er nog niet uit), ik ben er inmiddels achter wat het nut van die ODBC is.

  • Postman
  • Registratie: Februari 2000
  • Laatst online: 15-08 20:11
Tja, leuk zo'n error melding maar dat kan van alles zijn. Post dus aub ff je code. Hij loopt vast op regel 82, dus daar gaat iets niet goed.
Is je database misschien niet gelocked? Of readonly? Is je ODBC koppeling wel goed ingesteld?

  • CrashOne
  • Registratie: Juli 2000
  • Niet online

CrashOne

oOoOoOoOoOoOoOoOoOo

Je gastenboek zal wel read only zijn of je hebt jezelf geen schrijf rechten gegeven.....

Huur mij in als freelance SEO consultant!


Verwijderd

Topicstarter
Daar heb ik ook al naar zitten kijken nadat ik info had gevonden dat dat het probleem zou kunnen zijn. Je moest dan met Windows Explorer naar de dir. gaan waar je je www materiaal hebt staan en daar de rechten goed van zetten. Ik zie daar helemaal geen tabblad met rechten staan (mijn pc start ook op zonder dat je een user of password hoeft te gebruiken).

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<%
%>
<html>
<head>
<title>Delete Entry Select</title>
</head>
<body bgcolor="white" text="black">
<%
'Dimension variables
 dim con
 set con = server.createobject("adodb.connection")
 con.open connstring


Dim adoCon          'Holds the Database Connection Object
Dim rsGuestbook         'Holds the recordset for the records in the database
Dim strSQL          'Holds the SQL query for the database

'Create an ADO connection odject
Set adoCon = Server.CreateObject("ADODB.Connection")

'Set an active connection to the Connection object using a DSN-less connection
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("guestbook.mdb")

'Set an active connection to the Connection object using DSN connection
'adoCon.Open "DSN=guestbook"

'Create an ADO recordset object
Set rsGuestbook = Server.CreateObject("ADODB.Recordset")

'Initialise the strSQL variable with an SQL statement to query the database
strSQL = "SELECT tblComments.* FROM tblComments;"

'Open the recordset with the SQL query 
'********* OP DE VOLGENDE REGEL LOOPT 'T DUS FOUT (REGEL 82)********
rsGuestbook.Open strSQL, adoCon

'Loop through the recordset
Do While not rsGuestbook.EOF
    
    'Write the HTML to display the current record in the recordset
    Response.Write ("<br>")
    Response.Write ("<a href=""delete_entry.asp?ID=" & rsGuestbook("ID_no") & """>")
    Response.Write (rsGuestbook("Name")) 
    Response.Write ("</a>")
    Response.Write ("<br>")
    Response.Write (rsGuestbook("Comments"))
    Response.Write ("<br>")

    'Move to the next record in the recordset
    rsGuestbook.MoveNext

Loop

'Reset server objects
rsGuestbook.Close
Set rsGuestbook = Nothing
Set adoCon = Nothing
%>
</body>
</html>

Ik wil gewoon graag ff een stukje code zien dat werkt (het mag dus ook een ander stuk code zijn dat met een database samen werkt invoegen/deleten/veranderen, etc..). Dan weet ik zeker dat dat gedeelte werkt en kan ik verder gaan met een pagina ontwerpen.
Dus als iemand een simpel voorbeeld heeft dat werkt, heel graag!!

Ooja, ik was toen straks met iemand in gesprek die mij vertelde dat je altijd een global.asa file moet hebben. In het voorbeeld wat ik gebruikt heb (zie de url van mijn eerste post) stond die file niet vermeld.

  • Postman
  • Registratie: Februari 2000
  • Laatst online: 15-08 20:11
In de IIS manager kun je rechten instellen.
Je code heeft een select statement, maar ik geloof wel dat je delete klopt. Het zal dus wel een rechten probleem zijn (maar post je delete statement toch ook maar ff, je post editten mag ook).

Verwijderd

Topicstarter
De gehele code zal ik hier maar niet neer zetten omdat 't dan teveel code word, maar je kunt alles terugvinden op: Hier staat de gehele code van het voorbeeld:
http://vouwfiets.danovitsch.dnsq.org/Tweakers-net/asp/
FlamerX schreef op 21 February 2003 @ 20:52:
In de IIS manager kun je rechten instellen.
Je code heeft een select statement, maar ik geloof wel dat je delete klopt. Het zal dus wel een rechten probleem zijn (maar post je delete statement toch ook maar ff, je post editten mag ook).
Ok, kun je heel goed gelijk in hebben, maar ik kom er niet uit hoe je die rechten dan goed moet zetten en waar dat moet.

Ik doe bij IIS het volgende, bij Default Web Site maak ik een map aan (Viritual directery) dan ga ik naar permissions wizzard. Daar kies ik "select new security settings from a template" en dan "Public Web Site".
Maar dit schiet dus niet echt op blijkbaar.

  • Folkert
  • Registratie: September 2001
  • Laatst online: 10-07 07:58
Ik had dezelfde melding. Klik met je rechtermuisknop op de betreffende map. Selecteer websharing en zorg ervoor dat deze correct is ingesteld. Als het goed is zou het moeten werken...

Verwijderd

Topicstarter
Folkert schreef op 22 February 2003 @ 00:00:
Ik had dezelfde melding. Klik met je rechtermuisknop op de betreffende map. Selecteer websharing en zorg ervoor dat deze correct is ingesteld. Als het goed is zou het moeten werken...
Ik heb dit geprobeert. Heb daar alles wagenwijd open staan maar toch werkt het niet.
Ik weet het echt niet meer :'(

Het volgende heb ik gedaan:
Rechter muisknop op de directory, daar Properties, dan 't tabblad "Web Sharing".
Daar staat 1 alias. Access permissions staan alle 4 aan, Application permissions = Execute (includes scripts). Dus dit zou goed moeten zijn!

Verwijderd

Topicstarter
Verwijderd schreef op 22 February 2003 @ 20:53:
[...]

Ik heb dit geprobeert. Heb daar alles wagenwijd open staan maar toch werkt het niet.
Ik weet het echt niet meer :'(

Het volgende heb ik gedaan:
Rechter muisknop op de directory, daar Properties, dan 't tabblad "Web Sharing".
Daar staat 1 alias. Access permissions staan alle 4 aan, Application permissions = Execute (includes scripts). Dus dit zou goed moeten zijn!
[edit]
Ok.. Ben weer eens verder aan het proberen geweest. De volgende code werkt wel!

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<html>
<head>
<title>My First ASP Page</title>
</head>
<body bgcolor="white" text="black">
<%
 Dim strMessage
strMessage = "Hello World"
 Response.Write (strMessage)
 Response.Write ("<br>")
 Response.Write ("The time on the server is: " & Time())
 %>
 </body>
</html>


Ik krijg mooi "Hello World The time on the server is: 9:39:30 PM " tezien.

Asp doet het dus wel! Alleen gegevens van een database veranderen lukt nogsteeds niet.

Heeft iemand een voorbeeld (met een Access database) waarvan hij zeker weet dat 't werkt?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:16

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 22 February 2003 @ 20:53:
[...]


Ik heb dit geprobeert. Heb daar alles wagenwijd open staan maar toch werkt het niet.
Ik weet het echt niet meer :'(

Het volgende heb ik gedaan:
Rechter muisknop op de directory, daar Properties, dan 't tabblad "Web Sharing".
Daar staat 1 alias. Access permissions staan alle 4 aan, Application permissions = Execute (includes scripts). Dus dit zou goed moeten zijn!
:?
Je moet het tabblad security hebben en daar het IUSR_computernaam account de juiste rechten geven.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
gorgi_19 schreef op 22 February 2003 @ 21:54:
[...]

:?
Je moet het tabblad security hebben en daar het IUSR_computernaam account de juiste rechten geven.
Daar ben ik niet aangekomen en volgensmij staan die standaard al goed.

Afbeeldingslocatie: http://vouwfiets.danovitsch.dnsq.org/Tweakers-net/Authentication_methods.PNG

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:16

gorgi_19

Kruimeltjes zijn weer op :9

Die moet je hier niet instellen... Ik mag hopen dat je IUSR_computernaam account niet overal schrijfrechten heeft in alle folders...

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Waar moet je die dan instellen?

Verwijderd

'Create an ADO recordset object
Set rsGuestbook = Server.CreateObject("ADODB.Recordset")

'Initialise the strSQL variable with an SQL statement to query the database
strSQL = "SELECT tblComments.* FROM tblComments;"

' Hier het volgende invoegen om de database te locken terwijl je iets delete:
' je moet om deze constante te gebruiken wel het bestand adovbs.inc
' in je asp pagina opgenomen hebben met de volgende lijn in het
' begin van je asp pagina.
' <!- INCLUDE FILE="adovbs.inc" -->
' het bestand adovbs.inc staat in alle waarschijnlijkheid al ergens op je hd.' Je kan
' dat bestandje overal vinden


rsGuestbook.Locktype = adLockOptimistic


'Open the recordset with the SQL query
'********* OP DE VOLGENDE REGEL LOOPT 'T DUS FOUT (REGEL 82)********
rsGuestbook.Open strSQL, adoCon

Verwijderd

Topicstarter
Ik snap er echt niks meer van. Nu begint hij telkens de melding: "The page cannot be displayed. There are too many people accessing the Web site at this time." te geven.
Hoe kan dat!! Ik ben de enige die van die pagina af weet :?

Ik geef het op, het is me te waazig allemaal. Het had eigelijk morgen moeten werken, maar dat feest kan dus niet door gaan. We doen 't wel handmatig oplossen (ookal is dat 10x meer werk)....

Iedereen bedankt voor z'n hulp en emotionele steun in deze moeilijke dagen..

Verwijderd

sluit je de database op het einde van de query of de pagina? Dat moet zodat de database niet meer gelocked staat.

rsGuestbook.close

Hmm te vroeg op enter gedrukt.. ik zie dat dat al gebeurd.

herstart je webserver service eens en zie wat er dan gebeurd.

[ Voor 32% gewijzigd door Verwijderd op 23-02-2003 20:44 ]


  • Folkert
  • Registratie: September 2001
  • Laatst online: 10-07 07:58
Verwijderd schreef op 23 February 2003 @ 20:26:
Ik snap er echt niks meer van. Nu begint hij telkens de melding: "The page cannot be displayed. There are too many people accessing the Web site at this time." te geven.
Hoe kan dat!! Ik ben de enige die van die pagina af weet :?

Ik geef het op, het is me te waazig allemaal. Het had eigelijk morgen moeten werken, maar dat feest kan dus niet door gaan. We doen 't wel handmatig oplossen (ookal is dat 10x meer werk)....

Iedereen bedankt voor z'n hulp en emotionele steun in deze moeilijke dagen..
Valt wel mee... asp wordt wel geparsed dus de engine is wel ok, daar hoef je je niet op te richten. Het moet aan de rechten liggen, check de rechten in de map, check de acces file.... Ben je correct ingelogd om de rechten toe te kennen?

[ Voor 57% gewijzigd door Folkert op 24-02-2003 11:04 ]


  • prutsger
  • Registratie: Oktober 2001
  • Laatst online: 10:55
Gebruik je NTFS? Zie mijn post van een aantal dagen terug. Had hetzelfde probleem en kreeg een soortgelijke error. Na de partitie naar FAT32 omgezet te hebben werkte het wel. Ligt dus toch aan derechten. Aan de post van gorgi_19 maak ik op dat je de IUSR rechten ergens anders in moet stellen dan in dat screenshot? Dat was ook het enige waar ik die instelling kon vinden. Misschien kan gorgi_19 nog reageren dan over waar je het wel in moet stellen, want daar help je zowel de topicstarter als mij mee... gebruik toch liever NTFS
Pagina: 1