Avatar billede ultimezia Nybegynder
09. oktober 2002 - 20:08 Der er 34 kommentarer og
1 løsning

ADO Connection fejl...?

Hej, jeg er ved at lave en hjemmeside i ASP. Jeg vil gerne lave en side/form hvor folk kan oprette dig som bruger på siden, for at gøre det, har jeg lavet følgende sider.

opretprivat.asp

Her har jeg skrevet følgende form, der gerne skulde videre siden, den info brugeren indtaster til siden "registrer-bruger.asp" der behandler informationerne og indsætter den i databasen.

Først har jeg oprettet en database i Microsoft Access XP, kaldet "maxdb.mdb", lagt den i den vietuelle sti "/maxdb/maxdb.mdb". I den har jeg oprettet en tabel kaldet "login" hvor jeg har lavet følgende poster: "brugernavn", "adgangskode", "fornavn", "efternavn", "adresse", "postnr", "by", "tlf", "mobil" & "email"

---
<FORM action = "registrer-bruger.asp" method="post" id="form1" name="form1"    LANGUAGE="javascript" onsubmit="return form1_onsubmit()">

<TABLE cellSpacing="0"  cellPadding="0" border="0">
<TR>
  <TD align="center" colspan="2" valign="top">Opret ny Privat bruger</TD>
</TR>
<TR>
  <TD valign="top" width="130">Ønsket Brugernavn :</TD>
  <TD valign="top"><INPUT type="text" NAME="brugernavn" VALUE="" SIZE="20"></TD>
</TR>
<TR>
  <TD valign="top" width="130">Ønsket Password :</TD>
  <TD valign="top"><INPUT type="password" NAME="adgangskode" VALUE="" SIZE=20></TD>
</TR>
<TR>
  <TD valign="top" width="130">Fornavn :</TD>
  <TD valign="top"><INPUT type="text" NAME="fornavn" VALUE="" SIZE=20></TD>
</TR>
<TR>
  <TD valign="top" width="130">Efternavn :</TD>
  <TD valign="top"><INPUT type="text" NAME="efternavn" VALUE="" SIZE=20></TD>
</TR>
<TR>
  <TD valign="top" width="130">Adresse :</TD>
  <TD valign="top"><INPUT type="text" NAME="adresse" VALUE="" SIZE="35"></TD>
</TR>
<TR>
  <TD valign="top" width="130">Post nr :</TD>
  <TD valign="top"><INPUT type="text" NAME="postnr" VALUE="" SIZE="8"></TD>
</TR>
<TR>
  <TD valign="top" width="130">By :</TD>
  <TD valign="top"><INPUT type="text" NAME="by" VALUE="" SIZE="20"></TD>
</TR>
<TR>
  <TD valign="top" width="130">Telefon nr :</TD>
  <TD valign="top"><INPUT type="text" NAME="tlf" VALUE="" SIZE="10"></TD>
</TR>
<TR>
  <TD valign="top" width="130">Mobil nr :</TD>
  <TD valign="top"><INPUT type="text" NAME="mobil" VALUE="" SIZE="10"></TD>
</TR>
<TR>
  <TD valign="top" width="130">E-Mail :</TD>
  <TD valign="top"><INPUT type="text" NAME="email" VALUE="" SIZE="35"></TD>
</TR>
<TR>
  <TD align="center" colspan="2" valign="top"><INPUT type="submit" value="Submit" id="submit1" name="submit1"></TD>
</TR></TABLE></FORM>
---
I min "registrer-bruger.asp" har jeg skrevet følgende :

<%
Dim sSQL,conn,rs
Set conn = Server.CreateObject("ADODB.Connection")
set rs = server.CreateObject("ADODB.Recordset")

conn.Provider = "Microsoft.Jet.OLEDB.4.0"
conn.ConnectionString = "Data Source=" & Server.MapPath("maxdb/maxdb.mdb")
conn.open

sSQL = "Insert into login (brugernavn,adgangskode,fornavn,efternavn,adresse,postnr,by,tlf,mobil,email) Values" & _ "('"& Ucase(Request("brugernavn")) & "', '"& Request("adgangskode") & "', '"& Request("fornavn") & "', '" & Request("efternavn") & "', '" & Request("adresse") & "', '" & Request("postnr") & "', '" & Request("by") & "', '" & Request("tlf") & "', '" & Request("mobil") & "', '" & Request("email") & "')"

conn.Execute sSQL,adCmdText
rs.close
set rs = nothing
conn.close
set conn = nothing
%>
Dine informationer er blevet gemt i vores database.<BR><BR>
<A href="login.asp">[Klik her for at logge ind]</A>
---
Når jeg nu åbner denne min "opretprivat.asp" siden og prøvet at oprette en bruger får jeg følgende fejl :

Microsoft VBScript compilation error '800a0408'

Invalid character

/registrer-bruger.asp, line 63

sSQL = "Insert into login (brugernavn,adgangskode,fornavn,efternavn,adresse,postnr,by,tlf,mobil,email) Values" & _ "('"& Ucase(Request("brugernavn")) & "', '"& Request("adgangskode") & "', '"& Request("fornavn") & "', '" & Request("efternavn") & "', '" & Request("adresse") & "', '" & Request("postnr") & "', '" & Request("by") & "', '" & Request("tlf") & "', '" & Request("mobil") & "', '" & Request("email") & "')"
---
Nogen der kan fortælle min hvorfor det ikke virker, og hvad jeg skal gøre for at få det til at virke?

Jeg har en anelse om at det måske er fordi databasen er lavet i Access XP, men kan det være det?
Avatar billede neteffect Nybegynder
09. oktober 2002 - 20:21 #1
Begynd nmed at få luset denneher ud: By er et reserveret ord i SQL.

Så er der en _ , som måske ikke står sidst i en linie?

sSQL = "INSERT INTO login (" &_
"brugernavn, adgangskode, fornavn, efternavn" &_
", adresse, postnr, [by], tlf, mobil, email" &_
") Values (" &_
"'"& Ucase(Request("brugernavn")) & "'" &_
", '"& Request("adgangskode") & "'" &_
", '"& Request("fornavn") & "'" &_
", '" & Request("efternavn") & "'" &_
", '" & Request("adresse") & "'" &_
", '" & Request("postnr") & "'" &_
", '" & Request("by") & "'" &_
", '" & Request("tlf") & "'" &_
", '" & Request("mobil") & "'" &_
", '" & Request("email") & "')"
Avatar billede ultimezia Nybegynder
09. oktober 2002 - 20:40 #2
Jeg får stadig samme fejl :

Microsoft VBScript compilation error '800a0408'

Invalid character

/registrer-bruger.asp, line 63

sSQL = "INSERT INTO login (" &_ "brugernavn, adgangskode, fornavn, efternavn" &_ ", adresse, postnr, [by], tlf, mobil, email" &_ ") Values (" &_ "'"& Ucase(Request("brugernavn")) & "'" &_ ", '"& Request("adgangskode") & "'" &_ ", '"& Request("fornavn") & "'" &_ ", '" & Request("efternavn") & "'" &_ ", '" & Request("adresse") & "'" &_ ", '" & Request("postnr") & "'" &_ ", '" & Request("by") & "'" &_ ", '" & Request("tlf") & "'" &_ ", '" & Request("mobil") & "'" &_ ", '" & Request("email") & "')"

.... Hvordan kan det være?
Avatar billede ultimezia Nybegynder
09. oktober 2002 - 20:43 #3
Ok, jeg har prøvet at skrive det præsist som du skrev det, på hver sin linie.... det hjalp lidt. Men isteddet får jeg nu følgende fejl :

Microsoft VBScript runtime error '800a01bd'

Object doesn't support this action

/registrer-bruger.asp, line 59

conn.Provider = "Microsoft.Jet.OLEDB.4.0"

Nogen foreslag?
Avatar billede iblarsen Praktikant
09. oktober 2002 - 20:46 #4
Kan du ikke starte med at ændre dit by felt til noget andet.
Avatar billede neteffect Nybegynder
09. oktober 2002 - 21:10 #5
Drop linien med conn.Provider = "Microsoft.Jet.OLEDB.4.0"

og skriv

conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" &_
            "Data Source=" & Server.Mappath("("maxdb/maxdb.mdb")
Avatar billede neteffect Nybegynder
09. oktober 2002 - 21:17 #6
Hov, lille fejl

conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" &_
            "Data Source=" & Server.Mappath("maxdb/maxdb.mdb")
Avatar billede ultimezia Nybegynder
09. oktober 2002 - 21:26 #7
Nu får jeg følgende fejl :

ADODB.Connection.1 error '80004005'

SQLState: IM002
Native Error Code: 0
[INTERSOLV][ODBC lib] Data source name not found and no default driver specified

/registrer-bruger.asp, line 63

conn.open

Jeg har båede prøvet med og uden linien :
conn.ConnectionString = "Data Source=" & Server.MapPath("maxdb/maxdb.mdb")
Skal jeg fjerne denne linie? Lige nu står der :

<%                               
Dim sSQL,conn,rs
Set conn = Server.CreateObject("ADODB.Connection")
set rs = server.CreateObject("ADODB.Recordset")
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" &_
"Data Source=" & Server.Mappath("maxdb/maxdb.mdb")
                       
conn.ConnectionString = "Data Source=" & Server.MapPath("maxdb/maxdb.mdb")
conn.open

sSQL = "INSERT INTO login (" &_
(og resten du gav mig)...
Avatar billede neteffect Nybegynder
09. oktober 2002 - 21:32 #8
Du skal fjerne den
conn.ConnectionString = "Data Source=" & Server.MapPath("maxdb/maxdb.mdb")

der står lige før conn.open
Avatar billede ultimezia Nybegynder
09. oktober 2002 - 21:35 #9
Jeg får stadig samme fejl :-(

ADODB.Connection.1 error '80004005'

SQLState: IM002
Native Error Code: 0
[INTERSOLV][ODBC lib] Data source name not found and no default driver specified

/registrer-bruger.asp, line 62

conn.open
Avatar billede ultimezia Nybegynder
09. oktober 2002 - 21:57 #10
I linien du skrev :conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" &_
"Data Source=" & Server.Mappath("maxdb/maxdb.mdb")

Skal der være et "=" i "Data Source=" ?
Avatar billede neteffect Nybegynder
09. oktober 2002 - 21:57 #11
Prøv lige at se om den kan finde databasen

response.write "debug " & Server.MapPath("maxdb/maxdb.mdb") & "<br>"

Bare put linien ind først i scriptet (efter <%, naturligvis)
Avatar billede neteffect Nybegynder
09. oktober 2002 - 22:02 #12
>Skal der være et "=" i "Data Source=" ?

Ja, linien er en copy->paste fra en kørende site.
Avatar billede ultimezia Nybegynder
09. oktober 2002 - 22:02 #13
Jeg tror godt den kan finde den, jeg får følgende :

debug /home/webusers/www.max_data_dk/html/maxdb/maxdb.mdb

ADODB.Connection.1 error '80004005'

SQLState: IM002
Native Error Code: 0
[INTERSOLV][ODBC lib] Data source name not found and no default driver specified

/registrer-bruger.asp, line 63

conn.open
Avatar billede ultimezia Nybegynder
09. oktober 2002 - 22:29 #14
Jeg har lige kigget lidt på nogle asp guides til ADO, kan det ikke have noget at gøre med at jeg mangler en Application?
Avatar billede neteffect Nybegynder
09. oktober 2002 - 22:41 #15
Nej.

I hvilket directory ligger registrer-bruger.asp ?
Avatar billede ultimezia Nybegynder
09. oktober 2002 - 22:44 #16
Files ligger i "/html" mappen hvor alle mine html dokumenter skal ligge for at blive vist, under den mappe, har jeg kun mit cgi-bin.
Avatar billede ultimezia Nybegynder
09. oktober 2002 - 22:46 #17
Jeg kan pakke alle mine filer ned i en zip fil og ligge den online så du kan hente den, hvis du vil?
Avatar billede neteffect Nybegynder
09. oktober 2002 - 22:53 #18
/maxdb ligger vel også i /html ?

Du bør lige prøve noget andet:

conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" &_
"Data Source=" & Server.Mappath("/maxdb/maxdb.mdb")

Det nye er / forrest i /maxdb osv
Avatar billede ultimezia Nybegynder
09. oktober 2002 - 22:59 #19
Det gør ikke nogen foreskel, giver præcis den samme meddelelse....
Avatar billede neteffect Nybegynder
09. oktober 2002 - 23:02 #20
Så fjern bare / igen.

Ligger /maxdb i /html ?
Avatar billede ultimezia Nybegynder
09. oktober 2002 - 23:04 #21
ja den ligger i /html/maxdb/maxdb.mdb
Avatar billede neteffect Nybegynder
09. oktober 2002 - 23:10 #22
En ting mere: Du har vel ikke andre asp-sider, der bruger databaser? Jeg spørger, fordi det ville være rart, hvis du kunne overbevise dig selv om, at noget med database overhovedet kan køre som det skal på den server.

Jeg en mistanke pga at mappath burde ikke returnere så lang en path, men kun den relative path fra siden med scriptet.

En Google-søgning på fejmeddelelsen viser, at du ikke er alene i verden. Men desværre også, at der ikke er nogen, der kan hitte ud af det.
Søgningen er her:
http://www.google.com/search?q=%22%5BINTERSOLV%5D%5BODBC+lib%5D+Data+source+name+not+found+and+no+default+driver+specified%22+mdb&hl=en&lr=&ie=UTF-8&oe=UTF-8&newwindow=1&safe=off&start=30&sa=N

Det ligner et problem jeg havde forleden, hvor mappath også opførte sig sært i en lignende situation. Her gik problemet væk efter en restart af serveren.
Avatar billede ultimezia Nybegynder
09. oktober 2002 - 23:14 #23
hmmm. jeg kan desvære ikke genstarte severen, da siden er hostet hos et internet firma... nogen ideer til hvordan jeg måske kan løse problemmet?
Avatar billede neteffect Nybegynder
09. oktober 2002 - 23:22 #24
Hvis problemet er det samme som det jeg var ude for forleden, så går det måske væk af sig selv i løbet af et par dage(!)

Du skulle måske benytte ventetiden til at få installeret en testserver på din egen maskine, Microsoft PWS.
Avatar billede ultimezia Nybegynder
09. oktober 2002 - 23:24 #25
Jeg har ISS & MSDE installeret. Er PWS bedre?
Avatar billede coltau Juniormester
09. oktober 2002 - 23:27 #26
En access-base åbner jeg normalt med disse linier og ikke andet:

set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("maxdb/maxdb.mdb")

Det virker på de fleste servere.
Avatar billede ultimezia Nybegynder
09. oktober 2002 - 23:31 #27
hvilket underligt nok helder ikke virker, tror du det kan have noget at gøre med den version af access jeg bruger=
Avatar billede neteffect Nybegynder
09. oktober 2002 - 23:33 #28
coltau> Se her:
http://www.adopenstatic.com/faq/whyOLEDB.asp

Men det skader ikke at prøve, for jeg har mistanke om, at det er netop den fejlsituation ultimezia er havnet i.
Avatar billede ultimezia Nybegynder
09. oktober 2002 - 23:42 #29
Jeg har prøvet at skrive hvad der stod på siden, men...
Det giver stadig samme fejl. Det er linien "conn.open" den stadig siger der er fejl i....
Avatar billede ultimezia Nybegynder
09. oktober 2002 - 23:43 #30
Jeg bliver nødt til at smutte for iaften :-( Skal sku' tideligt op...

Jeg har lavt alt mit kode online, hvid der er nogen der vil kigge på det.
Det findes her : http://www.max-data.dk/asp.zip

Kigger online imorgen inden jeg tager afsted, hvis nogen har fundet ud af noget.
Avatar billede neteffect Nybegynder
11. oktober 2002 - 15:30 #31
ISS? Hvis du mener IIS er det den samme som PWS. PWS er en enkeltbruger version af IIS.

Nu har jeg i mellemtiden været ude for samme problem hos en af mine webhtel-providere (wannafind.dk). Genstart af serveren løste problemet.
Avatar billede ultimezia Nybegynder
12. oktober 2002 - 06:32 #32
Jeg har endelig fået det til at virke, prøvede det af under ISS, havde nogle små fejl men fik dem rettet. Problemmet lå ved min udbyder, så dem skal jeg lige have snakket med...

Mange tak for hjælpen Neteffect. Jeg vil gerne give dig dine point, men vil også gerne vide dig 50 flere, hvis du kan hjælpe mig med et enkelt spørgsmål mere...?

Hvordan kan jeg gøre så der bliver tjekket om folk er logget ind, så de ikke bare kan skrive url'en til min main side, og hoppe uden om login'et... hvis du forstår...?
Avatar billede neteffect Nybegynder
12. oktober 2002 - 09:50 #33
Dit nye spørgsmål er besvaret mange gange her på eksperten

Et af svarene:
http://www.cygnet.dk/starf/

Søgning på eksperten:
http://www.eksperten.dk/find.phtml?words=login&method=and&sort=score&excerpt_on=1&catid=3
Avatar billede ultimezia Nybegynder
12. oktober 2002 - 12:00 #34
Mange tak for hjælpen!
Avatar billede neteffect Nybegynder
12. oktober 2002 - 12:10 #35
Tak for points. Led fejl.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester