Ciao a tutti,
è qualche giorno che sto cercando di risolvere un problema con un semplice script di inserimento in database sql server 2005 express
In pratica che faccio
prendo pendo dei dati da un semplice form da una pagina precedente
poi verifico che questo tipo di inserimento non sia stato già fatto da un utente con quella partita iva o codice fiscale
a questo punto se la select non mi restituisce nulla
entro e creo l' inserimento
dovè il problema, molte volte la pagina mi restituisce la scritta inserimento effettuato correttamente..altre volte invece mi dice che l'inserimento non è stato effettuato perchè già esiste quel record (in pratica i response.write che ho messo io)
Per verifica mi faccio restituire qual'è il record che già esiste...e qui c'è la cosa strana..il risultato è un record nuovo che prima non esisteva.
In pratica è come se lui arriva nella pagina fa la verifica, entra e poi senza che nessuno gli dica nulla,da solo ricarica la pagina quindi trova che il record già esiste e mi restituisce record presente con il numero appena inserito
Sotto vi posto il codice, onestamente di insert ne ho fatti a migliaia...e davvero questa cosa non mi è mai capitata.
<%
clidenti = 1
nome=TRIM(REQUEST("nome"))
cognome=TRIM(REQUEST("cognome"))
ragsoc=TRIM(REQUEST("ragsoc"))
ResidenzaPr=TRIM(REQUEST("ResidenzaPr"))
ResidenzaComune=TRIM(REQUEST("ResidenzaComune"))
ResidenzaCap=TRIM(REQUEST("ResidenzaCap"))
CodiceFiscale=ucase(TRIM(REQUEST("codfisc")))
piva=TRIM(REQUEST("piva"))
indirizzo=TRIM(REQUEST("indirizzo"))
if CodiceFiscale<>"" then
where=" ctcodfisc='"& CodiceFiscale &"'"
end if
if piva<>"" then
where=" ctpiva='"& piva &"'"
end if
sql="select ctidenti,clidenti from catasto where ("& where &") AND (ctstato <> 'F' or ctstato is null) "
set rsCtrlCatasto=server.CreateObject("adodb.recordset ")
rsCtrlCatasto.open sql,conn
if not rsCtrlCatasto.eof and not rsCtrlCatasto.bof then
clidentiRich=trim(rsCtrlCatasto("clidenti"))
idrichiesta=trim(rsCtrlCatasto("ctidenti"))
%>
<center>
<span class="messKo">
ATTENZIONE ESISTE GIA' UNA RICHIESTA IN CORSO PER QUESTO UTENTE
<%if clng(clidentiRich) = clng(clidenti) then%>
RICHIESTA N° <%=idrichiesta%>
<%end if%>
</span>
</center>
<%
else
set rs=server.Createobject("ADODB.Recordset")
rs.activeconnection=conn
rs.cursortype=3
rs.locktype=3
rs.source="catasto"
rs.open
rs.addnew
rs("ctnome")=nome
rs("ctcognom")=replace(cognome,"'","´")
rs("ctragsoc")=replace(cognome,"'","´")
rs("ctdatari")=now()
rs("ctcomune")=replace(ResidenzaComune,"'","´")
rs("ctcap")=ResidenzaCap
rs("ctprovin")=ResidenzaPr
rs("ctcodfisc")=CodiceFiscale
rs("ctpiva")=piva
rs("ctindiri")=replace(indirizzo,"'","´")
'if clidenti <> "" then
rs("clidenti")=clidenti
rs("ctcosto")=costo
'end if
rs.update
rs.close
set rs = nothing
set rs=conn.execute("select ctidenti from catasto order by ctidenti desc")
idRichiesta=rs("ctidenti")
set rs=nothing
set RsCredito=server.CreateObject("adodb.recordset")
conn.execute("update Clienti set climppre= climppre-"&costo&" where clidenti="& clidenti )
set RsCredito=nothing
%>
<center>
<span class="messOk">
<font color="#006600"> INSERIMENTO EFFETTUATO CORRETTAMENTE </font></span>
</center>
<%
end if
rsCtrlCatasto.close
set rsCtrlCatasto=nothing
%>

Rispondi quotando