%
'sMDBPath = "E:\dbase\w4b\florencedance\main.mdb" locale
sMDBPath = "C:\domini\dbase\w4b\florencedance\main.mdb"
sConnect = "Provider=MSDataShape;Data Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sMDBPath & ";Persist Security Info=False"
%>
<%
function Migliaia(numero)
if not isNumeric(numero) then numero = 0
if CLng(numero) = 0 then
Migliaia = 0
Exit Function
end if
sTemp = CStr(numero)
If Ubound(Split(sTemp,",")) <> 0 Then
'c'è la virgola
sInt = Split(sTemp,",")(0)
sDec = "," & Split(sTemp,",")(1)
ElseIf Ubound(Split(sTemp,".")) <> 0 Then
'c'è il punto
sInt = Split(sTemp,".")(0)
sDec = "," & Split(sTemp,".")(1)
Else
sInt = sTemp
sDec = ""
End If
sTemp = sInt
sNew = ""
if len(sTemp) < 4 Then
sNew = sTemp
Else
for i = len(sTemp) to 4 step -3
sNew = Mid(sTemp,i-2,3) + "." + sNew
next
sNew = left(sTemp,i) + "." + sNew
sNew = left(sNew, len(sNew)-1)
End If
Migliaia = sNew & sDec
end function
function LoadRecordsetIntoXML (theSQL, theConnection, theDOMDocument)
dim rsMain, stMain
set rsMain = Server.CreateObject("ADODB.Recordset")
set stMain = Server.CreateObject("ADODB.Stream")
rsMain.ActiveConnection = theConnection
rsMain.Open theSQL
rsMain.Save stMain, 1
theDOMDocument.Load (stMain)
end function
sub StreamRecordsetIntoResponse (theSQL, theConnectionString, theStylesheet)
set cnMain = Server.CreateObject("ADODB.Connection")
set xmlSource = Server.CreateObject("MSXML2.DOMDocument")
xmlSource.async = false
set xmlStyle = Server.CreateObject("MSXML2.FreeThreadedDOMDocument")
xmlStyle.async = false
cnMain.Open theConnectionString
LoadRecordsetIntoXML theSQL, cnMain, xmlSource
set xNew = Server.CreateObject("MSXML2.DOMDocument")
'rappr. XML dei parametri POST
sFormXML = "
"
'rappr. XML dei parametri GET
sQueryStringXML = ""
for each item in request.QueryString
sQueryStringXML = sQueryStringXML & "<" & item & ">" & request.QueryString(item) & "" & item & ">"
next
sQueryStringXML = sQueryStringXML & ""
sRequestXML = "" & sFormXML & sQueryStringXML & ""
xNew.LoadXML (sRequestXML)
set xnSpan = xNew.SelectSingleNode("//request")
set xnData = xmlSource.SelectSingleNode("//rs:data")
'Response.Write sRequestXML
xnData.appendChild xnSpan
xmlStyle.Load (theStylesheet)
xmlSource.TransformNodeToObject xmlStyle,Response
end sub
sub ProcessaForm
ProcessaForm2
Exit Sub
end sub
function NullSeStringaVuota(theValue)
if theValue = "" Then
NullSeStringaVuota = Null
else
NullSeStringaVuota = theValue
end if
end function
sub ProcessaForm2
'determinare gli ID ricevuti
set dTables = Server.CreateObject("Scripting.Dictionary")
set dIDs = Server.CreateObject("Scripting.Dictionary")
set dPKs = Server.CreateObject("Scripting.Dictionary")
set dChecks = Server.CreateObject("Scripting.Dictionary")
set dRSs = Server.CreateObject("Scripting.Dictionary")
' chiave primaria
dPKs.Add "corsi", "id_corso"
dPKs.Add "insegnanti", "id_insegnante"
dPKs.Add "corps", "id_spettacolo"
dPKs.Add "preview", "id_preview"
dPKs.Add "programma", "id_programma"
dPKs.Add "biglietti", "id_biglietto"
dPKs.Add "stage", "id_stage"
dPKs.Add "link", "id_link"
dPKs.Add "club", "id_club"
dPKs.Add "grangala", "id_grangala"
dPKs.Add "etoile", "id_etoile"
dPKs.Add "eventi", "id_evento"
' campo di controllo
dChecks.Add "corsi", "titolo"
dChecks.Add "insegnanti", "nome"
dChecks.Add "corps", "titolo"
dChecks.Add "preview", "id_preview"
dChecks.Add "programma", "titolo"
dChecks.Add "biglietti", "id_biglietto"
dChecks.Add "stage", "titolo"
dChecks.Add "link", "id_link"
dChecks.Add "club", "id_club"
dChecks.Add "grangala", "id_grangala"
dChecks.Add "etoile", "titolo"
dChecks.Add "eventi", "id_evento"
for each item in Request.Form
if Request.Form(item) <> "" Then
lGo = 0
sTable = split(item,"-")(0)
lGo = Instr(item,"_" & dPKs(sTable))
if lGo > 0 and (Request.form(Replace(item,dPKs(sTable),dChecks(sTable))) <> "") Then
dIDs.Add CStr(left(item,lGo -1)),CStr(left(item,lGo -1))
if not dTables.exists(sTable) Then dTables.Add sTable,sTable
end if
end if
next
i = 0
for each table in dTables
set rsTemp = Server.CreateObject("ADODB.Recordset")
rsTemp.LockType = 3 'adLockOptimistic
rsTemp.Open "SELECT * FROM " & table, sConnect
set dTables(table) = rsTemp
i = i + 1
next
for each item in dIDs
sTable = Split(dIDs(item),"-")(0)
sID = Split(dIDs(item),"-")(1)
sPK = dPKs(sTable)
If Request.Form(item & "_delete") = "SI" Then
dTables(sTable).Close
sSQL = "DELETE FROM " & sTable & " WHERE " & sPK & "=" & Request.Form(item & "_" & sPK)
dTables(sTable).Open sSQL, sConnect
dTables(sTable).Open "SELECT * FROM " & sTable, sConnect
else
dTables(sTable).Filter = sPK & "=" & Request.Form(item & "_" & sPK)
bEOF = dTables(sTable).EOF
if bEOF Then dTables(sTable).AddNew
for each fldTemp in dTables(sTable).Fields
' la chiave primaria è aggiornabile solo su INSERT, e solo se diversa da 0
if Request.Form(item & "_" & fldTemp.Name).Count > 0 and (((fldTemp.Name <> dPKs(sTable)) or bEOF) and Request.Form(item & "_" & fldTemp.Name) <> "0") Then
sValore = NullSeStringaVuota(Request.Form(item & "_" & fldTemp.Name))
if not isnull(sValore) Then sValore = Replace(sValore,vbCrLf," ")
dTables(sTable).Fields(fldTemp.name) = sValore
end if
next
dTables(sTable).Update
end if
next
for each table in dTables
dTables(table).Close
next
end sub
%>
Florence Dance Festival