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)};"
Skrevet ons. d. 15. marts 2000 kl. 21:08:26| #1
Skrevet ons. d. 15. marts 2000 kl. 21:16:06| #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
;)
Skrevet ons. d. 15. marts 2000 kl. 21:20:36| #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")
Skrevet ons. d. 15. marts 2000 kl. 22:20:07| #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
Skrevet ons. d. 15. marts 2000 kl. 22:20:25| #5
Hovsa....skulle have været et svar
Skrevet ons. d. 15. marts 2000 kl. 22:26:50| #6
Har du husket at skrive: Set Conn = Server.CreateObject("ADODB.Connection")
Ellers skriv hele koden her.
/ortrak
Skrevet ons. d. 15. marts 2000 kl. 22:34:10| #7
doh....overså det med fejlen he he
Skrevet ons. d. 15. marts 2000 kl. 22:35:36| #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>
Skrevet ons. d. 15. marts 2000 kl. 22:37:32| #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
Skrevet ons. d. 15. marts 2000 kl. 22:41:28| #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
;)
Skrevet ons. d. 15. marts 2000 kl. 22:56:59| #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
Skrevet ons. d. 15. marts 2000 kl. 22:58:52| #12
Der var kun noget fuldstændigt galt én gang. :-]
Jeg har nogle seriøse cut&paste problemer for tiden...
Skrevet ons. d. 15. marts 2000 kl. 22:59:04| #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")
Skrevet ons. d. 15. marts 2000 kl. 23:08:05| #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/ (...)/ortrak
Skrevet ons. d. 15. marts 2000 kl. 23:08:53| #15
Du hár sagt du ikke er nogen haj til ASP.
Det er bare gode råd...
Skrevet ons. d. 15. marts 2000 kl. 23:16:11| #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
Skrevet ons. d. 15. marts 2000 kl. 23:27:38| #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.
Skrevet ons. d. 15. marts 2000 kl. 23:27:56| #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>
Skrevet tor. d. 16. marts 2000 kl. 01:43:13| #19
Du kan jo starte med at dele de tidligere point ud... :-]
Skrevet tor. d. 16. marts 2000 kl. 01:44:04| #20
Der ligger en renskrevet "version" her:
http://home6.inet.tele.dk/ (...)/ortrak
Skrevet tor. d. 16. marts 2000 kl. 01:46:52| #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
Skrevet tor. d. 16. marts 2000 kl. 11:14:36| #22
Det virker som det skal. Takker mange gange ;)