Ver Mensaje Individual
  #6 (permalink)  
Antiguo 16/04/2007, 03:43
Avatar de Shilfild
Shilfild
 
Fecha de Ingreso: marzo-2007
Mensajes: 120
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: Insert con JavaScript en ASP

Y otra vez me vuelves a ayudar xD pero me parece que no va a haber sueldo ni pa ti ni pa mi xD

veamos voy por partes, para irme aclarando n,n

0 - Define que tipo de lenguaje ASP vas a usar al inicio de la página:

Al principio de la página tengo puesto esto:

Código:
<%@LANGUAGE="JAVASCRIPT"%>
pero supongo que a lo que te referiras es a que no debo poner esto?
Código:
	<script language="JavaScript">
			
		alert("Guardado")
			
		</script> 


1 - Si vas a usar constantes predefinidas (adOpenStatic,adCmdTable, etc) carga el archivo pertinente (ADOJAVAS.inc)


Esto lo tengo:
Código:
<!-- #INCLUDE File="ADOJAVAS.inc" -->
Evidentemente también está en la carpeta xD

2 - No mezcles los dos lenguajes ASP (VBScript y JScript). JScript usa las etiquetas <script> y </script> con el atributo runat="server". Asi:


En mi código creo que solo hay JavaScript, que según me dijiste en otro post era distinto a JScript.

3 - Procura tener solo una conexion por página y BD (un solo
Server.CreateObject("ADODB.Connection") ) Con él, atacarás la BD ya sea para llenar un recordset ( Server.CreateObject("ADODB.Recordset") ) o ejecutar un comando ( Server.CreateObject("ADODB.Command") )


Esto no lo he entendido muy bien, te digo lo que yo he entendido que igual me confundo xD

Puedo tener tanto:
- Server.CreateObject("ADODB.Connection") para atacar a una BD
- Server.CreateObject("ADODB.Command") para ejecutar un comando, como puede ser en insertar? pero eso también entraria en atacar a una BD no?, no entiendo que quieres decir con ejecutar un comando sorry.


Lo que creo también que intentas decir es que solo necesito una conexión tanto para insertar/borrar/modificar/hacer una select



4 - Para Consultas de seleccion (SELECTs) necesitas un recordset para cargar los datos pero para las consultas de accion (INSERT, etc) no hace falta. Puedes hacerlo directamente desde el objeto Connection:
conn.execute("INSERT INTO tabla (campo1, campoN) VALUES (valor1, valorN")


Esto lo entiendo, pero mi pc no >_> me sigue dando el mismo error de antes.


Código:
<%@LANGUAGE="JAVASCRIPT"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Guardar usuario</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<!-- #INCLUDE File="ADOJAVAS.inc" -->
<%
	Session("alta")="No"
	cone=Server.CreateObject("ADODB.Connection")
	cone.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="+Server.MapPath("portaljoven.mdb"))
	rstIntranet=new ActiveXObject("ADODB.RecordSet")
	sentencia="Select user_id,user_pass from usuarios where user_id='"+Request.form("txtnombre")+"'"
	rstIntranet.Open(sentencia,cone,adOpenStatic,adCmdTable)
	if (rstIntranet.eof){
		Session("alta")="Si"
		//Lo he intentado asi:  values ('"& user_nom &"','"& user_pas &"')"
		//y asi: insertar="INSERT INTO usuarios(user_nombre,user_pass) values (user_nom,user_pas)"
		//rsguardar.Open(insertar,cone,adOpenDynamic,adCmdText)
		// Guardamos los datos
		//SQL="INSERT INTO Usuarios " & "(Login, Password, Nombre, Apellidos, Tlf, Email)"" VALUES ('"&login&"', '"&password & _
		//	"', '"&nombre&"','"&apellidos&"','"&telefono&"','"&email&"');"
		// 	mysql_query("insert into usuarios (user_id,user_pass) values ('$user_nom','$user_pas')",$link); 
		
		user_nom=Request.form("txtnombre");
		user_pas=Request.form("txtpass");
		cone.execute("INSERT INTO usuarios (user_id, user_pass) VALUES (user_nom, user_pas)")
	
		
	
		
		cone2.Close;			 
		%>
		<script language="JavaScript">
			
		alert("Guardado")
			
		</script>
		<%
	}else{
		Session("alta")="No"
		%>
		<script language="JavaScript">
			
		alert("El nombre de usuario ya existe")
		location.href="altausuario.asp"
			
		</script>
	<%		
	}
	rstIntranet.Close
	%>


</body>
</html>
Error: Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][Controlador ODBC Microsoft Access] Pocos parámetros. Se esperaba 2.
/portal_joven/guardarusuario.asp, línea 30


Tipo de explorador:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)

Página:
POST 30 bytes to /portal_joven/guardarusuario.asp

Datos de POST:
txtnombre=asfas&txtpass=dfasfa


Línea 30: cone.execute("INSERT INTO usuarios (user_id, user_pass) VALUES (user_nom, user_pas)")

Muchisimas gracias por la ayuda, me encanta cuando posteo y me explican cosas que no sabia xD