webForumDet fria alternativet
Logga in / Bli medlem

Array?

ASP

4 svar · 482 visningar · startad av tomas21

Medlem sedan feb. 2003130 inlägg
Trådstart#1

Hej!

Jag tänkte göra en liten kodsnutt som tar ut namnent på alla fält i en tabell och sedan lägger in namnet i en array.

Alltså:
SQL = Markera allt från tabellen table
Loopa igenom tabellen
array = array[fält.namn]

Jag vet inte hur jag ska åstadkomma detta hoppas någon kan hjälpa mig.

Medlem sedan nov. 20017 144 inlägg
#2

Så här kanske:

Set RecSet = Connect.Execute("SELECT * FROM tabellen")

dim a,i
a = RecSet.Fields.Count
dim faltArray()
redim faltArray(a)
For i = 0 to RecSet.Fields.Count - 1
faltArray(i) = RecSet(i).Name
Response.Write faltArray(i) & "<br>"
next
Medlem sedan juli 20022 537 inlägg
#3

Varför inte köra GetRows?

Medlem sedan juni 200032 967 inlägg
#4

Vimp skrev:

Varför inte köra GetRows?

Med GetRows får man ju bara tabellens innehåll, inte fältnamnen.

Medlem sedan feb. 2003130 inlägg
#5

Tack allihop för era svar.

JesperT svar var det som jag sökte.

Det jag egentligen ville göra med denna kod var att jag ville kolla om det fanns ett fält bild i tabellen utefter det så skulle mitt script reagera på olika sätt.

Jag löste det på följande sätt:

<%
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/db1.mdb")&"
Set RecSet = Server.CreateObject("ADODB.Recordset")

Addera = "Select * From " & Request.QueryString("tabell")
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

dim a,i
a = RecSet.Fields.Count
'dim faltArray()
redim faltArray(a)
For i = 0 to RecSet.Fields.Count - 1
faltArray(i) = RecSet(i).Name
if faltArray(i) = "Bild" Then
pic = faltArray(i)
End If
next
%>

Det som koden ovan har gjort är att den har gett variabeln pic värdet som finns i fältet Bild. Sen är det enkelt att jobba med denna tex genom olika villkor som tex:

<% If pic = "Bild" Then
       Response.Write "Denna tabell innehåller ett fält som heter bild"
       Else
       Response.Write ""
       End If
%>

Hoppas att någon annan har nytta av detta.

253 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)