Ciao a tutti... vi spiego il mio problema.....
ho una pagina in asp contenente un form di inserimento di dati.
Cliccando su Invia i dati... mi esegue l' upload di un file a mia scelta e invia la mail direttamente all'utente a cui si scrive l' indirizzo e mail...inoltre fa altri controlli sull' intero database...
il Dabatase e un Database aziendale e contiene circa 13.000 record..... il fatto e che per eseguire tutto rallenta da far paura....ho notato pero che se cancello la meta dei record e molto molto piu veloce ( ma cosi va bene )...per con tutti i record e una chiavica e succede che la connessione va in timeout....
C'e un sistema per velocizzare il tutto ???? Questa e la pagina che esegue il tutto ....GRAZIE
<head>
<title>INSERISCI DOCUMENTO</title>
<link href="stile.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/interface.js"></script>
<link href="stylemenu.css" rel="stylesheet" type="text/css" />
</head>
<%
Dim oUpload
Dim oFile
Dim sFileName
Dim oFSO
Dim sPath 'percorso del file
Dim sNewData
Dim nLength
Dim bytBinaryData
Dim Tipo 'campo TIPOLOGIA del form
Dim Destinatario
Dim Mittente 'campo PERSONA del form
Const nForReading = 1
Const nForWriting = 2
Const nForAppending = 8
Dim anno, mese, giorno, ore, minuti, secondi
Dim Differenza3
'data = day(date)
' Funzione DataInNum a cui passo una data
' Preleva dalla data l'anno
anno = Year(date)
' Preleva dalla data il mese
mese = Month(date)
' Preleva dalla data il giorno
giorno = Day(date)
' Concatena i valori in un unico numero
solodata = giorno & "/" & mese & "/" & anno
data = giorno & mese & anno
ore = hour(time)
minuti = minute(time)
secondi = second(time)
Orax = ore & minuti & secondi
' grab the uploaded file data
Set oUpload = New clsUpload
Tipo = oUpload.ValueOf(1)' il numero contrassegnato nella parentesi sta a indicare il numero del campo ( in quest caso ) '
Data_ricevimento = oUpload.ValueOf(2)
Mittente = oUpload.ValueOf(3)
Ritirato_da = oUpload.ValueOf(5)
Data_ritiro = oUpload.ValueOf(6)
Destinatario = oUpload.ValueOf(4)
Priorita = oUpload.ValueOf(7)
Mail = oUpload.ValueOf(8)
Note = oUpload.ValueOf(9)
Allegato = oUpload.ValueOf(10)
StatoPosta = oUpload.ValueOf(11)
Set oFile = oUpload("File1")
' parse the file name
sFileName = oFile.FileName
If Not InStr(sFileName, "\") = 0 Then
sFileName = Mid(sFileName, InStrRev(sFileName, "\") + 1)
End If
' Convert the binary data to Ascii
bytBinaryData = oFile.BinaryData
nLength = LenB(bytBinaryData)
For nIndex = 1 To nLength
sNewData = sNewData & Chr(AscB(MidB(bytBinaryData, nIndex, 1)))
Next
' Save the file to the file system
sPath = Server.MapPath("allegati") & "/"
Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
sFileName = data & Orax & "-" & sFileName
sFileName = replace(sFileName, " ", "_")
oFSO.OpenTextFile(sPath & sFileName, nForWriting, True).Write sNewData
Set oFSO = Nothing
Set oFile = Nothing
Set oUpload = Nothing
dataP = Data_ricevimento
dim conn, rs2, rs4, rs5, sql
' --- costruzione stringa di connessione al db ---
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};" &_
"DBQ="& Server.MapPath("Posta.mdb")
' --- preparazione connection e recordset ---
Set cn = Server.CreateObject("Adodb.Connection")
'Set rs3 = Server.CreateObject("Adodb.Recordset")
'Set rs = Server.CreateObject("Adodb.Recordset")
Set rs5 = Server.CreateObject("Adodb.Recordset")
sql5 = "SELECT * FROM T_Diff ORDER BY ID desc"
SET rs5 = conn.execute(sql5)
Do while not rs5.EOF
' Differenza3 = DateDiff("s", Data_ricevimento, Now)
if rs5("StatoPosta") = "NO" then
if rs5("Differenza") > 12 then
if rs5("Sollecito") = "No" then
Set objEmail = CreateObject("CDO.Message")
objEmail.From = "PostaInternaManital@prova.com"
objEmail.To = rs5("Mail")
objEmail.Subject = "Avviso attivazione posta"
objEmail.HTMLbody = "SOLLECITO"
objEmail.AddAttachment server.MapPath("allegati\" & sFileName)
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "out.alice.it"
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
rs5.movefirst
sqlupdate = "UPDATE T_Diff SET Sollecito = 'Si'"
conn.execute(sqlupdate)
end if
end if
end if
'response.write( "
" & rs5( "Mail" ) )
rs5.movenext
Loop
'chiusura RecordSet RS5
rs5.Close
set rs5 = Nothing
Set rs2 = Server.CreateObject("Adodb.Recordset")
rs2.Open "T_Posta", conn, 2, 2
' --- aggiunta di un record ---
rs2.addnew
rs2("Mittente") = Mittente
rs2("Tipo") = Tipo
rs2("Data_ricevimento") = Data_ricevimento
rs2("Destinatario") = Destinatario
rs2("Ritirato_da") = Ritirato_da
rs2("Data_ritiro") = Data_ritiro
rs2("Priorita") = Priorita
rs2("Mail") = Mail
rs2("Note") = Note
rs2("Allegato") = sFileName
rs2("StatoPosta") = StatoPosta
rs2.update
sql11 = "SELECT ID FROM T_Posta ORDER BY ID desc"
set rs11 = conn.execute(sql11)
rs11.movefirst
IDPosta = rs11("ID")
rs2.Close
set rs2 = Nothing
'
'rs.Open "T_Documenti", conn, 2, 2
' --- aggiunta di un record ---
'rs.addnew
' rs("Destinatario") = Destinatario
' rs("Data") = solodata
' rs("Mail") = Mail
' rs.update
' rs3.Open "T_MailR", conn, 2, 2
' --- aggiunta di un record ---
' rs3.addnew
' rs3("Mail") = Mail
' rs3("Ora") = Orax
' rs3("Data") = solodata
' rs3("Destinatario") = Destinatario
' rs3.update
Set rs4 = Server.CreateObject("Adodb.Recordset")
rs4.Open "T_Diff", conn, 2, 2
' --- aggiunta di un record ---
rs4.addnew
rs4("Mail") = Mail
rs4("DataCorr") = DataP
rs4("OraInvio") = Orax
rs4("Differenza") = Differenza3
rs4("StatoPosta") = StatoPosta
rs4("Sollecito") = "No"
rs4("IDPosta") = IDPosta
rs4.update
rs4.Close
set rs4 = Nothing
Set rs6 = Server.CreateObject("Adodb.Recordset")
sql6 = "SELECT *, DateDiff('s', Data_ricevimento, 'Now') AS Differenza3 FROM T_Diff,T_Posta"
set rs6 = conn.execute(sql6)
do while not rs6.EOF
'fondamentale perche senno non fa riga per riga
Data_ricevimento = rs6("Datacorr")
Differenza3 = DateDiff("s", Data_ricevimento, Now)
'modifichiamo la differenza e associamo l'ID della posta
sqlupdate1 = "UPDATE T_Diff SET Differenza = " & Differenza3 & " WHERE IDPosta=" & rs6("IDPosta")
conn.execute(sqlupdate1)
rs6.movenext
loop
rs6.Close
set rs6 = Nothing
conn.Close
set conn = nothing
Set objEmail = CreateObject("CDO.Message")
objEmail.From = "PostaInternaManital@prova.com"
objEmail.To = Mail
objEmail.Subject = "Avviso attivazione posta"
objEmail.HTMLbody = "Avviso ricezione posta presso Sede Ivrea"
objEmail.AddAttachment server.MapPath("allegati\" & sFileName)
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "out.alice.it"
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
AzioneLog = "Inserita registrazione di tipo " & Tipo & " registrata il " & Data_ricevimento & " da " & Mittente & " per " & Destinatario & " con allegato " & sFileName
%>
<html>
Il file è stato salvato!</p>
Indietro
<%
'response.redirect "visualizza.asp"
%>
</html>

Rispondi quotando