|
Objeto COMMAND
Con el objeto Command de ADO puede ejecutar
consultas de la misma forma que con los objetos Connection y
Recordset, excepto en que con el objeto Command puede preparar, o
compilar, la consulta con el origen de la base de datos y después
enviar la misma consulta repetidamente con distintos valores. La
ventaja de compilar consultas de esta manera consiste en la enorme
reducción del tiempo necesario para volver a enviar las
modificaciones de una consulta existente. Además, puede dejar las
consultas SQL parcialmente indefinidas, con la posibilidad de
alterar partes de las consultas justo antes de su ejecución.
La colección Parameters del objeto Command le ahorra los problemas
de tener que volver a construir la consulta cada vez que tenga que
ejecutarla. Por ejemplo, si tiene que actualizar periódicamente la
información de suministros y costos en un sistema de inventario Web,
puede predefinir su consulta de la siguiente manera:
<%
'Abre una conexión mediante el objeto Command del objeto Connection
'no tiene un método Open para establecer la conexión
strDSN = "FILEDSN=MiBaseDeDatos.dsn"
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open strDSN
'Crea el objeto Command; utiliza la propiedad ActiveConnection para
'adjuntar la conexión al objeto Command
Set cm= Server.CreateObject("ADODB.Command")
Set cm.ActiveConnection = cn
'Define la consulta SQL
cm.CommandText = "INSERT INTO Inventory (Material, Quantity) VALUES
(?, ?)"
'Guarda una versión preparada (o precompilada) de la consulta
especificada en la propiedad
'CommandText antes de la primera ejecución del objeto Command.
cm.Prepared = True
'Define la información de configuración de los parámetros de la
consulta
cm.Parameters.Append cm.CreateParameter("material_type",200, ,255 )
cm.Parameters.Append cm.CreateParameter("quantity",200, ,255 )
'Define y ejecuta la primera inserción
cm("material_type") = "Bombillas"
cm("quantity") = "40"
cm.Execute
'Define y ejecuta la segunda inserción
cm("material_type") = "Fusibles"
cm("quantity") = "600"
cm.Execute
%>
Si examina el ejemplo anterior, observará que la secuencia de
comandos vuelve a construir repetidamente y envía una consulta SQL
con distintos valores, sin tener que volver a definir y enviar la
consulta al origen de datos. Compilar consultas con el objeto
Command también le ofrece la ventaja de evitar los problemas que
pudieran provenir de concatenar cadenas y variables para formar
consultas SQL.
En particular, si utiliza la colección Parameter del objeto Command
puede evitar problemas relacionados con la definición de ciertos
tipos de variables de cadenas, fechas y horas. Por ejemplo, los
valores de las consultas SQL que contengan apóstrofos (') pueden
hacer que la consulta falle:
strSQL = "INSERT INTO Customers (FirstName, LastName) VALUES
('Roberto','O'Hara')"
Observe que el apellido O'Hara contiene un apóstrofo que entra en
conflicto con los apóstrofos que se utilizan como delimitadores de
datos en la palabra clave VALUES de SQL. Si enlaza el valor de la
consulta como un parámetro del objeto Command, se evitan este tipo
de problemas.
|
 |

|