Creación de un nuevo registro

Valoración del artículo:
Forma sencilla de introducir nuevos elementos en la tabla. Ejemplos prácticos.
Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.
En este caso lo que buscamos es crear, a partir de los datos recibidos de un formulario, un nuevo registro en nuestra tabla clientes. Tendremos pues dos archivos diferentes, uno que podría ser un HTML puro en el que introducimos el formulario a rellenar y que nos envía al segundo, un script muy parecido al previamente visto para realizar una selección. He aquí los dos scripts:

<HTML>
<HEAD>
<TITLE>Insertar.html</TITLE>
</HEAD>
<BODY>
<div align="center">
<h1>Insertar un registro</h1>
<br>
<FORM METHOD="POST" ACTION="insertar.asp">
Nombre<br>
<INPUT TYPE="TEXT" NAME="nombre"><br>
Teléfono<br>
<INPUT TYPE="TEXT" NAME="telefono"><br>
<INPUT TYPE="SUBMIT" value="Insertar">
</FORM>
</div>
</BODY>
</HTML>


<HTML>
<HEAD>
<TITLE>Insertar.asp</TITLE>
</HEAD>
<BODY>

<%
'Recogemos los valores del formulario
nombre=Request.Form("nombre")
telefono= Request.Form("telefono")

'Instanciamos y abrimos nuestro objeto conexion
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Mibase"

'Ahora creamos la sentencia SQL
sSQL="Insert Into Clientes (nombre,telefono) values ('" & nombre & "','" & telefono & "')"

'Ejecutamos la orden
set RS = Conn.Execute(sSQL)
%>

<h1><div align="center">Registro Insertado</div></h1>
<div align="center"><a href="lectura.asp">Visualizar el contenido de la base</a></div>

<%
'Cerramos el sistema de conexion
Conn.Close
%>

</BODY>
</HTML>


Como puede verse, la forma de operar es idéntica a la vista anteriormente para el display de una tabla. En este caso hemos introducido un enlace a este primer script de lectura para ver cómo los cambios se han hecho efectivos.

La construcción de la sentencia SQL se hace por fusión de los distintos elementos constitutivos. La forma de fusionarlos mediante el símbolo &. Todo lo que sea texto tiene que ir entre comillas. Sería interesante introducir una línea suplementaria en vuestro código para imprimir la sSQL formada. La línea sería del siguiente tipo:

Response.Write sSQL

Esta línea iría situada evidentemente después de haber construido la sentencia.

Para ver funcionar el script pincha aquí

Comentarios
Fueron enviados 11 comentarios al artículo
1 comentario no revisado
10 comentarios revisados:
Por: Everardo Garcia
05/8/02
La creación de un nuevo registro es muy sencilla pero, como se puede controlar el error de duplicar registros (por contener campos llave en la BD).

RESPUESTA

Antes de insertar un registro debes comprobar que no está repetido y si no lo está lo insertas como de costumbre.

Imagina que quieres insertar un nuevo usuario en una base de datos y todos los usuarios deben tener nombres de usuario distintos. Primero haces una búsqueda en la base de datos de usuarios que tengan como nombre de usuario el nuevo nombre de usuario que pretendes insertar.

Si la búsqueda arroja algún registro quiere decir que ese nombre de usuario está utilizado ya, entonces no debemos insertarlo otra vez. Si la búsqueda anterior no arrojó ningún resultado quería decir que ese nombre de usuario no está utilizado y entonces podemos insertarlo sin problemas.

Por: Federico
25/9/02
Excelente el curso! Realmente muy bueno..tengo una consulta, me gustaria saber como hacer para "llamar" desde la pagina .asp a los valores predeterminados que tengo habilitados para cada campo de la base de datos cuando el usuario ingresa un nuevo registro...... Gracias

RESPUESTA

Tu pregunta no es de ASP, más bien es del lenguaje SQL. Puedes contestarla tu mismo al leer el artículo de Insertar un nuevo registro, en el manual de SQL.

Por: Salva
10/10/02
Efectivamente esta forma es muy sencilla, pero q pasaria si por ejemplo en el nombre ponemos el caracter comilla ", pues esto haria q la sentencia SQL creada fuese erronea y nos daria un error. Por ello creo q no es el mejor metodo para crear un registro. Gracias.

RESPUESTA

Tienes razón, si ponemos el caracter comilla se jode la sentencia, pero entonces lo único que tienes que hacer es buscar comillas en el texto antes de crear la sentencia y sustituirlas por otro caracter o por su correspondiente código de caracter especial de HTML.
Por: Carlos Bolivar
13/3/03
Q TAL!, me parece demaciado excelente este tutorial de ASP, pero tengo un problema la conexion de la base de datos se hace por medio de un DSN, cuando trabajo en mi equipo remoto me funciona a la perfeccion pero como hago para crear ese DSN en el servidor en el cual publico la pag. web ASP...

RESPUESTA

Cada proveedor de alojamiento pone a disposición del usuario un modo para crear los DSN, que no tiene porque ser igual en unos y otros. lo mejor es que te pongas en contacto con tu proveedor o leas sus páginas de ayuda para ver cómo debes crearlo. También es posible que no hayan implementado ningún mecanismo para crear los DSN por tu cuenta y te lo tengan que crear ellos mismos cuando se lo solicites.

Por: Vicen
29/9/03
Me ha parecido un curso excelente
Explica todo con mucha claridad.
Estoy de practicas para una empresa y cuando empece no tenia ni idea de ASP (si de html)
Y ahora ya estoy nadando como pez en el agua de la pagina web de la empresa Gracias
Por: Marlon
02/10/03
Excelente curso!! como aporte quisiera mencionar que en mi caso solo me funcionó con DSN de sistema.

Por otro lado me gustaría aclarar por que se produce el error "La operación debe usar una consulta actualizable.", esto me sucede para actualizar, insertar y borrar mas no para leer los registros de la BD... Gracias

Por: eduardo
01/12/03
Falla. No es posible eliminar el primer registro. No es una solución fiable, y tampoco deja generar registros partiendo de una bd vacía.
Por: moises
03/8/04
el origen de datos puede ser el mismo que el de la base de datos
Por: juanito
04/5/06
Habría que mejorar a la hora de insertar registros.
Fallla: si pones esto
<table border='1'><tr><td>desarrolloweb</td></tr></table>
Por: JMARCOSGB
15/6/06
PRIMERO QUE NADA ALOS QUE TIENEN EL TIPO DE PROBLEMA

<BR>

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query.
/bddpack/insertar.asp, line 20

<BR>

ESO SE DEBE A QUE LA CARPETA EN LA QUE GUARDAN LA BASE DE DATOS NO TIENE PERMISOS DE ESCRITURA, SOLO TIENEN QUE DARLE ESOS PERMISOS ESO ES TODO

Manuales relacionados
Categorias relacionadas
El autor
Rubén Alvarez
Redactor de DesarrolloWeb.com
http://www.desarrolloweb.com
Lectura recomendada
Compra este libro en Agapea, la librería urgente a domicilio.
Últimas noticias
Alojados en el grupo