Ho un problema stranissimo con una stringa Update in un file ASP. Questo file, in poche parole, acquisisce dei dati da un altro file e deve poi scriverli in un DB. La maggior parte delle volte funziona perfettamente, a volte però, invece di scrivere nel DB tutti valori richiesti, ne salta uno e quindi mi sballa la visualizzazione della prima pagina del mio sito. Dal momento che ci sto sbattendo la testa da lungo tempo, vi posto i due codici incriminati sperando ke qualcuno di voi ci dia un okkiata.
Questo è il file dove vengono inseriti i dati da sostituire nel DB:
<%Dim objConn
Set objConn = Server.CreateObject("AdoDB.connection")
objConn.ConnectionString="Driver={Microsoft Access Driver (*.mdb)}; "&"DBQ=" & Server.MapPath("mdb-database/archivio.mdb")
objConn.Open
strpos="SELECT ID, Titolo, Posizione From Notizie Where Posizione<>0 Order By Posizione Asc"
Set RsPos = Server.CreateObject("AdoDB.RecordSet")
RSPos.Open strpos ,objConn
strnotizia = "SELECT * FROM Notizie ORDER BY data desc"
Set RsNotizie = Server.CreateObject("AdoDB.RecordSet")
RSNotizie.Open strnotizia ,objConn
dim Titoli(7),Cont,Pos(7),IDTitolo(7)
ContT=1
do while not rspos.eof
IDtitolo(cont)=rspos("ID")
Titoli(ContT) = rspos("titolo")
Pos(ContT)=rspos("Posizione")
ContT = ContT+1
rspos.movenext
loop
<form name="form1" id="form1" method="get" action="aggiornaposizione.asp">
<p align="center" class="Stile33">Aggiornamento Prima Pagina </p>
<%for Cont=1 to 7%>
notizia <%=pos(cont)%>
<select name="notizia<%=pos(cont)%>" id="notizia<%=pos(cont)%>">
<option value="<%=idtitolo(cont)%>"><%=titoli(Cont)%></option>
<%rsnotizie.movefirst
Do while not RSNotizie.Eof
valore = RsNotizie("Titolo")
nome = RsNotizie("ID")
response.write("<option value=" & nome &">" & valore &"</option>")
RsNotizie.movenext
Loop%>
</select>
<input name="pos<%=Pos(Cont)%>" type="text" id="pos<%=Pos(Cont)%>" value="<%=pos(cont)%>" size="3" />
pos. <%=pos(cont)%></p>
<%next%>
<input type="submit" name="Submit" value="Aggiorna" />
<input type="reset" name="Submit2" value="Ripristina" />
</p>
</p>
</form>
</div>
<%
RSNotizie.close
Set RSNotizie=Nothing
RSpos.close
Set RSpos=Nothing
objConn.close
set ObjConn = nothing
%>
Questo è invece il file di lettura e scrittura nel DB:
<%'Campi nel DB
Dim objconn
Set objconn = Server.CreateObject("AdoDB.connection")
objconn.ConnectionString="Driver={Microsoft Access Driver (*.mdb)}; "&"DBQ=" & Server.MapPath("mdb-database/archivio.mdb")
objconn.Open
Dim Posizioni(7)
Dim Notizia(7)
'acquisisco i dati dal form
for I = 1 to 7
Posizioni(I)=request("pos"&I)
Notizia(I)=request("Notizia"&I)
next
IF notizia(1)="" or notizia(2)="" or notizia(3)="" or notizia(4)="" or notizia(5)="" or notizia(6)="" or notizia(7)=""then%>
</p>
<div id="Layer2" style="position:absolute; width:331px; height:115px; z-index:11; left: 343px; top: 235px; background-color: #FFFFFF; layer-background-color: #FFFFFF; border: 1px none #000000;">
<p align="center" class="Stile35"> ATTENZIONE!!!!
<p align="center" class="Stile36"><span class="Stile38">POSIZIONI AZZERATE
</span>
<span class="Stile38">ripetere l'inserimento delle posizioni
</span>
<p align="center" class="Stile36">
<div id="Layer3" style="position:absolute; width:104px; height:23px; z-index:12; left: 111px; top: 133px;">Torna indietro</div>
<p align="center"></div>
<%ELSE
dim strAzzera
strAzzera="Update Notizie set Posizione='0'"
objconn.execute(strAzzera)
Dim strSQL
for K=1 to 7
strSQL = "UPDATE Notizie SET posizione ='"&posizioni(K)&"' WHERE ID="& Notizia(K)
objconn.execute(strSQL)
next%>
<%end if
objconn.close
set objconn=Nothing
%>
A me sembra che tutto è scritto bene... Ma a volte salta un valore nel DB.
Spero di ricevere prersto notizie
Grazie!

, vi posto i due codici incriminati sperando ke qualcuno di voi ci dia un okkiata.
Rispondi quotando