Avatar billede mrdj Nybegynder
23. maj 2005 - 10:17 Der 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
Avatar billede thesurfer Nybegynder
23. maj 2005 - 11:48 #1
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..
Avatar billede thesurfer Nybegynder
23. maj 2005 - 11:51 #2
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..
Avatar billede mrdj Nybegynder
05. juli 2005 - 23:06 #3
Tak for hjælpen
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