Loop +tabell
9 svar · 389 visningar · startad av fredrik99
Du kan använda ADOX t.ex. det finns ett färdigt skript om du tittar i skriptarkivet för ASP. EN del databaser har också kommandon eller vyer som man kan slå i. I det fallet är det alltså olika mellan DBMS.
Normalt sett så behöver man aldrig göra sådana saker i en vanlig applikation, så jag undrar bara varför du behöver det.
http://webforum.aleborg.com/forum/showthread.php?s=&threadid=37445
Inte så lätt att ladda hem scriptet nu när wF ligger på en annan server :h
ahh... är inte säker men...
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("din_db.mdb")
Set RS = Conn.OpenSchema(28)
Do Until RS.EOF
If RS("Table_Name") = Request.QueryString("Tabell") Then
PrimaryColumn = RS("Column_Name")
End If
RS.MoveNext
Loop
If Len(Request.QueryString("Tabell")) > 0 Then
Set RSTyp = Conn.Execute("Select " & PrimaryColumn &" From " & Request.QueryString("Tabell"))
PrimaryColumnDataType = RSTyp(PrimaryColumn).Type
End If
%>
Tabeller
<%
'Set objADOXDatabase = Server.CreateObject("ADOX.Catalog")
'objADOXDatabase.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../data/db.mdb")
'For Each objTable in objADOXDatabase.Tables
' Response.Write objTable.Name & "<br>"
'Next
%>
<%
Set Connect = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("din_db.mdb")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";"
Set RecSet = Connect.OpenSchema(20)
Do while Not RecSet.EOF
If Trim(RecSet("TABLE_TYPE")) = "TABLE" Then
If Request.QueryString("Tabell") = RecSet("Table_Name") Then
Selected = "Selected"
Else
Selected = ""
End If
Response.Write " " & RecSet.Fields("TABLE_NAME") & " " & VbCrLf
End If
RecSet.MoveNext
Loop
set conn = nothing
close.conn
%>
Så mycket kod för att loopa ut tabellerna i en databas? Du skojar :e
hmm... ja... kanske det. Har inte testar :)
Denna kod räcker för att endast lista tabellerna i databasen:
<%
Set objADOXDatabase = Server.CreateObject("ADOX.Catalog")
objADOXDatabase.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../data/db.mdb")
For Each objTable in objADOXDatabase.Tables
Response.Write objTable.Name & "<br>"
Next
Set objADOXDatabase = Nothing
%>
cya,
PatrikB
Tack :e
Jag fick upp tabellerna PLUS dessa:
MSysAccessObjects
MSysACEs
MSysObjects
MSysQueries
MSysRelationships
Finns det inte något sätt att ta bort dem?
<%
Set objADOXDatabase = Server.CreateObject("ADOX.Catalog")
objADOXDatabase.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../data/db.mdb")
For Each objTable in objADOXDatabase.Tables
strTableName = objTable.Name
If Left(strTableName,4) <> "MSys" Then
Response.Write objTable.Name & "<br>"
End If
Next
Set objADOXDatabase = Nothing
%>
cya,
PatrikB
Tackar :e :e :e