23. maj 2005 - 10:17Der er
1 kommentar og 2 løsninger
Returnering af data fra 2 DB
Jeg har en side som skal bruge data fra 2 databaser på samme tid. Hvordan laver jeg det i connection filen ? og hvordan gør jeg inde i selv asp filen. Den ene database hedder db1 og den anden db2. Har een tabel i begge databaser jeg skal bruge data fra på samme asp side
Med denne kode, kan du bruge så mange databaser du vil/serveren tillader:
-- db_conn.asp (dette er include-filen.. ret filnavnet på filen og i include-linien)
<% function dbopen(nameconn, namedb) Set nameconn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath(namedb) dbopen = nameconn.Open(DSN) end function
function dbclose(nameconn, namers) if nameconn <> "" then nameconn.Close if namers <> "" then set namers = nothing if nameconn <> "" then Set nameconn = Nothing end function %>
-- index.asp (kald den hvad du vil) --
<%
Option Explicit ' ALLE variabler SKAL defineres = undgå stavefejl!
dim dsn ' skal bruges til INCLUDE -- MEN! må ikke defineres i INCLUDE!!
' --- Her dimmes de variabler, der skal bruges på denne side: dim rsMedlemmer, rs2 ' variablerne kan omdøbes, bruges på nuværende side = RecordSet dim connMedlemmer, conn2 ' variablerne kan omdøbes, bruges på nuværende side = Connection dim sqlMedlemmer, sql2' variablerne kan omdøbes, bruges på nuværende side = SQL-sætningen
' -------------------------------------------------- ' Funktion til at åbne forbindelsen: ' dbopen Forbindelsesnavn, "database-filnavnet" ' husk gåseøjne ved filnavnet ' ' Eksempel: dbopen connMedlemmer, "medlemmer.mdb" ' husk gåseøjne ved filnavnet ' ' ' Funktion til at lukke forbindelsen: ' dbclose Forbindelsesnavn, "recordset-navnet" ' husk gåseøjne ved recordset-navnet ' ' Eksempel: dbopen connMedlemmer, "rsMedlemmer" ' husk gåseøjne ved recordset-navnet ' ' --------------------------------------------------
%>
<!-- #include file="db_conn.asp" -->
<%
dbopen connMedlemmer, "medlemmer.mdb"
sqlMedlemmer = "select * from tblMedlemmer where id = 1" set rsMedlemmer = connMedlemmer.execute(sqlMedlemmer)
if rsMedlemmer.bof or rsMedlemmer.eof then response.write "intet fundet" else response.write "fundet " & rsMedlemmer("mycomment") end if
dbclose connMedlemmer, rsMedlemmer
%>
Du bestemmer selv antallet af databaser, og navnene på forbindelsen og navnene recordsettene. Du må bare ikke brug de samme navne, til de forskellige forbindelser..
Jeg har rettet dbclose-funktionen.. brug denne i stedet..
Med denne kode, kan du bruge så mange databaser du vil/serveren tillader:
-- db_conn.asp (dette er include-filen.. ret filnavnet på filen og i include-linien)
<% function dbopen(nameconn, namedb) Set nameconn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath(namedb) dbopen = nameconn.Open(DSN) end function
function dbclose(nameconn, namers) nameconn.Close set namers = nothing set nameconn = Nothing end function %>
-- index.asp (kald den hvad du vil) --
<%
Option Explicit ' ALLE variabler SKAL defineres = undgå stavefejl!
dim dsn ' skal bruges til INCLUDE -- MEN! må ikke defineres i INCLUDE!!
' --- Her dimmes de variabler, der skal bruges på denne side: dim rsMedlemmer, rs2 ' variablerne kan omdøbes, bruges på nuværende side = RecordSet dim connMedlemmer, conn2 ' variablerne kan omdøbes, bruges på nuværende side = Connection dim sqlMedlemmer, sql2' variablerne kan omdøbes, bruges på nuværende side = SQL-sætningen
' -------------------------------------------------- ' Funktion til at åbne forbindelsen: ' dbopen Forbindelsesnavn, "database-filnavnet" ' husk gåseøjne ved filnavnet ' ' Eksempel: dbopen connMedlemmer, "medlemmer.mdb" ' husk gåseøjne ved filnavnet ' ' ' Funktion til at lukke forbindelsen: ' dbclose Forbindelsesnavn, "recordset-navnet" ' husk gåseøjne ved recordset-navnet ' ' Eksempel: dbopen connMedlemmer, "rsMedlemmer" ' husk gåseøjne ved recordset-navnet ' ' --------------------------------------------------
%>
<!-- #include file="db_conn.asp" -->
<%
dbopen connMedlemmer, "medlemmer.mdb"
sqlMedlemmer = "select * from tblMedlemmer where id = 1" set rsMedlemmer = connMedlemmer.execute(sqlMedlemmer)
if rsMedlemmer.bof or rsMedlemmer.eof then response.write "intet fundet" else response.write "fundet " & rsMedlemmer("mycomment") end if
dbclose connMedlemmer, rsMedlemmer
%>
Du bestemmer selv antallet af databaser, og navnene på forbindelsen og navnene recordsettene. Du må bare ikke brug de samme navne, til de forskellige forbindelser..
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.