%@LANGUAGE="VBSCRIPT"%>
<%
If Request.QueryString("logout") = "true" Then Session("hdw_logged") = ""
If (Request.QueryString("verifylogin") = "1") And (Request.Form("password") = HDW_PASS) Then Session("hdw_logged") = "1"
Dim HDW_TABLE,cat, tbl
If Request.Form("hdw_updateitem") <> "" Then UpdateValues
ShowHeader
If Session("hdw_logged") = "" Then
ShowLoginForm
ElseIf Request.QueryString("action") = "edit" Then
ShowEdit
ElseIf Request.QueryString("table") <> "" Then
HDW_TABLE = Request.QueryString("table")
If Request.Form("accion") = "deleteitem" Then
DataC.Execute ("DELETE FROM " & HDW_TABLE & " WHERE " & HDW_MAIN_FIELD & "=" & Request.Form("valor1") )
End If
Set cat = Server.CreateObject ("ADOX.Catalog")
Set cat.ActiveConnection = DataC
Dim i, FoundTable
i = 0
FoundTable = false
While (i < cat.Tables.Count) And (Not FoundTable)
If UCase(cat.Tables(i).Name) = UCase(HDW_TABLE) Then FoundTable = True
i = i + 1
WEnd
If FoundTable Then
ShowList
Else
Response.Write "Table not found. Please note that you need al least one form submission in order to get some data into the table.
Go back...."
End If
Set cat = Nothing
Set tbl = Nothing
Else
ShowTableList
End If
ShowFooter
'*************************************************************************************
'*************************************************************************************
'*************************************************************************************
Sub ShowList
Set tbl = cat.Tables(HDW_TABLE)
Dim fields(1000), checkedFields(1000), fCount, cond_base, someChecked
fCount = tbl.Columns.Count
cond_base = ""
someChecked = False
For k = 0 To tbl.Columns.Count - 1 And (Not fExists)
fields(k) = tbl.Columns.Item(k)
cond_base = cond_base & "[" & tbl.Columns.Item(k) & "] like '%^%' OR "
If (Request.Form("hdwchecked_"&k) = "1") Then
checkedFields(k) = True
someChecked = True
Else
checkedFields(k) = False
End If
Next
cond_base = Left(cond_base,Len(cond_base) - 3)
If Not someChecked Then
checkedFields(0) = True
checkedFields(1) = True
checkedFields(2) = True
checkedFields(3) = True
checkedFields(4) = True
checkedFields(5) = True
checkedFields(6) = True
End If
var_IncludeName = "default.asp?table=" & Request.QueryString("table")
COUNT_SUBLIST = 10 ' Máxima cantidad de links a sublistados
MAX_RECORDS = 25
var_Show = Request.Form("show")
var_fldField = Request.Form("fldField")
var_fldValue = Request.Form("fldValue")
var_StartRecord = Request.Form("fldStartRecord") ' Donde debe comenzar este sublistado
If var_StartRecord = "" Then var_StartRecord = 1
var_OrderBy = Session ("ttar_OrderBy")
If Request.Form("fldOrderBy") <> "" Then var_OrderBy = Request.Form("fldOrderBy")
If var_OrderBy = "" Then var_OrderBy = "HDW_ID"
Session ("ttar_OrderBy") = var_OrderBy
var_SortOrder = Session("ttr_SortOrder")
If Request.Form("fldSortOrder") <> "" Then var_SortOrder = Request.Form("fldSortOrder")
If var_SortOrder = "" Then var_SortOrder = "DESC" ' Si es ascendente o descendente
Session ("ttr_SortOrder") = var_SortOrder
' La query que toma el sublistado
query = "SELECT TOP "&(MAX_RECORDS+var_StartRecord)&" * FROM " & HDW_TABLE
' Si se ha hecho un busqueda añadirla a la query
If (UCase(Request.Form("show")) = UCase("Search")) And (Request.Form("fldField") <> "") Then
value = Replace(Request.Form("fldValue"), "'", "''")
cond = Replace(Request.Form("fldField"), "^", value)
query = query & " WHERE " & cond
End If
' Añadir el orden por el que se va a listar a la query...
var_NewOrderBy = Replace(var_OrderBy, ",", " "&var_SortOrder&", ")
query = query & " ORDER BY ["&var_NewOrderBy&"] "&var_SortOrder
Set rs = DataC.Execute(query) ' Ejecutar la query
If (Not rs.EOF) Then rs.Move(var_StartRecord-1) ' Ir al record de comienzo del sublistado
%>
<%
' Esta parte es para generar los enlaces a sublistados que aparecen
' en la parte superior de la tabla...
newquery = "SELECT Count(" & HDW_MAIN_FIELD & ") FROM " & HDW_TABLE
If (UCase(Request.Form("show")) = UCase("Search")) And (Request.Form("fldField") <> "") Then newquery = newquery & " WHERE " & cond
Set newrs = DataC.Execute(newquery)
var_countRecords = newrs.Fields.Item(0)
var_startList = 1
While CInt (var_StartRecord) > CInt(var_StartList+ (MAX_RECORDS * COUNT_SUBLIST) - 1)
var_StartList = var_StartList + (MAX_RECORDS * COUNT_SUBLIST)
WEnd
Response.Write "
"
If var_StartList <> 1 Then Response.Write "<< "
For i = 1 To COUNT_SUBLIST
var_tmpMinRec = var_StartList + (MAX_RECORDS * (i - 1))
var_tmpMaxRec = var_StartList + (MAX_RECORDS * i - 1)
If var_tmpMinRec <= var_countRecords Then
If i <> 1 Then Response.Write " | "
If var_tmpMaxRec > var_countRecords Then var_tmpMaxRec = var_countRecords
If CInt (var_StartRecord) = CInt (var_tmpMinRec) Then
Response.Write ""&var_tmpMinRec&"-"&var_tmpMaxRec&""
Else
Response.Write ""
Response.Write var_tmpMinRec&"-"&var_tmpMaxRec & ""
End If
End If
Next
If var_tmpMaxRec < var_countRecords Then Response.Write " >>"
Response.Write "
"
%>
<%
' Este if que comienza es para chequear si el listado es no vacio...
If (Not rs.EOF) Then
var_WasNotEmpty = true
%>
<%
For i = 0 To fCount - 1
If (checkedFields(i)) Then
%>
<% Response.Write fields(i) %>
<% If var_OrderBy=fields(i) Then If var_SortOrder="ASC" Then Response.Write("") Else Response.Write("") %>
<%
End If
Next
%>
<%
' Ahora listar la tabla...
i = 0
While (Not rs.EOF) And (i < MAX_RECORDS)
If i Mod 2 = 0 Then ' Para que las filas salgan con colores inversos
Response.Write "
"
Else
Response.Write "
"
End If
For k = 0 To fCount - 1
If (checkedFields(k)) Then
Response.Write "
<%
For i = 0 To fCount - 1
If var_OrderBy = fields(i) Then
If var_SortOrder = "ASC" Then var_Temp = "DESC" Else var_Temp = "ASC"
Else
var_Temp = "ASC"
End If
%>
<%
Next
%>
<% For i = 0 To COUNT_SUBLIST+1 %>
<% Next%>
<%
Else ' else del If de verificar que existiera al menos un record
Response.Write "No records related.
"
If Not ((Request.Form("show") = "Search") And (Request.Form("fldField") <> "")) Then var_WasNotEmpty = False Else var_WasNotEmpty = True
End If
%>
<%
End Sub
'*************************************************************************************
'*************************************************************************************
'*************************************************************************************
Sub ShowLoginForm
%>
<%
Response.End
End Sub
'*************************************************************************************
'*************************************************************************************
'*************************************************************************************
Sub ShowHeader
%>
Form To Database Admin
<%
End Sub
'*************************************************************************************
'*************************************************************************************
'*************************************************************************************
Sub ShowFooter
%>
<%
End Sub
'*************************************************************************************
'*************************************************************************************
'*************************************************************************************
Sub ShowTableList
Response.Write "
Select the table to admin...
"
Dim localpath
localpath = Server.MapPath("Form2Mail.asp.mdb")
localpath = Left(localpath, Len(localpath)-Len("Form2Mail.asp.mdb") )
Dim fso, MyFile, ReadLineTextFile, Printed
Printed = False
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.OpenTextFile(localpath & "tables.txt", 1) ' 1 = ForReading
Do While MyFile.AtEndOfStream <> True
ReadLineTextFile = MyFile.ReadLine
Response.Write "
"
If Not Printed Then Response.Write "No tables to admin. Please be sure to add the name of the table(s) to admin into the ""tables.txt"" file and to upload that file to the online web server since it contains the list of administrable tables."
End Sub
'*************************************************************************************
'*************************************************************************************
'*************************************************************************************
Sub ShowEdit
Set cat = Server.CreateObject ("ADOX.Catalog")
Set cat.ActiveConnection = DataC
HDW_TABLE = Request.QueryString("table")
Set tbl = cat.Tables(HDW_TABLE)
Dim fields(1000), checkedFields(1000), fCount
fCount = tbl.Columns.Count
For k = 0 To tbl.Columns.Count - 1 And (Not fExists)
fields(k) = tbl.Columns.Item(k)
Next
Set cat = Nothing
Set tbl = Nothing
Dim rs
Set rs = DataC.Execute ("SELECT * FROM " & HDW_TABLE & " WHERE " & HDW_MAIN_FIELD & "=" & Request.QueryString("id"))
var_IncludeName = "default.asp?table=" & Request.QueryString("table") & "&action=edit&id=" & Request.QueryString("id")
%>
<%
End Sub
'*************************************************************************************
'*************************************************************************************
'*************************************************************************************
Sub UpdateValues
Set cat = Server.CreateObject ("ADOX.Catalog")
Set cat.ActiveConnection = DataC
HDW_TABLE = Request.QueryString("table")
Set tbl = cat.Tables(HDW_TABLE)
Dim fields(1000), checkedFields(1000), fCount
fCount = tbl.Columns.Count
For k = 0 To tbl.Columns.Count - 1 And (Not fExists)
fields(k) = tbl.Columns.Item(k)
Next
Set cat = Nothing
Set tbl = Nothing
Dim str
str = ""
For i = 0 to fCount - 1
If fields(i) <> HDW_MAIN_FIELD Then
str = str & "[" & fields(i) & "]='" & Replace(Request.Form(fields(i)),"'","''") & "',"
End If
Next
str = Left(str, Len(str)-1)
DataC.Execute ("UPDATE " & HDW_TABLE & " SET " & str & " WHERE "& HDW_MAIN_FIELD & "=" & Request.QueryString("id"))
Response.Redirect "default.asp?table=" & Request.QueryString("table")
Response.End
End Sub
%>