Toon posts:

[ASP] Error: "Data source name too long"

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik weet nog niet al te veel van asp, maar ik heb een simpel gastenboek gemaakt. Als ik op submit druk wordt er gelinkt naar fillguestbook.asp om het comment in het gastenboek te plaatsen.

maar ik krijg na het drukken op submit deze error:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Driver Manager] Data source name too long

/jeroenkuiper/fillguestbook.asp, line 20


wie kan me helpen?

gr jeroen

  • whoami
  • Registratie: December 2000
  • Laatst online: 20:46
Hoi.
Welkom op GoT en P&W. ;)

Je geeft wel veel te weinig info wil men je hier goed kunnen helpen. Daarom raad ik je aan dat je eerst eens even deze topics doorleest:

Welkom in P&W (FAQ-15/10/2002)
Welkom in P&W -> Quickstart (update 2/10/2002)
Hierin staat wat er allemaal kan en niet kan op dit forum en welke gegevens je minimaal moet vermelden wil men je kunnen helpen.

[ Voor 7% gewijzigd door whoami op 21-11-2002 19:54 ]

https://fgheysels.github.io/


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

robjanssen

Software Developer

En wat staat er op:
/jeroenkuiper/fillguestbook.asp, line 20

Post anders ff je code.

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

gorgi_19

Kruimeltjes zijn weer op :9

En gooi je foutmelding eens in Google.. Moet ook wel eea aan hints opleveren..

http://www.google.nl/sear...rce+name+too+long+%22&lr=

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
ik ga het ff doorlezen hier is de code van fillguestbook.asp:

<%
dim myconnection
dim myrecordset

set myconnection = server.createobject("adodb.connection")
set myrecordset = server.createobject("adodb.connection")

dim mysqlstatement
mysqlstatement = "insert into tblguestbook (gbkname, gbkcomments) "_
& "values ('" _
& request("paramname") & "','" _
& request("paramcomments") & "')"

call myconnection.open( _
"driver={microsoft access driver (*.mdb)};"& _
"DBQ=" & Server.MapPath("/jeroenkuiper/db/dbGuestbook.mdb"))
call myrecordset.open (mysqlstatement, myconnection)

myrecordset.close
myconnection.close
%>

Verwijderd

code:
1
2
3
call myconnection.open( _
"driver={microsoft access driver (*.mdb)};"& _
"DBQ=" & Server.MapPath("/jeroenkuiper/db/dbGuestbook.mdb"))

moet dus
code:
1
2
3
myconnection = _
"driver={microsoft access driver (*.mdb)};"& _
"DBQ=" & Server.MapPath("/jeroenkuiper/db/dbGuestbook.mdb"))

zijn.

  • watzie
  • Registratie: Juni 2001
  • Laatst online: 07-07 16:26
Ik zou zelf altijd een DNS aanmaken ipv het pad naar de .mdb...
probeer trouwens eens OF de driveletter ervoor te zetten OF die eerste slash weg te halen en gebruik dan meteen backslashes \

Verwijderd

Op verschillende ASP sites is gepubliceerd dat gebruik van DSNs leiden tot performanceverlies tov DSNless connecties. Hoewel een SDN dus een mooie generieke oplossing is, heeft het ook nadelen. Ook niet iedere ASP host voorziet in het aanmaken van DSNs.

Verwijderd

Verwijderd schreef op 21 november 2002 @ 20:25:
call myconnection.open( _
"driver={microsoft access driver (*.mdb)};"& _
"DBQ=" & Server.MapPath("/jeroenkuiper/db/dbGuestbook.mdb"))
call myrecordset.open (mysqlstatement, myconnection)
%>
Wat is call :?
Maak dit er gewoon van :
code:
1
2
3
4
5
set myconnection =Server.CreateObject("ADODB.Connection") 
myconnection.ConnectionString = _
"driver={microsoft access driver (*.mdb)};"& _
"DBQ=" & Server.MapPath("/jeroenkuiper/db/dbGuestbook.mdb")
myconnection.Open

Als je het nog mooier wilt maken, maak dan een ODBC aan
dan wordt dit het
code:
1
2
3
set myconnection =Server.CreateObject("ADODB.Connection") 
myconnection.ConnectionString = "DNS = Guestbook"
myconnection.Open

[ Voor 9% gewijzigd door Verwijderd op 22-11-2002 08:40 ]


  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Set myconnection = server.createobject("adodb.connection")
Set myrecordset = server.createobject("adodb.Recordset")

Enne zou je van recordset niet gewoon een recordset maken? ipv weer een connection?

Verwijderd

Topicstarter
ohja.. tnx... ik ga het vanmiddag proberen.. zou stomme fout zijn :)

Verwijderd

Topicstarter
Ik kom nu wat verder, maar nu krijg ik de volgende error:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x4a0 Thread 0x4d0 DBC 0xd917974 Jet'.

/jeroenkuiper/fillguestbook.asp, line 17

Verwijderd

/me vraagt zicvh af of start2dance ervan bewust is dat wij niet kunnen raden wat er op regel 17 gebeurt, zeker niet na een aanpassing van de code ;)

Nou ja ... raden kan wel ... wellicht is er geen Access driver geinstalleerd. Met de laatste MDAC versies wordt de Jet driver niet meer meegeleverd. Zie http://www.microsoft.com/data/download.htm

[ Voor 44% gewijzigd door Verwijderd op 22-11-2002 09:23 . Reden: Glazen bol gevonden! MUAHAHA! ]


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

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 22 November 2002 @ 09:18:
/me vraagt zicvh af of start2dance ervan bewust is dat wij niet kunnen raden wat er op regel 17 gebeurt, zeker niet na een aanpassing van de code ;)
Schandalig! Het zou verboden moeten worden.. :P Zijn je glazen bollen op ofzo? ;)

Volgens mijn glazen bol moet TS eens kijken naar het pad en kijken of deze wel klopt met behulp van een Response.Write.

[ Voor 6% gewijzigd door gorgi_19 op 22-11-2002 09:21 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Klopt je pad wel naar de database dan? Heb je wel genoeg rechten erop?

Zoals als gezegd kan je mischien beter ff een dsn aanmaken. Is mischien wat makkelijker.


offtopic:
Wat zijn eigenlijk die procenten achter je edit :?

[ Voor 48% gewijzigd door Phenomenon op 22-11-2002 09:24 . Reden: Zoals Gorgi ook al zegt :) ]


Verwijderd

Check inderdaad je pad naar de database ff. Maar ik zou voor een dns gaan.

Verwijderd

Topicstarter
Hmm ik snap er geen reet meer van, ik sla de opdracht wel over :r

tnx voor de replies...

Verwijderd

Verwijderd schreef op 22 November 2002 @ 10:17:
Hmm ik snap er geen reet meer van, ik sla de opdracht wel over :r

tnx voor de replies...
Is het dan zo moeilijk om een dns aantemaken :? Het is echt niet zo moeilijk, je moet het alleen ff doen en dan snap je het heus wel.

[ Voor 15% gewijzigd door Verwijderd op 22-11-2002 10:21 ]


  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 12-08 16:04

Jaspertje

Max & Milo.. lief

Verwijderd schreef op 22 november 2002 @ 10:17:
Hmm ik snap er geen reet meer van, ik sla de opdracht wel over :r

tnx voor de replies...
dat is wel een hele slechte motivatie.. en het is zo makkelijk

Misschien maar eens DSN proberen.. of kan dat niet

  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
Data Source Name dee es en, hebbus? ;)

  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 12-08 16:04

Jaspertje

Max & Milo.. lief

Verwijderd schreef op 22 november 2002 @ 10:19:
[...]


Is het dan zo moeilijk om een dns aantemaken :?
Gert schreef op 22 november 2002 @ 10:20:
Data Source Name dee es en, hebbus? ;)
Het is ook zo moeilijk :P

Verwijderd

Laat maar.... hij is lui :Z

[ Voor 5% gewijzigd door Verwijderd op 22-11-2002 10:26 ]


Verwijderd

Topicstarter
Sorry, maar een dns aanmaken heb ik nog niet geleerd. Ik volg het boek wel verder.. tnx anyway

  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 12-08 16:04

Jaspertje

Max & Milo.. lief

een dsn (alweer fout!!!) aanmaken is het makkelijkste van asp wat er is (na response.write :)).. Maar als het niet komt in het boek dan zou ik m door de versnipperaar halen hoor, dus let op.

Verwijderd

Lees & leer:
- DSN: Database System Name: via ODBC (Open DataBase Communication) kan je een koppeling leggen tussen database en een stuk software. Dat doe je door een database (en bijbehorende driver) een naam (DSN) te geven en in je software naar die naam te verwijzen. Je maakt een DSN aan door in je Control Panel --> Administrative Tools te klikken op 'Data Sources (ODBC)' (Windows 2000), en de rest wijst zich vanzelf.

- DNS: Domain Name System: De manier waarop op het Internet namen aan IP nummers worden gekoppeld op een hierarchische manier.

NB: Haal deze niet door elkaar! Dank u! ;)

Verwijderd

De code om de dsn ;) te benaderen heb ik al ergens hierboven gegeven, nou is mijn vraag. WAT KAN ER NU NOG FOUT GAAN !? :?

  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 12-08 16:04

Jaspertje

Max & Milo.. lief

Verwijderd schreef op 22 November 2002 @ 13:41:
De code om de dsn ;) te benaderen heb ik al ergens hierboven gegeven, nou is mijn vraag. WAT KAN ER NU NOG FOUT GAAN !? :?
Het is niet zo dat ie het al kan.. hijs aan het leren.. een een goede tweakert doet het zelf.. (dat zeg ik tweaker:))

En dat gaat hij ook doen.. en thats the spirit

Verwijderd

Topicstarter
watzie schreef op 22 November 2002 @ 08:23:
Ik zou zelf altijd een DNS aanmaken ipv het pad naar de .mdb...
probeer trouwens eens OF de driveletter ervoor te zetten OF die eerste slash weg te halen en gebruik dan meteen backslashes \
Ik las hier dns, dus nam aan dat dit ook dns moest zijn.... :/

Die guestbook doet het nu, maar ik heb alweer een volgend probleem :?

Ik moet een asp bestand aanmaken waarmee je je kan registreren. (register.asp). Maar als ik daar naar toe link krijg ik deze error:

you'r registered, jeroen

ADODB.Recordset error '800a0bb9'

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

/jeroenkuiper/aspguestbook2/register.asp, line 31

de code van het bestand is:

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
<HTML>
<BODY>

<%

if request("parampassword") = request ("paramRtpassword") then
    dim myconnection
    set myconnection = server.createobject("adodb.connection")
    call myconnection.open( _
    "driver={Microsoft Access Driver (*.mdb)};" & _
    "DBQ=" & Server.MapPath("/jeroenkuiper/db/dbGuestbook2.mdb"))
    
    dim mySQLstatement
    mysqlstatement = "select * from tbluser where usrname = '" _
        & request("paramusername") & "'"

    dim myrecordset
    set myrecordset = server.createobject("adodb.recordset")
    call myrecordset.open (mysqlstatement, myconnection)

    if myrecordset.EOF then
        mysqlstatement = _
            "insert into tbluser(usrname, usrpassword) values ('" _
            & request ("paramusername") & "','" _
            & request ("parampassword") & "')"

        call myrecordset.close ()
        call myrecordset.open (msqlstatement, myconnection) 

        call response.write("you'r registered, " _
            & request("paramusername") & " <BR>")

    else
        call response.write("user " & request("paramusername") _
        & " already exists <BR>")
    end if
    
    myrecordset.close
    myconnection.close
else
    call response.write("different passwords <BR>")
end if

%>

<a href="../index.html"> HOME </a>

</body>
</html>


Kan/wil iemand me helpen?

ps: Ik weet trouwens zeker dat ik de code goed uit het boek heb overgetikt...

[ Voor 51% gewijzigd door Verwijderd op 22-11-2002 16:23 ]


Verwijderd

Verwijderd schreef op 22 november 2002 @ 15:37:
ps: Ik weet trouwens zeker dat ik de code goed uit het boek heb overgetikt...
In boeken willen ook wel eens kleine fouten in staan. ;)

Verwijderd

Topicstarter
Verwijderd schreef op 22 November 2002 @ 15:49:
[...]

In boeken willen ook wel eens kleine fouten in staan. ;)
Weet jij de fout hier te vinden dan?

Verwijderd

Line 31 -> & request("paramusername") & " <BR>") toch ?

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Waarom gebruik je eigenlijk 'call' ??

call myrecordset.close ()
call myrecordset.open (msqlstatement, myconnection)

Ik heb het nog nooit daarvoor gebruikt.
Enne als je je code post kan je dit het best doen door deze tussen tags te zetten.
Zoals:
[code]hier je code[/code]

[ Voor 6% gewijzigd door Phenomenon op 22-11-2002 15:57 ]


Verwijderd

Topicstarter
Ehh ja... Weet ik veel, zo leer ik het in het boek....

[ Voor 74% gewijzigd door Verwijderd op 22-11-2002 15:58 ]


Verwijderd

Wat voor boek heb je, ik vind dit maar een vreemde manier van programmeren. Ik zou dit heel anders aanpakken maar goed, smaken verschillen zeg ik altijd maar.

Verwijderd

Topicstarter
Nou, het is een syllabus gemaakt door school zelf.
maar weet je ook waar de fout hierin zit?

Verwijderd

Verwijderd schreef op 22 november 2002 @ 16:06:
Nou, het is een syllabus gemaakt door school zelf.
maar weet je ook waar de fout hierin zit?
Ik ben bezig ;)

Verwijderd

Wordt het sql statement goed uitgevoerd ?

Verwijderd

Topicstarter
code:
1
2
mysqlstatement = "select * from tbluser where usrname = '" _
        & request("paramusername") & "'"


Ehh hoe kan ik zien of dat goed gebeurd?

Het moet trouwens line 31 zijn van de foutmelding.

[ Voor 56% gewijzigd door Verwijderd op 22-11-2002 16:23 ]


Verwijderd

Verander
code:
1
2
Call myrecordset.close ()
call myrecordset.open (msqlstatement, myconnection)

eens hier in
code:
1
2
3
Call myrecordset.close ()
set myrecordset = Nothing 
call myrecordset.open (msqlstatement, myconnection)

Verwijderd

Topicstarter
Ik krijg nu dit:

Microsoft VBScript runtime error '800a01a8'

Object required

/jeroenkuiper/aspguestbook2/register.asp, line 29

[ Voor 184% gewijzigd door Verwijderd op 22-11-2002 16:34 ]


Verwijderd

Waarom
code:
1
call myrecordset.open (msqlstatement, myconnection)

nog 1 keer :? Je gebruikt de database daarna helemaal niet meer.

Verwijderd

Verwijderd schreef op 22 November 2002 @ 16:27:
Ik krijg nu dit:

Microsoft VBScript runtime error '800a01a8'

Object required

/jeroenkuiper/aspguestbook2/register.asp, line 29
Is eigenlijk wel logisch |:( . Haal
code:
1
set myrecordset = Nothing

maar weer weg.

Verwijderd

Sorry, ik wil je wel verder helpen maar ik moet er nu vandoor. Nog veel succes verder. Het gaat je vast wel lukken. ;)
PS. een site die je vast wel kan gebruiken : www.w3schools.com

Verwijderd

Topicstarter
Ja die website ken ik al, maar daar kom ik ook niet verder..
Bedankt voor je tijd in ieder geval.

Misschien heeft iemand nog iedeeen?

[ Voor 74% gewijzigd door Verwijderd op 22-11-2002 16:44 ]


  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
Stop nou s met overal Call voor te zettenn, da's helemaal niet nodig. Als je syllabus zegt van wel dan is je leraar een oeterd. ;)

Ik weet niet wat line 31 doet, ik kan niet tellen want ik kom steeds bij een niet ter zake doende regel uit maar iig, wil je geen recordset van een INSERT statement hebben.

code:
1
2
call myrecordset.close ()
call myrecordset.open (msqlstatement, myconnection)

Deze de 1e keer weghalen en daar
code:
1
myconnection.execute( mysqlstatement )

van maken. Let er op dat je op dit moment msqlstatement hebt staan in plaats van mysqlstatement. :)

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

gorgi_19

Kruimeltjes zijn weer op :9

Ik sluit mij aan bij Gert: Gooi het boek op de schroothoop.. :P

Maar er moeten dan natuurlijk wel alternatieven zijn. Kijk eens op www.asp101.com
Hier staan een aantal databasevoorbeeldjes, onder andere ook met een guestbook. Je kan dan eens kijken hoe zij het hebben opgelost.

Het mooie van deze voorbeelden / artikelen is dat er ook nog comments bij de code gegevens is.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

mysqlstatement = "select * from tbluser where usrname = '" _
& request("paramusername") & "'"
request("paramusername") :?
Request.Form("paramusername") :?
Request.Querystring("paramusername") :?

request alleen is niks...waar haal je je gegevens vandaan?
een formulier met method="post" ? uit de url?

Klopt je query wel?
Check em es:
Response.Write mysqlstatement

[ Voor 94% gewijzigd door Verwijderd op 22-11-2002 20:39 ]


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

gorgi_19

Kruimeltjes zijn weer op :9

slindenau:
Kleine correctie: Request alleen werkt wel, alleen wat inefficieter, omdat hij dan alle collections gaat nalopen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

gorgi_19 schreef op 22 november 2002 @ 20:38:
slindenau:
Kleine correctie: Request alleen werkt wel, alleen wat inefficieter, omdat hij dan alle collections gaat nalopen.
Oh...dan ben ik zeker te lang met php bezig geweest :+
/me zegt sorry...
In Ieder Geval, check even je query's... want al die _ begrijp ik niet...dus zoals ik al zei in mijn post hierboven ^^

[ Voor 18% gewijzigd door Verwijderd op 22-11-2002 20:47 ]


Verwijderd

Topicstarter
Nou Gert bedankt.. Nu werkt het.. Ik heb mezelf geregistreerd :D

Maar ik vind het raar dat het gewoon helemaal fout in het boek staat.

  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
Tja, de dag dat schoolboeken foutloos zijn kunnen we allemaal ut2003 met 10 miljoen fps spelen. Zelf ben ik fan van boeken van Wrox. :)

Anyway, woei. :D
Pagina: 1