Avatar billede thagene Nybegynder
10. januar 2002 - 17:05 Der er 8 kommentarer og
1 løsning

Database åbning udtæk fra flere tabeller

Jeg har lavet 4 små tabels i disse tabels på min asp side, men da der nu skal laves udtræk fra 4 forskellige tabeller i databasen her jeg indtil videre lavet 4 database åbninger, hvilket gør siden for at sige det mildt bliver en \"Snegl\" til at loade.

er det ikke muligt kun at lave en åbning og så efterhånden trække det ud af de forskellige tabels ???

eks på hvordan en af åbningerne ser ud

  <table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" style=\"border-collapse: collapse\" width=\"90%\" id=\"AutoNumber1\">
  <tr>
<td width=\"100%\" height=\"17\" bgcolor=\"#93B3ED\" style=\"padding: 0\" class=\"LblueUFrontCellT\">
<p style=\"margin-top: 0; margin-bottom: 0\" align=\"center\">
<b><font face=\"Verdana\" size=\"1\">Sidste Opdatering</font></b></td>
  </tr>
  <tr>
<td width=\"100%\" height=\"67\" valign=\"top\" class=\"LblueUFrontCell\">
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse\" width=\"100%\" id=\"AutoNumber2\">
  <tr>
<% if mode = \"\" then
Set myConn = Server.CreateObject(\"ADODB.Connection\")
myConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"Data/DataBank.mdb\")
strSQL = \"SELECT * FROM NewsTodaysupdate Order By Id DESC \"


Set rs = myConn.Execute(strSQL)

%>
    <td width=\"8%\">
    <p style=\"margin-top: 0; margin-bottom: 0\"><font face=\"Verdana\" size=\"1\"><b>Opdateret:&nbsp;</b><%=Rs(\"date\")%></font></p>
    <hr color=\"#000000\" size=\"1\" width=\"90%\" noshade align=\"left\">
    <p style=\"margin-top: 0; margin-bottom: 0\"><font face=\"Verdana\" size=\"1\"><%=Rs(\"News\")%></font></td>
  </tr>
<%
myConn.Close
Set myConn = Nothing
end if %>
</table>
</td>
  </tr>
</table>
Avatar billede cygnet Praktikant
10. januar 2002 - 17:14 #1
jo du laver bare forskellige sqlsætninger ala recordsæt ala

strSQL1 = \"SELECT * FROM NewsTodaysupdate Order By Id DESC \"

Set rs1 = myConn.Execute(strSQL1)

strSQL2 = \"SELECT * FROM NewsTodaysupdate Order By Id DESC \"

Set rs2 = myConn.Execute(strSQL1)
Avatar billede cool_casper Nybegynder
10. januar 2002 - 17:16 #2
Du kan nøjes med at skrive :

strSQL = \"SELECT * FROM dintabel Order By Id DESC \"


Set rs = myConn.Execute(strSQL)

... i anden, tredje og fjerde tabeludtræk.... Sådan ca. sådan her:

Set myConn = Server.CreateObject(\"ADODB.Connection\")
myConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"Data/DataBank.mdb\")
strSQL = \"SELECT * FROM tabel1 Order By Id DESC \"


Set rs = myConn.Execute(strSQL)

\' Her er din kode......


strSQL = \"SELECT * FROM tabel2 Order By Id DESC \"


Set rs = myConn.Execute(strSQL)


\' Her er din kode 2. gang


strSQL = \"SELECT * FROM tabel3 Order By Id DESC \"


Set rs = myConn.Execute(strSQL)

\' Her er din kode 3. gang


strSQL = \"SELECT * FROM tabel4 Order By Id DESC \"


Set rs = myConn.Execute(strSQL)


\' Din kode sidste gang !

rs.Close
Set rs = Nothing
Avatar billede casm_ Nybegynder
10. januar 2002 - 17:23 #3
må jeg lige spørge dertil, hvis ovenstående virker, hvad gør man så hvis der samme felt navne i db\'en?? jeg plejer nemlig selv at oprette et recordset til hver enkel tabel
Avatar billede cool_casper Nybegynder
10. januar 2002 - 17:25 #4
Du gemmer dem i en variable som ikke er den samme.. Eks.:

table1_navn = rs(\"Name\")

[Udfør SQL]

table2_navn = rs(\"Name\")

Avatar billede cool_casper Nybegynder
10. januar 2002 - 17:27 #5
Thx for poinz..... Håber du kan bruge det!
Avatar billede microsoft Nybegynder
10. januar 2002 - 17:32 #6
Jeg går udfra du vil sanle alle tabeller i et udtræk, og fremvvise det på din side.
- Altså engang ind i databasen og slut.

Jeg har denne løsning.

<%
Set myConn = Server.CreateObject(\"ADODB.Connection\")
myConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"Data/DataBank.mdb\")

strSQL= \"
SELECT tabel1.kollonenavn1, tabel1.kolonnenavn2, tabel2.kolonnenavn1, tabel2.kolonnenavn2, tabel3.kolonnenavn1, tabel3.kolonnenavn2, tabel4.kolonnenavn1, tabel4,kolonnenavn2
INNER JOIN tabel2 ON tabel1.kolonnenavn1=tabel2.kolonnenavn2
INNER JOIN tabel3 ON tabel2.kolonnenavn1=tabel3.kolonnenavn2
INNER JOIN table4 ON
tabel3.kolonnenavn1=tabel4.kolonenavn2\"

Set rs = myConn.Execute(strSQL)

If WHILE NOT rs.EOF
Response.Write oRS(\"kolonnenavn1\") & oRS(\"kolonnenavn2\") .......osv.

  rs.MoveNext
Loop

rs.Close
Set rs = Nothing
myConn.Close
Set myConn = Nothing
%>
Avatar billede cygnet Praktikant
10. januar 2002 - 17:33 #7
Når man gå ind og erklare en ny sql går den ind og slette den forrige..
Avatar billede thagene Nybegynder
10. januar 2002 - 17:35 #8
ok, her lige ordnet det min side hastighed er øget med 500 % *S*

Mange tak alle :-)
Avatar billede cool_casper Nybegynder
10. januar 2002 - 17:36 #9
dygnet > Det er også derfor man skal putte sine værdi\'er ind i variabler først... !
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