Avatar billede fusentasten Nybegynder
15. marts 2000 - 21:03 Der er 21 kommentarer og
1 løsning

Hvad skal der står her (databasehenvisning)

Hej Asp'ere

Jeg ved ikke meget og VBscript, og skal have flyttet en database fra en server, hvor jeg har komplet adgang til min eget site, hvor jeg kun har en wwwroot. Derfor kan jeg jo ikke mere skrive c:\...

Håber I forstår.

Dette er hvad der står nu:

Session("Connect") = "DBQ=c:\www\db\dbKn.mdb;DRIVER={Microsoft Access Driver (*.mdb)};"

Avatar billede jens Nybegynder
15. marts 2000 - 21:08 #1
Avatar billede fusentasten Nybegynder
15. marts 2000 - 21:16 #2
Nu fik jeg en ny fejl (men vi nærmer os, tror jeg)
Microsoft VBScript runtime error '800a01a8'

Object required: 'Conn'

/hk/admin/conn_db.asp, line 4


;)
Avatar billede fusentasten Nybegynder
15. marts 2000 - 21:20 #3
Jeg skulle måske lige sige, at jeg har rettet ovenstående til:

Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("dbKn.mdb")
Avatar billede qreg Nybegynder
15. marts 2000 - 22:20 #4
Sådan som du kalder det i øjeblikket forudsætter det at databasen ligger i samme bibliotek som filen der kalder databasen. Hvis du i stedet skriver f.eks. \dbKn.mdb vil systemet søge efter databasen i roden af dit webhotel eller hvad det nu er du har.

Sekhmet
Avatar billede qreg Nybegynder
15. marts 2000 - 22:20 #5
Hovsa....skulle have været et svar
Avatar billede ortrak Nybegynder
15. marts 2000 - 22:26 #6
Har du husket at skrive: Set Conn = Server.CreateObject("ADODB.Connection")

Ellers skriv hele koden her.


/ortrak
Avatar billede qreg Nybegynder
15. marts 2000 - 22:34 #7
doh....overså det med fejlen he he
Avatar billede fusentasten Nybegynder
15. marts 2000 - 22:35 #8
Her er koden:
Databasen ligger i samme bib.
Sitet ligger i /wwwroot/hk/

(Som sagt: Jeg fatter NADDA af det der VBscript) ;)

<%
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("dbKn.mdb")
%>


<%response.buffer = true %>
<html>
<head>
    <title>test</title>
</head>
<body >

<h2>Fejl!</h2>
<%
  if request.form("navn") = "" then
Response.write "Der er ikke indtastet noget navn"
%><br><br><a href="java script:history.back()"><b>Forrige side</b></a>
<%

elseif request.form("adresse") = "" then
Response.write "Der er ikke indtastet en adresse"
%><br><br><a href="java script:history.back()"><b>Forrige side</b></a>
<%

elseif request.form("postnr") = "" then
Response.write "Der er ikke indtastet postnr"
%><br><br><a href="java script:history.back()"><b>Forrige side</b></a>
<%
       
elseif request.form("town") = "" then
Response.write "Der er ikke indtastet nogen by"
%>
<br><br><a href="java script:history.back()"><b>Forrige side</b></a>

<%
else

            Set connection = Server.CreateObject("ADODB.Connection")
            Set objRec = Server.CreateObject ("ADODB.Recordset")
           
            connection.Open Session("Connect")
            connection.Execute("INSERT INTO v_mic ( navn, adresse, postnr, town, email) VALUES ('" & Request.Form("navn") &"', '" & Request.Form("adresse") &"', '" & Request.Form("postnr") &"', '" & Request.Form("town") &"', '" & Request.Form("email") &"')")
           
           
Response.redirect "tak.asp"
end if
%>
</body>
</html>
Avatar billede qreg Nybegynder
15. marts 2000 - 22:37 #9
Så har ortrak ret....du skal indsætte
Set Conn = Server.CreateObject("ADODB.Connection")

før

Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("dbKn.mdb")

Sekhmet

PS: Husk det er ham der skal have pointene
Avatar billede fusentasten Nybegynder
15. marts 2000 - 22:41 #10
Nu ser koden sådan ud:
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("dbKn.mdb")
%>

og jeg få denne her fejl:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

/hk/mike_db.asp, line 42

;)
Avatar billede ortrak Nybegynder
15. marts 2000 - 22:56 #11
Der er noget helt fuldstændigt galt her. Prøv det her i stedet:

Der er noget helt fuldstændigt galt her. Prøv det her i stedet:





<%response.buffer = true %>
<html>
<head>
    <title>test</title>
</head>
<body >

<h2>Fejl!</h2>
<%
  if request.form("navn") = "" then
Response.write "Der er ikke indtastet noget navn"
%><br><br><a href="java script:history.back()"><b>Forrige side</b></a>
<%

elseif request.form("adresse") = "" then
Response.write "Der er ikke indtastet en adresse"
%><br><br><a href="java script:history.back()"><b>Forrige side</b></a>
<%

elseif request.form("postnr") = "" then
Response.write "Der er ikke indtastet postnr"
%><br><br><a href="java script:history.back()"><b>Forrige side</b></a>
<%
       
elseif request.form("town") = "" then
Response.write "Der er ikke indtastet nogen by"
%>
<br><br><a href="java script:history.back()"><b>Forrige side</b></a>

<%
else

            Set connection = Server.CreateObject("ADODB.Connection")
            connection.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("dbKn.mdb")
                       
            connection.Execute("INSERT INTO v_mic ( navn, adresse, postnr, town, email) VALUES ('" & Request.Form("navn") &"', '" & Request.Form("adresse") &"', '" & Request.Form("postnr") &"', '" & Request.Form("town") &"', '" & Request.Form("email") &"')")
           
            connection.Close
            Set connection=nothing
           
Response.redirect "tak.asp"
end if
%>
</body>
</html>


/ortrak
Avatar billede ortrak Nybegynder
15. marts 2000 - 22:58 #12
Der var kun noget fuldstændigt galt én gang. :-]
Jeg har nogle seriøse cut&paste problemer for tiden...
Avatar billede fusentasten Nybegynder
15. marts 2000 - 22:59 #13
Damn!!!

Jeg fik det til at virke!!! (på en eller anden måde)

Men tak for de hurtige svar alle sammen. Har delt lidt point ud ;)

Jeg skrev:
Set Conn = Server.CreateObject("ADODB.Connection")
Session("Connect") = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("dbKn.mdb")
Avatar billede ortrak Nybegynder
15. marts 2000 - 23:08 #14
Okay, men du må altså lige sortere ud i din kode.
Set objRec = Server.CreateObject ("ADODB.Recordset") bruges ikke til noget.
Du laver to connections, men bruger kun én.
Du lukker ikke nogen af de to connections.
Hvorfor bruge Session() til en simpel connection.
Hvorfor åbne en connection før dine form inputs er blevet valideret.

Det gælder generelt om at åbne sine connections så sent som muligt og lukke dem igen så tidlig som muligt.
Se eventuelt her, hvis du vil vide hvorfor: http://www.learnasp.com/learn/speedtablesall.asp


/ortrak
Avatar billede ortrak Nybegynder
15. marts 2000 - 23:08 #15
Du hár sagt du ikke er nogen haj til ASP.
Det er bare gode råd...
Avatar billede ortrak Nybegynder
15. marts 2000 - 23:16 #16
Jeg ville nok også skrive:

Trim(Replace(request.form("whatever"), "'", "2 gange '"))

Jeg skriver to gange ', fordi eksperten kun vil vise en enkel '.

Grunden til dette, er at databasen ikke kan klare en enkelt single-quote. Når man replacer alle single-quotes til to single-quotes, læser databasen det som en enkel gyldig single-quote. Ved Trim() fjerner du alle mellemrum i starten og slutningen af strengen. Ellers kan brugeren bare trykke på mellemrumstasten.
Forstår du?


/ortrak
Avatar billede fusentasten Nybegynder
15. marts 2000 - 23:27 #17
Hej igen ;)

Det der connection / session ved jeg ikke meget om. Faktisk ingenting, desværre.
Jeg har plnaket denne lillse stump kode fra et andet site, mit firma har lavet. Jeg ville bare brilliere med, at jeg da sagtens kunne lave en "skriv dit navn og mail, og få at vide, når vores nye site går i luften"-asp side.

Hvis en af jer vil ryde lidt op i "min" kode, giver jeg gerne points for det.
Avatar billede fusentasten Nybegynder
15. marts 2000 - 23:27 #18
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Session("Connect") = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("dbKn.mdb")
%>


<%response.buffer = true %>
<html>
<head>
    <title>test</title>
</head>
<body >

<h2>Fejl!</h2>
<%
  if request.form("navn") = "" then
Response.write "Der er ikke indtastet noget navn"
%><br><br><a href="java script:history.back()"><b>Forrige side</b></a>
<%

elseif request.form("email") = "" then
Response.write "Der er ikke indtastet en e-mail adresse"
%><br><br><a href="java script:history.back()"><b>Forrige side</b></a>
 
<%
else

Set connection = Server.CreateObject("ADODB.Connection")
'Set objRec = Server.CreateObject ("ADODB.Recordset")

connection.Open Session("Connect")
connection.Execute("INSERT INTO v_mic ( navn, email) VALUES ('" & Request.Form("navn") &"', '" & Request.Form("email") &"')")
           
           
Response.redirect "tak.asp"
end if
%>
</body>
</html>
Avatar billede ortrak Nybegynder
16. marts 2000 - 01:43 #19
Du kan jo starte med at dele de tidligere point ud... :-]

Avatar billede ortrak Nybegynder
16. marts 2000 - 01:44 #20
Der ligger en renskrevet "version" her: http://home6.inet.tele.dk/amp/asp.txt

/ortrak
Avatar billede ortrak Nybegynder
16. marts 2000 - 01:46 #21
hmm...den prøver at loade filen, selvom ASP ikke er understøttet på TeleDK's server. Ikke skide smart. Så må du jo bare se på kilden og kopiere den...

/ortrak
Avatar billede fusentasten Nybegynder
16. marts 2000 - 11:14 #22
Det virker som det skal. Takker mange gange ;)
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