como sugerencia y un poco de seguridad, utiliza el envio de los datos por el form
<form name="x" method="post">
y recuperalos por request.form
y en tu SP agrega o modifica con algo asi para la validacion del rut
Código SQL:
Ver originalALTER PROCEDURE dbo.InsAltaUsuarios
@Rut nvarchar(50)
, @Dv nvarchar(50)
, @SGA nvarchar(255)
, @Nombre nvarchar(255)
, @Supervisor nvarchar(255)
, @Plataforma nvarchar(255)
, @Password nvarchar(10)
AS
IF EXISTS(SELECT rut FROM usuarios WHERE rut=@Rut)
BEGIN
--rut repetido
SELECT 'rut repetido'
END
ELSE
BEGIN
--rut nuevo
INSERT INTO usuarios
(RUT,DV,SGA,NOMBRE,SUPERVISOR,PLATAFORMA,P ASSWORD)
VALUES
(@Rut,@Dv,@SGA,@Nombre,@Supervisor,@Plataforma,@Password )
SELECT @Password
END
GO
ya con eso, en tu ASP modificarlo mas o menos asi
Código ASP:
Ver originalrut = request.Form("Usuarios")
Dv = request.Form("DV")
Nombre = request.form("nombre")
SGA = request.form("sga")
Supervisor = request.form("supervisor")
Plataforma = request.form("plataforma")
if rut<>"" and Dv<>"" then
pass = generapass()
set cmd= server.CreateObject("ADODB.recordset")
strSQL = "exec InsAltaUsuarios '" & rut & "','" & Dv & "','" & SGA & "','" & Nombre & "','" & Supervisor & "','" & Plataforma & "','" & pass
cmd.open strSQL , cnn
if not cmd.eof then
regresa = cmd(0)
if regresa = "rut repetido" then
'rut repetido, mostrar que esta repetido
response.Write "El rut esta repetido, favor de reintentar"
else
'se inserto el rut, mostrar el pass generado
response.Write "insercion correcta, el pass es : " & regresa
end if
end if
end if
recuerda que los parametros pasados el SP, deben de ir en el mismo orden en el que son declarados y sin omitir alguno, si alguna variable se viene vacia, lo tienes que validar antes de abrir el cmd, para que no te genere error.
la funcion generapass() la tienes que generar tu.
espero te halla ayudado un poco, si tienes problemas postealos en este mismo post