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
%>