Avatar billede sjh Nybegynder
21. juni 2003 - 03:03 Der er 14 kommentarer og
1 løsning

XML oversigt over en database.

Hvordan ville man lave en oversigt over en database i xml.
Jeg har lavet det sådan, men ved ikke om det er den rigtige måde at gøre det på.


<?xml version="1.0" encoding="ISO-8859-1"?>
<Database>
    <Table>
        <Name>Tabel1</Name>
        <Field>
            <Name>ID</Name>
            <Name>Felt1</Name>
            <Name>Felt2</Name>
            <Name>Felt3</Name>
        </Field>
    </Table>
    <Table>
        <Name>Tabel2</Name>
        <Field>
            <Name>ID</Name>
            <Name>Felt1</Name>
            <Name>Felt2</Name>
            <Name>Felt3</Name>
        </Field>
    </Table>
    <Query>
        <Name>Forespørgsel1</Name>
        <Field>
            <Name>Tabel1.ID</Name>
            <Name>Tabel2.ID</Name>
            <Name>Tabel1.Felt1</Name>
            <Name>Tabel2.Felt1</Name>
        </Field>
    </Query>
    <Query>
        <Name>Forespørgsel2</Name>
        <Field>
            <Name>Tabel1.ID</Name>
            <Name>Tabel2.ID</Name>
            <Name>Tabel1.Felt2</Name>
            <Name>Tabel2.Felt2</Name>
        </Field>
    </Query>
    <Query>
        <Name>Forespørgsel3</Name>
        <Field>
            <Name>Tabel1.ID</Name>
            <Name>Tabel2.ID</Name>
            <Name>Tabel1.Felt3</Name>
            <Name>Tabel2.Felt3</Name>
        </Field>
    </Query>
</Database>
Avatar billede medions Nybegynder
21. juni 2003 - 09:58 #1
Jov,m det er sq fint fint!
Men je gvil nok mene du godt kunne fjerne <Field> og </Field> alle stederne, de er lidt overskydende! Det er oxo træls at skulle hive dem ud i programmering!

//>Rune
Avatar billede bearhugx Nybegynder
21. juni 2003 - 12:28 #2
Jeg mener ikke at din XML er tilstrækkelig ... Hvad du bl.a. mangler er datatyper --- Er felt1 f.eks. en tekststreng eller er det et tal -- Og er det en primærnøgle.

Og så bør man jo lige kommentere at en forspørgsel ikke kun er en samling af poster (fields) men bør også repræsentere forholdet mellem dem...
Derfor ville jeg som det mindste indsætte et eller andet SQL statement i dine queries...

Til sidst - hvis du absolut vil gøre det ordenligt i XML, så burde du måske sætte dig ned og lave enten en DTD eller et schema for din struktur, så din XML også kan valideres.

/Søren Munk Skrøder
Avatar billede bearhugx Nybegynder
21. juni 2003 - 12:36 #3
hvis du har mysql 4.1 så kan du forresten få den til at lave XML ved at bruge
  mysql -X

f.eks. har jeg en tabel, som hedder snydekoder, som man kan bede om at få beskrevet med "describe" keywordet...
Og der var outputtet følgende :

<?xml version="1.0"?>
<resultset statement="describe snydekoder">
  <row>
    <Field>id</Field>
    <Type>int(11) unsigned</Type>
    <Collation>binary</Collation>
    <Null></Null>
    <Key>PRI</Key>
    <Default>NULL</Default>
    <Extra>auto_increment</Extra>
  </row>
  <row>
    <Field>titel</Field>
    <Type>varchar(100)</Type>
    <Collation>latin1_swedish_ci</Collation>
    <Null></Null>
    <Key></Key>
    <Default></Default>
    <Extra></Extra>
  </row>
  <row>
    <Field>kode</Field>
    <Type>text</Type>
    <Collation>latin1_swedish_ci</Collation>
    <Null></Null>
    <Key></Key>
    <Default></Default>
    <Extra></Extra>
  </row>
  <row>
    <Field>placering</Field>
    <Type>char(1)</Type>
    <Collation>latin1_swedish_ci</Collation>
    <Null></Null>
    <Key></Key>
    <Default>#</Default>
    <Extra></Extra>
  </row>
  <row>
    <Field>oprettet</Field>
    <Type>datetime</Type>
    <Collation>latin1_swedish_ci</Collation>
    <Null>YES</Null>
    <Key></Key>
    <Default>NULL</Default>
    <Extra></Extra>
  </row>
</resultset>
Avatar billede sjh Nybegynder
21. juni 2003 - 15:05 #4
Jeg skulle måske havede sagt at det er en MS Access Database... Det skal bruges til en lille server hvor man sender en SQLString og for det tilbage i XML, men for at kunne gøre det skal man vide hvad der er af tabler osv...

Problemet er bare lige, hvor meget info der skal sendes for at vide havd der er af tabler osv... i databasen, og hvordan det ville se ud som XML.


Er det nok, eller hvorda kunne man ellers gøre??

<?xml version="1.0" encoding="ISO-8859-1"?>
<Database>
    <Table>
        <Name>Tabel1</Name>
        <Field>
            <Name Attributes="17" Type="4" Size="4">ID</Name>
            <Name Attributes="1" Type="8" Size="8">Dato</Name>
            <Name Attributes="1" Type="4" Size="4">Tal</Name>
            <Name Attributes="2" Type="10" Size="50">Tekst</Name>
            <Name Attributes="2" Type="12" Size="0">Notes</Name>
            <Name Attributes="1" Type="5" Size="8">Valuta</Name>
            <Name Attributes="1" Type="1" Size="1">Ja/Nej</Name>
            <Name Attributes="2" Type="11" Size="0">OLE-objekt</Name>
            <Name Attributes="32770" Type="12" Size="0">Hyperlink</Name>
        </Field>
    </Table>
</Database>
Avatar billede sjh Nybegynder
21. juni 2003 - 15:08 #5
ved ikke så meget om XML, og har ikke tid til at læse om det. :(
Avatar billede bearhugx Nybegynder
21. juni 2003 - 15:23 #6
hvis Type peger på en eller anden datatype, og du ikke ønsker at holde øje med ekstrainformation som f.eks. autonummerering eller primærnøgler, så er det vel ok...

Jeg unders dog over, hvad attributes skal bruges til ...

og for "læsbarhedens" skyld ville jeg nok opstille det som
<database>
  <table name="tabel1>
    <field name="id" type="..." ... />
    <field name="dato" type"..." ... />

    osv.
  </table>
</database>
Avatar billede sjh Nybegynder
21. juni 2003 - 15:48 #7
ok.. så må det være sådan ik..

<?xml version="1.0" encoding="ISO-8859-1"?>
<database>
  <table name="Tabel1">
    <field name="ID" attributes="17" type="4" size="4"/>
    <field name="Dato" attributes="1" type="8" size="8"/>
    <field name="Tal" attributes="1" type="4" size="4"/>
    <field name="Tekst" attributes="2" type="10" size="50"/>
  </table>
  <query name="Forespørgsel1">
    <field name="Tabel1.ID" attributes="17" type="4" size="4"/>
    <field name="Tabel1.Dato" attributes="1" type="8" size="8"/>
    <field name="Tabel1.Tal" attributes="1" type="4" size="4"/>
    <field name="Tabel1.Tekst" attributes="2" type="10" size="50"/>
  </query>
</database>
Avatar billede bearhugx Nybegynder
21. juni 2003 - 16:18 #8
hvad med sql'en omkring din forspørgel ... Den giver ikke nogen mening uden...
Avatar billede sjh Nybegynder
21. juni 2003 - 16:32 #9
det må være sådan så...


<?xml version="1.0" encoding="ISO-8859-1"?>
<database name="db1">
    <table name="Tabel1">
        <field name="ID" attributes="17" type="4" size="4"/>
        <field name="Dato" attributes="1" type="8" size="8"/>
        <field name="Tal" attributes="1" type="4" size="4"/>
        <field name="Tekst" attributes="2" type="10" size="50"/>
        <field name="Notes" attributes="2" type="12" size="0"/>
        <field name="Valuta" attributes="1" type="5" size="8"/>
        <field name="Ja/Nej" attributes="1" type="1" size="1"/>
        <field name="OLE-objekt" attributes="2" type="11" size="0"/>
        <field name="Hyperlink" attributes="32770" type="12" size="0"/>
    </table>
    <table name="Tabel2">
        <field name="ID" attributes="17" type="4" size="4"/>
        <field name="Felt1" attributes="2" type="10" size="50"/>
        <field name="Felt2" attributes="2" type="10" size="50"/>
        <field name="Felt3" attributes="2" type="10" size="50"/>
    </table>
    <query name="Forespørgsel1">
        <field name="Tabel1.ID" attributes="49" type="4" size="4"/>
        <field name="Tabel2.ID" attributes="49" type="4" size="4"/>
        <field name="Dato" attributes="33" type="8" size="8"/>
        <field name="Ja/Nej" attributes="33" type="1" size="1"/>
        <field name="Felt2" attributes="34" type="10" size="50"/>
        <field name="Felt3" attributes="34" type="10" size="50"/>
    </query>
</database>
Avatar billede sjh Nybegynder
21. juni 2003 - 16:45 #10
Det ser ud til at jeg godt kunne have sat point til 60 :-)
Avatar billede sjh Nybegynder
21. juni 2003 - 16:47 #11
ser det rigtig ud??
Avatar billede bearhugx Nybegynder
21. juni 2003 - 18:29 #12
udfra hvad jeg kan forstå du gerne vil have, så burde ovenstående være tilstrækkelig...
Avatar billede sjh Nybegynder
21. juni 2003 - 19:03 #13
Når nu tror jeg den er god kan den ikke bruges...

<?xml version="1.0" encoding="ISO-8859-1"?>
<database name="db1.mdb" version="3.0">
    <table name="Tabel1">
        <field name="ID" type="Autonumbering" size="4"/>
        <field name="Felt1" type="Text" size="50"/>
        <field name="Felt2" type="Note" size="0"/>
        <field name="Felt3" type="Number" size="4"/>
        <field name="Felt4" type="Date and hour" size="8"/>
        <field name="Felt5" type="Currency" size="8"/>
        <field name="Felt6" type="Boolean" size="1"/>
        <field name="Felt7" type="OLE-object" size="0"/>
        <field name="Felt8" type="Hyperlink" size="0"/>
    </table>
    <table name="Tabel2">
        <field name="ID" type="Autonumbering" size="4"/>
        <field name="Felt1" type="Text" size="50"/>
        <field name="Felt2" type="Text" size="100"/>
        <field name="Felt3" type="Text" size="255"/>
    </table>
    <query name="Forespørgsel1">
        <field name="Tabel1.ID" type="Autonumbering" size="4"/>
        <field name="Tabel1.Felt1" type="Text" size="50"/>
        <field name="Tabel1.Felt2" type="Note" size="0"/>
        <field name="Tabel1.Felt3" type="Number" size="4"/>
        <field name="Felt4" type="Date and hour" size="8"/>
        <field name="Felt5" type="Currency" size="8"/>
        <field name="Felt6" type="Boolean" size="1"/>
        <field name="Felt7" type="OLE-object" size="0"/>
        <field name="Felt8" type="Hyperlink" size="0"/>
        <field name="Tabel2.ID" type="Autonumbering" size="4"/>
        <field name="Tabel2.Felt1" type="Text" size="50"/>
        <field name="Tabel2.Felt2" type="Text" size="100"/>
        <field name="Tabel2.Felt3" type="Text" size="255"/>
    </query>
</database>
Avatar billede sjh Nybegynder
21. juni 2003 - 19:07 #14
Tak for hjælpen :-)
Avatar billede bearhugx Nybegynder
21. juni 2003 - 19:07 #15
den er fjong..
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