Avatar billede integra2ren Nybegynder
08. januar 2002 - 09:51 Der 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)

%>


men uden held.

Hvad gør jeg galt??
Avatar billede larsen Nybegynder
08. januar 2002 - 10:08 #1
Du kan lave en funktion og så kalde den længere nede i dokumentet
Avatar billede integra2ren Nybegynder
08. januar 2002 - 10:09 #2
Jeg vil gerne have databaseforbindelsen til at ligge i setup-filen
Avatar billede integra2ren Nybegynder
08. januar 2002 - 10:10 #3
Derved skal jeg jo kun skrive den en gang og kan lettere lave den om
Avatar billede erikjacobsen Ekspert
08. januar 2002 - 10:40 #4
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å?
Avatar billede integra2ren Nybegynder
08. januar 2002 - 10:55 #5
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:

Microsoft VBScript compilation error \'800a03ea\'

Syntax error

/mumidb/includes/setup.asp, line 3

dbOpen =set dbOpen = Server.CreateObject(ADODB.Connection)_
--------^

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.

Avatar billede erikjacobsen Ekspert
08. januar 2002 - 11:05 #6
det var jo sådan set heller ikke det jeg skrev omkring dbOpen - vel?
Avatar billede erikjacobsen Ekspert
08. januar 2002 - 11:06 #7
Ups, og den lille _ for enden af linien havde jeg overset. Den kan du godt skrotte...
Avatar billede integra2ren Nybegynder
08. januar 2002 - 11:08 #8
Det ændre ikke på fejlmeldingen :-(
Avatar billede erikjacobsen Ekspert
08. januar 2002 - 11:10 #9
Hvis du skriver det jeg skrev (minus _) er der ikke syntaksfejl - mener jeg da.
Avatar billede admss Nybegynder
08. januar 2002 - 11:11 #10
Hej!

Har du ikke et dpOpen= for meget i?

admss
Avatar billede integra2ren Nybegynder
08. januar 2002 - 11:15 #11
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
Avatar billede integra2ren Nybegynder
08. januar 2002 - 11:17 #12
<%

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)

%>

Giver:

Microsoft VBScript compilation error \'800a03ea\'

Syntax error

/mumidb/includes/setup.asp, line 3

dbOpen =set dbOpen = Server.CreateObject(ADODB.Connection)
--------^
Avatar billede larsen Nybegynder
08. januar 2002 - 11:18 #13
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\")%>
Avatar billede erikjacobsen Ekspert
08. januar 2002 - 11:20 #14
Der kunne jo være en grund til at vi andre ikke har den \"ekstra dbopen\" - ik\' ?

Du har skam variablen til brug senere alligevel - prøv at læse hvad vi skriver
Avatar billede integra2ren Nybegynder
08. januar 2002 - 11:25 #15
>> larsen

Kan jeg ligge

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

ind i en setup-fil som denne

<%
ComName        = \"firma\"
Tlf        = \"26362655\"
WebAdr        = \"www.dk4.dk\"
Webmaster    = \"Thomas\"
Webmastermail    = \"thomas@integra2ren.dk\"
foto        = \"grafik/foto.gif\"
DatabaseConn    = \" ??????????????????????????????????\"
%>
Avatar billede larsen Nybegynder
08. januar 2002 - 11:28 #16
Jeg vil tro at du kan sætte følgende ind i den setup-fil sådan her :

<%
ComName        = \"firma\"
Tlf        = \"26362655\"
WebAdr        = \"www.dk4.dk\"
Webmaster    = \"Thomas\"
Webmastermail    = \"thomas@integra2ren.dk\"
foto        = \"grafik/foto.gif\"
DatabaseConn    = \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"/db/db.mdb\")


Function OpenDB(SqlStr)
    set dbOpen = Server.CreateObject(ADODB.Connection)
    dbOpen.Open DatabaseConn
    Set rs = dbOpen.Execute(SqlStr)
    OpenDB=rs
    dbOpen.Close
End Function

%>
Avatar billede larsen Nybegynder
08. januar 2002 - 11:29 #17
Jeg ved ikke helt om det virker, men rent umiddelbart burde det..
Avatar billede integra2ren Nybegynder
08. januar 2002 - 11:32 #18
Der er et eller andet galt:

Microsoft VBScript runtime error \'800a01a8\'

Object required: \'ADODB\'

/mumidb/includes/setup.asp, line 12
Avatar billede larsen Nybegynder
08. januar 2002 - 11:34 #19
Det er nok fordi der skal stå :
set dbOpen=Server.CreateObject(\"ADODB.Connection\")
Avatar billede integra2ren Nybegynder
08. januar 2002 - 11:42 #20
Jeg får en fejl i min defaultside nu:

<!-- #include file = \"includes/setup.asp\" -->
<html>
<head><title></title>
</head>

<body>
<%OpenDB(\"SELECT * FROM db ORDER BY ID desc\")%>

<center><table border=\"0\"width=\"150\" >

    <%
    DO WHILE NOT rs.EOF
    ID = rs(\"ID\")
    overskrift = rs(\"overskrift\")
    besked = rs(\"besked\")
    navn = rs(\"navn\")
    %>

<tr><td><b><%=overskrift%></b></td></tr>
<tr><td><%=besked%><br><br></td>
<tr><td><%=navn%></td></tr>
<!-- #include file = \"includes/close.asp\" -->
<tr><td><a href=\"form.asp\">tilføj</a>&nbsp;&nbsp;<a href=\"admin.asp\">admin</a></td></tr>
</table>
</center>

</body>
</html>

Fejlen er:

Microsoft VBScript runtime error \'800a01a8\'
Object required: \'\'

/mumidb/default.asp, line 12
Avatar billede larsen Nybegynder
08. januar 2002 - 11:44 #21
Prøv lige at ændre Funktionen i setup-filen :

Function OpenDB(SqlStr)
    set dbOpen = Server.CreateObject(ADODB.Connection)
    dbOpen.Open DatabaseConn
    Set rs = dbOpen.Execute(SqlStr)
End Function
Avatar billede integra2ren Nybegynder
08. januar 2002 - 11:45 #22
Microsoft VBScript runtime error \'800a01a8\'

Object required: \'ADODB\'

/mumidb/includes/setup.asp, line 12
Avatar billede larsen Nybegynder
08. januar 2002 - 11:47 #23
Det er denne linie igen :
set dbOpen = Server.CreateObject(\"ADODB.Connection\")
Avatar billede integra2ren Nybegynder
08. januar 2002 - 11:48 #24
Ja så får jeg denne her igen

Microsoft VBScript runtime error \'800a01a8\'
Object required: \'\'

/mumidb/default.asp, line 12
Avatar billede integra2ren Nybegynder
08. januar 2002 - 11:49 #25
måske kan det ikke lade sig gøre
Avatar billede larsen Nybegynder
08. januar 2002 - 11:52 #26
Lige nu er jeg også på bar bund :-)
Avatar billede integra2ren Nybegynder
08. januar 2002 - 11:54 #27
:-) Tror jeg lader det ligge en dags tid (-:
Avatar billede integra2ren Nybegynder
11. februar 2002 - 22:17 #28
BAAM Panden mod muren
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