08. januar 2002 - 09:51Der er
27 kommentarer og 1 løsning
Databaseforbindelse i setup.asp (include)
Jeg har en include-fil som hedder setup.asp og en default.asp.
På default.asp vil jeg oprette forbindelse til en database (db.mdb).
Jeg kan godt få det til at virke ved at lave databaseforbindelsen i en selvstændig include-fil og kalde den ved: <!-- #include file = \"includes/dataOpen.asp\" --> på default.asp.
Men hvordan laver jeg databaseforbindelsen som en variabel (dbOpen) i en setup.asp som jeg kan includere i toppen af default.asp og så kalde længere nede på siden med <%=dbOpen%>??
Jeg har forsøgt med flg. setup.asp:
<%
dbOpen = Set Conn = Server.CreateObject(ADODB.Connection)_ Conn.Open DRIVER={Microsoft Access Driver (*.mdb)}; DBQ= & server.MapPath(/db/db.mdb)_ SQLstmt = SELECT * FROM db ORDER BY ID desc;_ Conn.Execute (SQLstmt)_ Set rs = conn.Execute(SQLstmt)
Du mener vel ikke at din setup.asp ser præcis sådan ud? Uden at jeg skal gøre mig klog på ASP-syntaks bør den vel nærmere være:
<% set dbOpen = Server.CreateObject(ADODB.Connection)_ dbOpen.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"/db/db.mdb\") SQLstmt = \"SELECT * FROM db ORDER BY ID desc;\" dbOpen.Execute (SQLstmt) Set rs = dbOpen.Execute(SQLstmt) %>
Så har du også din dbOpen til senere. Men jeg fatter slet ikke hvorfor du absolut skal fyre en SQL-sætning af med det samme.... Og så med 2 forskellige execute kald. Hvad prøver du på?
ideen er at putte db-forbindelsen ind i en setup-fil hvori der skal ligge andre parametre. (navne, stier til billedfiler og menu-koden) Derved vil jeg nemmere kunne overskue de forskellige db-forbindelser og så enkelt og nemt kalde den på siden ved hjælp af en include-fil og et variabelnavn feks. <%=dbOpen>
Mit problem er at jeg får en syntaksfejl når jeg forsøger at sætte databaseforbindelsen ind i en variabel:
Den finder jo fint setupfilen og den variabel som forbindelsen står i. Men det giver mig en syntaksfejl.
Med hensyn til sgl-sætningen vil jeg meget gerne have hjælp til at finde det enkleste kald til databasen. Det troede jeg det var, men kan godt se din pointe.
Grunden til det ekstra dbOpen er at jeg forsøger at sætte hele db-forbindelsen ind i en variabel som jeg så kan kalde det sted på siden den skal bruges. I stedet for at lave en selvstændig fil med kun databaseforbindelsen i.
Jeg vil forsøge at lave een setupfil med alle oplysninger til siden i både baggrundsfarve, fontsize og så videre + db-forbindelsen
dbOpen =set dbOpen = Server.CreateObject(ADODB.Connection) dbOpen.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"/db/db.mdb\") SQLstmt = \"SELECT * FROM db ORDER BY ID desc;\" dbOpen.Execute (SQLstmt) Set rs = dbOpen.Execute(SQLstmt)
Hvad med at lægge din forbindelse ind som en funktion ?
Function OpenDB(SqlStr) set dbOpen = Server.CreateObject(ADODB.Connection) dbOpen.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"/db/db.mdb\") Set rs = dbOpen.Execute(SqlStr) OpenDB=rs dbOpen.Close End Function
og når du så skal bruge den : <%OpenDB(\"SELECT * FROM db ORDER BY ID desc\")%>
Function OpenDB(SqlStr) set dbOpen = Server.CreateObject(ADODB.Connection) dbOpen.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"/db/db.mdb\") Set rs = dbOpen.Execute(SqlStr) OpenDB=rs dbOpen.Close End Function
Function OpenDB(SqlStr) set dbOpen = Server.CreateObject(ADODB.Connection) dbOpen.Open DatabaseConn Set rs = dbOpen.Execute(SqlStr) OpenDB=rs dbOpen.Close End Function
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.