2009-11-02 14 views
6

Zastanawiam się, czy ktoś może pomóc:Pobieranie nazwy rekordów ADO Field (Classic ASP)

Krótko mówiąc, używam MSSQL2005 zbudować tabeli przestawnej. Analizowane dane są ograniczone zakresem dat (wszystkie dane na 1 tydzień od najbliższego poniedziałku do wybranej daty)

Po uruchomieniu zapisanego procesu i przekazaniu go daty, otrzymuję poprawną tabelę z powrotem, np .:

Czas | 1 stycznia 09 | 2 stycznia 09 | 3 stycznia 09 | ...

09:00 | 0 | 9 | 25 | ...

09:30 | 8 | 27 | 65 | ...

10:00 | 20 | 44 | 112 | ...

(Przeprosiny za okropne formatowanie "tabeli").

Jedyny problem jaki mam to to, że nagłówki kolumn będą się różnić w zależności od daty przekazanej do SP (Żądana data wyświetlenia) i logiki wewnątrz SP (która zmusza kolumnę po lewej stronie do bycia najbliższą Od poniedziałku do podanej daty).

To oznacza, że ​​kiedy wyświetlane wyniki do użytkownika, I (obecnie) trzeba powielać logiki datę sprawdzania w klasycznym ASP [łatwy ale konserwacji fail]

Co naprawdę potrzebne jest sposobem pobieranie nazw kolumn z samego zestawu rekordów.

Czy ktoś może wskazać mi właściwy kierunek?

Zrobiłem Google, ale wszystkie wyniki, które wydaje mi się, odnoszą się do czytania schematu tabeli - co nie pomaga w tym przypadku, ponieważ mój stół jest generowany w locie w pamięci.

Wiele z góry dzięki za wszelką pomoc można zapewnić

Odpowiedz

7

Biorąc pod uwagę rekord ADO zestaw można zrobić z grubsza następująco (to jest w kodzie psuedo):

foreach (field in rs.Fields) 
{ 
    alert(field.Name); 
} 

To daje nazwę tego pola sprawdź to documentation.

+0

To było żenująco prosty - za pomocą właściwość .Name. Nie trzeba dodawać, że działało idealnie. Dziękuję Ci. – Basic

+0

Bez problemu, miło mi pomóc! – JoshBerke

+0

Biorąc pod uwagę, że '.Name' nie jest udokumentowane (np.) [Tutaj] (http://www.w3schools.com/ado/ado_ref_recordset.asp), nie byłbym zbyt zawstydzony. – iconoclast

4

Coś jak to powinno wystarczyć: -

<table> 
    <thead> 
     <tr> 
     <%For Each fld in rst.Fields%> 
      <th><span><%=Server.HTMLEncode(fld.Name)%></span></th> 
     <%Next %> 
     </tr> 
    </thead> 
    <tbody> 
<% 
    Do Until rst.EOF 
     OutputRow rst.Fields 
     rst.MoveNext 
    Loop 
%> 
    </tbody> 
</table> 

Sub OutputRow(fields) 
%> 
     <tr> 
     <%For Each fld in fields%> 
      <td><span><%=Server.HTMLEncode(fld.Name)%></span></td> 
     <%Next %> 
     </tr> 
<% 
End Sub 
%> 
+0

Używam tego dla mojego kodu, ale nagłówki kolumn są wyświetlane w każdym wierszu? –

+0

@BenHamilton Bit późno, ale edytuj Sub do HTMLEncode fld.Value not fld.Name – Albofish

Powiązane problemy