1. Du kan kalde rækker med et index i stedet for et navn. Løb derfor rs(x) igennem til du får en fejl (ikke flere kolonner)
set rs = con.execute("select * from enTabel") while not rs.eof f=0 do while true on error resume next response.write rs(f) if err.code <> 0 then response.write "<br>" err.Clear exit do end if on error goto 0 loop wend
2: Load data i et array med getrows set rs = con.execute("select * from enTabel") if not rs.eof then tmpArr = rs.getRows for x=0 to ubound(tmpArr,2) for y=0 to ubound(tmpArr) response.write tmpArr(y,x) next response.write "<br>" next end if
ps. Begge metoder er utestet så der er evt fejl, men du skulle gerne se princippet i koden :o)
Set conn = Server.CreateObject("ADODB.connection") Set rs = Server.CreateObject("ADODB.Recordset")
strDNS = "Din DNS" strSQL = "SELECT * FROM TABEL"
conn.open rs.open strSQL, conn
Nu har du så åbnet et ADODB recordset, hvilket giver dig mulighed for at køre kolonner igennem således: for each column in rs.fields response.write column.value & column.type '135 er fx. en dato sql type rs.movenext end if
Hov for-loopet er selvf. ikke helt korrekt. Her er logikken....
<table> <% firstRow = true while (rs.EOF = false) for each column in rs.fields if (firstRow) then response.write "<tr><td>" & column.name & "</td></tr>" else response.write "<tr><td>" & column.value & "</td></tr>" end if firstRow = false next rs.movnext wend %> </table>
2: Load data i et array med getrows set rs = con.execute("select * from enTabel") if not rs.eof then tmpArr = rs.getRows for x=0 to ubound(tmpArr,2) for y=0 to ubound(tmpArr) response.write tmpArr(y,x) next response.write "<br>" next rs.movenext end if
Ellers bliver rs aldrig EOF, og vil derfor blive ved med at loope..
->Stoffer Jeg har prøvet dit loop da jeg gerne vil have kollonne navn med, men den skriver kun navnet på den første kollonne og så fortsætter den med at skrive alt indhold?
->Thesurfer Metode 2 virker fint. Den giver fejl i din udgave: "Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record"
set rs = con.execute("select * from enTabel") while not rs.eof f=0 do while true on error resume next response.write rs(f) if err.code <> 0 then response.write "<br>" err.Clear exit do end if on error goto 0 rs.movenext loop wend
set rs = con.execute("select * from enTabel") while not rs.eof f=0 do while true on error resume next response.write rs(f) if err.code <> 0 then response.write "<br>" err.Clear exit do end if on error goto 0 loop rs.movenext wend
Det er den yderste loop, der har med rs.eof at gøre..
Umiddelbart synes jeg det lyder som en rigtig dårlig idé at bruge error handling på den måde, det må gør det langsommere...
Jeg skrev den kun lige hurtigt, og har kigget på løkken igen. der var et par fejl: <% firstRow = true while (rs.EOF = false) response.write "<tr>" for each column in rs.fields if (firstRow) then response.write "<td>" & column.name & "</td>" else response.write "<td>" & column.value & "</td>" end if firstRow = false next response.write "</tr>" rs.movenext wend %>
<% firstRow = true while (rs.EOF = false) response.write "<tr>" for each column in rs.fields if (firstRow) then response.write "<td>" & column.name & "</td>" else response.write "<td>" & column.value & "</td>" end if
next firstRow = false response.write "</tr>" rs.movenext wend %>
-> Stoffer Det ser rigtigt godt ud, men der er en fejl. Den første linie bliver ikke vist da den istedet viser navnet på kollonen.
Jeg har lagt jeres koder sammen... det ser grimt ud men virker efter hensigten :-)
response.write "<table border='1'><tr>"
Set Rs = Conn.Execute("SELECT * FROM "& request.querystring("table") &" ORDER BY noegle ASC;")
firstRow = true while (rs.EOF = false) for each column in rs.fields if (firstRow) then response.write "<td>"& column.name &"</td>" end if next firstRow = false rs.movenext wend
response.write "</tr>"
Set Rs = Conn.Execute("SELECT * FROM "& request.querystring("table") &" ORDER BY noegle ASC;")
<% if not rs.eof then response.write "<tr>" tmpArr = rs.getRows for x=0 to ubound(tmpArr,2) for y=0 to ubound(tmpArr) response.write "<td>"& tmpArr(y,x)&"</td>" next response.write "</tr>" next end if response.write "</table>"
Hejsa... ryddede lige op i mine mails og så denne her, som jeg ikke har fået svaret på Du har ret mht. første række, tænkte jeg ikke lige over...
her er lidt mere overskuelig end din løsning, hvis du vil optimere lidt..
<% if rs.EOF = false then response.write "<tr>" for each column in rs.fields response.write "<td><b>" & column.name & "</b></td>" next response.write "</tr>" end if while (rs.EOF = false) response.write "<tr>" for each column in rs.fields
response.write "<td>" & column.value & "</td>"
next
response.write "</tr>" rs.movenext wend %>
Synes godt om
Ny brugerNybegynder
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.