15. marts 2000 - 21:03Der 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:\...
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.
<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")
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
<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>
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
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?
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.
<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")
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.