legolas41: Access: Spaltennamen auslesen

Hallo!

Wie kann ich Spaltennamen einer Access Datenbank auslesen? Ich habe hier folgendes kleines Script und möchte es gerne so modifizieren, dass ich auch die Namen der Spalten auslesen kann. Kann mir bitte jemand helfen?

------------------------------------------
<%
strConnection = "Driver={Microsoft Access Driver (*.mdb)};DBQ="
strConnection = strConnection & Server.MapPath("../db/shop.mdb")
strConnection = strConnection & ";DriverId=25;FIL=MS Access;MaxBufferSize=512;PageTimeout=5;"

strSQL = "SELECT * FROM lager_shop"

Set conn = CreateObject("ADODB.Connection")
conn.Open strConnection
Set rs = CreateObject ("ADODB.Recordset")
rs.Open strSQL, conn

If Not rs.EOF and Not rs.BOF Then
        avarRecords = rs.GetRows()
Else
        bNoRecords = True
End If

Response.Write rs.BOF

rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing

If Not bNoRecords Then

nRecords = UBound(avarRecords,2)
    For intRecord = 0 To nRecords
         strIdField   = avarRecords(0,intRecord)
         strArtikel   = avarRecords(1,intRecord)
    Next
End If
%>
------------------------------------------

Greetings
legolas

  1. Kommando zurück!

    Hab die Lösung selbst gefunden, hier ist sie, falls es jemand interessiert:

    <%
    strConnection = "Driver={Microsoft Access Driver (*.mdb)};DBQ="
    strConnection = strConnection & Server.MapPath("../db/shop.mdb")
    strConnection = strConnection & ";DriverId=25;FIL=MS Access;MaxBufferSize=512;PageTimeout=5;"

    strSQL = "SELECT * FROM lager_shop"

    Set conn = CreateObject("ADODB.Connection")
    conn.Open strConnection
    Set rs = CreateObject ("ADODB.Recordset")
    rs.Open strSQL, conn

    If Not rs.EOF and Not rs.BOF Then
            avarRecords = rs.GetRows()
    Else
            bNoRecords = True
    End If

    '-------------------------
    'Hier ist der Zusatz
    for each feld in rs.fields
    Response.Write feld.name
    next
    '-------------------------

    rs.Close
    conn.Close
    Set rs = Nothing
    Set conn = Nothing

    If Not bNoRecords Then

    nRecords = UBound(avarRecords,2)
        For intRecord = 0 To nRecords
             strIdField   = avarRecords(0,intRecord)
             strArtikel   = avarRecords(1,intRecord)
        Next
    End If
    %>

    Sorry, wollte nicht spammen.

    legolas

  2. Hi, hallo

    warum so ein unnötiger Umweg, das Recordset erst in ein Array umzuformen mit .getRows ???

    ein Recordset ist doch schon "enumerable"
    die Navigation erfolgt mit .MoveNext/First/Last usw.

    ist das so eine doofe Angewohnheit aus PHP?

    wozu » Response.Write rs.BOF   ??

    der DB Zugriff mittels JET.OLEDB.4.0 ist auch performanter als erst über ODBC zu gehen

    Tschau, tschüß,
    Frank

    1. Hi!

      Das Response.Write rs.BOF gehört da eigentlich garnicht rein. Sorry, hab ich versehentlich drin gelassen.

      Auch die anderen Sachen sind nur deshalb drin, weil ich schnell ein bereits geschriebenes Script umgewandelt habe, um etwas zu testen.

      Greetings
      legolas