Florian: Tabellenfelder

Hallo zusammen,

ich bin immernoch am ASP Lernen - aber leider gibts dazu nicht so viele Referenzen wie zu meinem eigentlichen Favoriten PHP (Manchmal kann man sichs aber nicht raussuschen...)
Meine Frage: Wenn ich eine Tabellenstruktur nicht kenne, wie kann ich dann abfragen, welche Felder vorhanden sind und welche Eigenschaften sie haben (also z.B. max. Länge bei varchar). Hintergrund: Ich brauche eine flexible Eingabemaske, da sich die Datenbank (genauer die Zahl und Eigenschaften der einzelnen Felder in den Tabellen) in Zukunft (häufiger) ändern könnten und niemand das zu entwickelnde Tool ständig anpassen möchte, wenn ein Feld dazukommt oder verschwindet.

Danke für die Unterstützung und liebe Grüße
Florian

  1. Hi Florian

    ich bin immernoch am ASP Lernen - aber leider gibts dazu nicht so viele Referenzen wie zu meinem eigentlichen Favoriten PHP (Manchmal kann man sichs aber nicht raussuschen...)

    ASP ist gar nicht so übel, wenn man sich erst mal an die VBScript-Syntax und Eigenheiten gewöhnt hat.

    Meine Frage: Wenn ich eine Tabellenstruktur nicht kenne, wie kann ich dann abfragen, welche Felder vorhanden sind und welche Eigenschaften sie haben (also z.B. max. Länge bei varchar).

    Ich hoffe, du bist der englischen Sprache einigermassen mächtig. Unter http://www.w3schools.com/ado/ado_ref_field.asp findest du Infos zu ADO Field-Objekt, welches dir bestimmt weiterhelfen wird.

    Ein kurzes Beispiel:

    ' conn ist die ADO-Verbindung zur DB und wird hier nicht angegeben
    sSQL = "SELECT * FROM MyTable;"
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sSQL, conn
    For i=0 To rs.Fields.Count
      Response.Write rs.Fields(i).Name & "<br>"
    Next
    rs.Close
    Set rs = Nothing

    Das Beispiel sollte dir alle Feldnamen ausgeben. Merke dir die Seite http://www.w3schools.com, sie ist wirklich gut.

    FG & HTH

    Tom2

    --
    SELF-Code: (http://emmanuel.dammerer.at/selfcode.html)
    ss:| zu:) ls:& fo:) de:] va:) ch:] sh:( n4:& rl:° br:> js:| ie:% fl:( mo:}
    1. Hi Tom2,

      ASP ist gar nicht so übel, wenn man sich erst mal an die VBScript-Syntax und Eigenheiten gewöhnt hat.

      naja, PHP kann ich halt schon auswendig. Die Syntax is ja nich schlimm: VB war meine erste Sprache die ich gelernt hab (bevor ich sprechen lernte (-; ) - Aber is halt ne Weile her...

      Ich hoffe, du bist der englischen Sprache einigermassen mächtig.

      grad so ;-)

      ...
      For i=0 To rs.Fields.Count
        Response.Write rs.Fields(i).Name & "<br>"
      Next
      ...

      Sieht zumindest mal sehr gut aus :-)

      Merke dir die Seite http://www.w3schools.com, sie ist wirklich gut.

      Gleich gebookmarked...
      Danke für die Hilfe, das bringt mich gut voran :-)
      liebe Grüße
      Flo

    2. Und wenn ich jetzt nen JOIN hab, kann ich dann auch rausfinden, zu welcher Originaltabelle ein Feld gehört???

      1. In dem du im Join-Select-Statement z.b. den originaltabellen namen für jedes selektierte Feld davorschreibst:

        SELECT tabA.feld1 AS tabA_feld1,tabB.feld0 AS tabB_feld0
        FROM tabA INNER JOIN tabB ...

        usw. ... dann kannst du über die ADODB Field Collection eines Recordsets durch entsprechende Verwendung von String-Operationen auf Field.Name deine Originaltabelle herausfinden ...

        Übrigens gibt es sehr sehr viele, eine völlig ausreichende Menge von ASP Ressourcen im Netz ...

        • aspfaq.de
        • aspheute.com
        • devguru.com
        • dieses Forum samt Archiv
          ....

        Aber nochmal zu deinem Problem bzw. deiner Implementierung, ich stelle mal in den Raum, dass dein Ansatz nicht 100% geeignet ist.

        Gruß, Frank