21 - INSERT (en una tabla de Microsoft SQL Server) |
Ahora veremos como almacenar datos en una tabla de SQL Server. En el servidor de ASPYA.com.ar he creado una base de datos llamada "wi630629_aspya" y la misma contiene una tabla con la siguiente estructura:
create table articulos( codigo int identity, descripcion varchar(30) not null, precio float )
Confeccionaremos un formulario que solicite la carga de la descripción de un artículo y seguidamente su precio:
<html> <head> <title>problema</title> </head> <body> <form action="pagina1.asp" method="post"> Descripcion del articulo: <input type="text" name="descripcion" size="30"><br> Precio: <input type="text" name="precio" size="10"><br> <input type="submit" value="Confirmar"><br> </form> </body> </html>
Veamos ahora lo nuevo que es la conexión a la base de datos de SQL Server y la ejecución del comando insert en la tabla artículos:
<%option explicit%> <html> <head> <title>problema</title> </head> <body> <% dim conexion set conexion = Server.CreateObject("ADODB.Connection") conexion.ConnectionString = "Provider=SQLOLEDB.1;" & _ "Data Source=.;" & _ "Integrated Security=SSPI;" & _ "Initial Catalog=wi630629_aspya" conexion.Open conexion.execute("insert into articulos(descripcion,precio)" & _ "values ('" & request.form("descripcion") & _ "'," & request.form("precio") & ")") conexion.close %> </body> </html>
Veamos paso a paso como nos conectamos a la base de datos de SQL Server. Primero creamos un objeto "ADODB.Connection":
set conexion = Server.CreateObject("ADODB.Connection")
Seguidamente inicializamos la propiedad ConnectionString con la cadena de conexión a la base de datos respectiva:
conexion.ConnectionString = "Provider=SQLOLEDB.1;" & _ "Data Source=.;" & _ "Integrated Security=SSPI;" & _ "Initial Catalog=wi630629_aspya"
Las propiedades que debemos inicializar en la cadena de conexión se separan por punto y coma y significan:
Provider: Proveedor
Data Source: con un punto indicamos que se ubica en localhost
Integrated Security=SSPI: Seguridad integrada de windows
Initial Catalog: Nombre de la base de datos a acceder, en nuestro caso "wi630629_aspya"
Una vez que inicializamos la cadena de conexión procedemos a llamar al método open para abrirla:
conexion.Open
Podemos ahora pasarle un comando SQL al SQL Server mediante el método execute del objeto conexión:
conexion.execute("insert into articulos(descripcion,precio)" & _ "values ('" & request.form("descripcion") & _ "'," & request.form("precio") & ")")
Lo más importante es poder generar una cadena con el comando insert correctamente formado para evitar que el SQL Server nos retorne un error, esto puede ser por algún error sintáctico en la cadena del comando SQL.
Hay que tener en cuenta que en VB Script cuando queremos seguir en la línea siguiente debemos disponer al final de línea el caracter _ (debe haber un espacio de separación)
Con el operador & concatenamos las cadenas con información fija y los datos que rescatamos del formulario de carga.
Finalmente cerramos la conexión:
conexion.close