Avatar billede moffer Nybegynder
07. december 1999 - 09:54 Der er 25 kommentarer

Tja...udtræk af kategorier fra db....

Hej,

Jeg har en access db, hvor i mine kategorier er listet som tabeller...

Dem vil jeg kan have trukket ud på en side...

Med en href til kategoriens navn...
I href'et skal der være et billede....

(fx. <a href='" & kategori &".asp'><img src='billede.gif'>Kategori navn</a> )

Hvordan gøres det nemmest ?

/Moffer
Avatar billede nej Nybegynder
07. december 1999 - 10:17 #1
Jeg skulle ikke mene du kan udtrække dine tabelnavne. Du kalder jo dine data med først tabel navn, og så kollonenavn, de to skal man vel kende for at få sine data?

Du kan jo eventuelt oprette en tabel med dine kategorier, så kan du trække dem ud derfra, eventuelt med et ID så der er styr på det.

Mvh Emil
Avatar billede moffer Nybegynder
07. december 1999 - 10:24 #2
Det ville da være nemmere hvis jeg kunne "nøjes" med i starten at udtrække mit tabelnavn fra DB'en...

/Moffer
Avatar billede nej Nybegynder
07. december 1999 - 10:26 #3
Ja, hvis man kan :-)

men jeg ved bare ikke/har aldrig hørt om hvordan man gør :-)

Mvh Emil
Avatar billede moffer Nybegynder
07. december 1999 - 10:28 #4
Så må jeg desværre afvise dit svar...
Avatar billede nej Nybegynder
07. december 1999 - 10:30 #5
Det er også fair nok, ovejede længe om jeg skulle lave det et svar eller ej, for der var jo ikke meget du kunne bruge til noget, andet end jeg kunne fortælle hvad jeg ved :-)

Mvh Emil
Avatar billede ricardo Nybegynder
07. december 1999 - 10:45 #6
<i>Jeg skulle ikke mene du kan udtrække dine tabelnavne.</i>

Det kan man. Jeg har lavet tags'ene lidt om...det finder du selv ud af.

set rs = server.CreateObject"ADODB.Recordset")
set rs = conn.openschema(4)
Response.Write("[table border=1]")
do until rs.EOF
if left(rs("table_name"),1) = ucase(left(rs("table_name"),1)) then
if temp <> rs("table_name") then
Response.Write("[/table][br][br][table border=1]")
end if
temp = rs("table_name")
Response.Write("[tr]")
Response.Write("[td]")
response.write(rs("table_name"))
Response.Write("[/td]")
Response.Write("[td]")
Response.write(rs("column_name"))
Response.Write("[/td]")
Response.Write("[/tr]")
end if
rs.MoveNext
loop
Response.Write("[/table]")
Avatar billede moffer Nybegynder
07. december 1999 - 11:02 #7
Min kode ser nu ud som følger:

----
<%
  Set Rs = Server.CreateObject("ADODB.Connection")
  DBPath = "DBQ=" & server.mappath("db/freestuff.mdb")
  Rs.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath
  Set Rs = conn.openschema(4)
%>
<%
Response.Write("[table border=1]")
do until rs.EOF
if left(rs("table_name"),1) = ucase(left(rs("table_name"),1)) then
if temp <> rs("table_name") then
Response.Write("[/table][br][br][table border=1]")
end if
temp = rs("table_name")
Response.Write("[tr]")
Response.Write("[td]")
response.write(rs("table_name"))
Response.Write("[/td]")
Response.Write("[td]")
Response.write(rs("column_name"))
Response.Write("[/td]")
Response.Write("[/tr]")
end if
rs.MoveNext
loop
Response.Write("[/table]")
%>
----
Den giver følgende fejl:
Microsoft VBScript runtime error '800a01a8'

Object required: 'conn'

/freestuff/vis_kat2.asp, line 5

Line 5: Set Rs = conn.openschema(4)

/Moffer
Avatar billede ricardo Nybegynder
07. december 1999 - 11:27 #8
OK, du skal nok redigere databaseforbindelsen så den peger på det rigtige DB.

Du har sikkert en connection du kan bruge allerede, ikke?
Avatar billede ricardo Nybegynder
07. december 1999 - 11:29 #9
Ups!

Prøv det her:

Set conn = Server.CreateObject("ADODB.Connection")

En svipser fra min side.
Avatar billede moffer Nybegynder
07. december 1999 - 11:30 #10
Det er min egen conection jeg har sat ind...

Hvad gør denne linje egentlig:
Set Rs = conn.openschema(4)


/Moffer
Avatar billede moffer Nybegynder
07. december 1999 - 11:56 #11
Giver denne fejl:
Microsoft VBScript runtime error '800a01a8'

Object required: 'Rs'

/freestuff/vis_kat2.asp, line 4

/Moffer
Avatar billede ricardo Nybegynder
07. december 1999 - 12:57 #12
Set Rs = conn.openschema(4)

initialiserer OpenSchema metoden på db-forbindelsen.

Jeg glemte at sige at denne metode virker IKKE med Personal Web Server.
Avatar billede moffer Nybegynder
07. december 1999 - 13:17 #13
Hvordan vil du så lave det ellers...

Jeg kan kun teste på PWS....

/Moffer
Avatar billede ricardo Nybegynder
07. december 1999 - 16:28 #14
Desværre - så det kan ikke blive anderledes.
Avatar billede moffer Nybegynder
08. december 1999 - 09:14 #15
Der må da være en metode til at gøre dette med, så jeg både kan køre det på NT og PWS ! ...

/Moffer
Avatar billede moffer Nybegynder
08. december 1999 - 09:21 #16
Hej...

Nu er jeg startet forfra og har forbindelse til en NT Server...

Nu giver den en fejl i linie 4:
ADODB.Recordset error '800a0e7d'

The application requested an operation on an object with a reference to a closed or invalid Connection object.

/freestuff/vis_kat2.asp, line 4

---

Koden:
---
<%
set rs = server.CreateObject("ADODB.Recordset")
DBPath = "DBQ=" & server.mappath("db/freestuff.mdb")
Rs.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath
set rs = conn.openschema(4)
Response.Write("[table border=1]")
do until rs.EOF
if left(rs("table_name"),1) = ucase(left(rs("table_name"),1)) then
if temp <> rs("table_name") then
Response.Write("[/table][br][br][table border=1]")
end if
temp = rs("table_name")
Response.Write("[tr]")
Response.Write("[td]")
response.write(rs("table_name"))
Response.Write("[/td]")
Response.Write("[td]")
Response.write(rs("column_name"))
Response.Write("[/td]")
Response.Write("[/tr]")
end if
rs.MoveNext
loop
Response.Write("[/table]")
%>

/Moffer
Avatar billede ricardo Nybegynder
08. december 1999 - 09:31 #17
Jeg har den "rigtige" kode derhjemme - jeg poster den i morgen.
Avatar billede moffer Nybegynder
08. december 1999 - 10:07 #18
oki
Avatar billede morpheus Nybegynder
09. december 1999 - 12:09 #19
o O (Bli'r det mon inden kl. 15.00 ????)
Avatar billede ricardo Nybegynder
10. december 1999 - 09:30 #20
Nu har jeg fået den til at virke med PWS:

Jeg går ud fra, at du har en forbindelse til DB'en - jeg kalder den "conn" i dette eksempel

set rs = conn.openschema(4)

while not rs.eof

response.write rs("TABLE_NAME") & ": " & rs("COLUMN_NAME") & "<BR>" & VbCrLf
rs.movenext
wend

Du får også nogle felter der hedder MySysInfo2 (eller noget i den stil - Access har nogle skulte tabeller til systemindstillinger, osv) - dem kan du filtrere ud med

If rs("TABLE_NAME") <> "MySysInfo2" Then

...osv.

Du kunne også prøve

while not rs.eof

For each fld in rs.fields

response.write fld.name & ": "& fld.value & "<br>" & VbCrLf

Next

rs.movenext
wend

- men som du nok finder ud af, er det lidt for meget af det gode :)
Avatar billede moffer Nybegynder
10. december 1999 - 10:22 #21
Sagde du ikke at "conn.openschema(4)" ikke virkede på PWS ?

/Moffer
Avatar billede ricardo Nybegynder
10. december 1999 - 15:42 #22
Det var en fejl i min kode :)

Nu virker den i hvert fald fint på PWS på både NT Workstation og Win98.
Avatar billede ricardo Nybegynder
23. december 1999 - 13:53 #23
moffer: jeg sidder og tænker på, hvor points'ene blev af? Den kode jeg leverede virker fint.
Avatar billede capion Nybegynder
20. maj 2001 - 23:26 #24
Moffer.. Keep Cool *S* (Hey ups.. din billeder sættes op i 2 rækker her..)

<%
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath (\"dinbase.mdb\")
strSQL = \"Select * from dintabel where kategori =\" & Request.QueryString(\"id\")
Set RS = Conn.Execute(strSQL)
RS2 = Conn.Execute(countSQL)
%>
<TABLE>
<TR>
<% tmp = 0
do while not rs.eof %>
<TD><% =\"<a href=http://\" & rs(\"dithttplink\") & \"><img src=\'\" & rs(\"ditfotolink\") & \"\' border=0></a>\" %></TD>

<%
if tmp = 1 then
response.write(\"</TR><TR>\")
end if
tmp = 1 - tmp
rs.movenext
loop
%>
</TR>
</TABLE>

<%
rs.Close
Set rs = Nothing
%>

id overfører du fra en startside så´en her :

<%Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath (\"dinbase.mdb\")
<div align=\"center\">
<center>
<table border=\"0\" width=\"100%\" style=\"font-size: 10 pt\" cellspacing=\"1\">
<tr><td width=\"190\">
<ul>
<li>Response.Write (\"<a href=\'dinandenside.asp?id=1\'>fotoside 1 </a>\"</li>
<li>Response.Write (\"<a href=\'dinandenside.asp?id=2\'>fotoside 2 </a>\"</li>
</ul>
</td>

id=1\' og id=2\' er id´erne som overføres til kaldet på dinandenside.asp (hentes i id i din database.. id eller hvad du nu bruger til at holde orden i links´ne og billederne)

Håber du kan bruge det til noget.
Avatar billede capion Nybegynder
20. maj 2001 - 23:33 #25
by the way.. 1.del af koden er = dinandenside.asp

ned til lige før \"id overfører du fra...\" så begynder startside-koden (f.eks. startside.asp)
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