Avatar billede busschou Praktikant
28. maj 2005 - 12:15 Der er 8 kommentarer og
1 løsning

Finde alt i databasen

Hvordan kan jeg via sql få listet alt i min database
Jeg har ikke access på min computer men i forbindelse med en asp side vil jeg gerne kunne se hvad databasen indeholder.
I princippet kender jeg database navnet og kan lave en Jet forbindelse.
Jeg ønsker via sql at få listet samtlige tabeller i databasen.
Jeg ønsker også få listet felterne i tabellerne samt felternes type mm.
Hvordan gør jeg det?
Avatar billede busschou Praktikant
28. maj 2005 - 12:29 #1
Jeg kender godt sql. Men jeg er i tvivl om hvordan man får tabel og felt navnene samt deres attributer ud af en database. Synes jeg har søgt forgæves efter det
Avatar billede ksoren Nybegynder
28. maj 2005 - 12:37 #2
Avatar billede busschou Praktikant
28. maj 2005 - 13:06 #3
Der er jo nok at gå i krig med.
Du har ikke tilfældigvis koden til at løbe databasen igennem, liste hver tabel med tabellens felter og typer?
Ellers må jeg jo forsøge mig frem
Avatar billede busschou Praktikant
28. maj 2005 - 13:10 #4
Nå jeg må jo nok tage det fra en ende af. Der er ski meget at vælge mellem. Nogle af metoderne tillader den godt nok ikke, men hvad.
Det var jo det jeg søgte så smid et svar min ven :o)
Avatar billede busschou Praktikant
28. maj 2005 - 13:33 #5
Hey kom lige i tanke om noget. Til php/mysql benytter jeg jo phpMyAdmin.
Mon der findes et tilsvarende produkt til asp/access ?
Kunne evt oprette et nyt spg til det. Men det kunne jo være. Så slipper jeg besværet.
Tror jeg opretter et nyt spørgsmål til det
Avatar billede ksoren Nybegynder
28. maj 2005 - 14:10 #6
Et primitivt eksempel, lister tabeller og kolonner

Set conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=database.mdb"

Const adSchemaColumns = 4
Const adSchemaTables = 20

Set rs = conn.OpenSchema(adSchemaTables)

Do Until rs.EOF
    ' gennemløb tabeller
    If rs.Fields("TABLE_TYPE") = "TABLE" Then

        tablename = rs("TABLE_NAME")
        Response.Write "Tabel: " & tablename & "<br>"

        ' gennemløb kolonner i tabellen
        Set rs2 = conn.OpenSchema(adSchemaColumns, Array(Empty, Empty, tablename))
        Do Until rs2.EOF
            Response.Write rs2("COLUMN_NAME") & "<br>"
            rs2.MoveNext
        Loop

        rs2.Close

        Response.Write "<hr>"
    End If

    rs.MoveNext
Loop
Avatar billede busschou Praktikant
28. maj 2005 - 14:21 #7
ksoren >> Takker for hjælpen. Havde luret det var 4 jeg skulle benytte - bruger den sådan her
---
Set Conn = Server.CreateObject("ADODB.Connection")
DNS      = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=mysource"
Conn.Open DNS
Set rs=Conn.OpenSchema(4)
response.write "<table border=""1"" width=""100%"">"
do until rs.EOF
  for each x in rs.Fields
    response.write "<tr><td>"
    response.write(x.name)
    response.write "</td><td>"
    response.write(x.type)
    response.write "</td><td>"
    response.write(x.value)
    response.write "</td></tr>"
  next
rs.MoveNext
loop
rs.close
conn.close
---
Herved får jeg også datatyper, defaults osv osv. Eneste er at datatypen er et tal, som så skal slås op i endnu en tabel hehe. Men det er til at klare
Har også lavet et nyt spørgsmål fordi jeg pludselig fik en "aha" oplevelse
Se evt om du kender svaret:
http://www.eksperten.dk/spm/621391
Avatar billede busschou Praktikant
14. juni 2005 - 21:57 #8
ksoeren >> points?
Avatar billede busschou Praktikant
25. juni 2005 - 08:53 #9
Eftersom der er gået et pænt stykke tid nu og der er gang i mails fra exp igen så lukker jeg :o)
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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