Você está na página 1de 11

Tutorial de ASP (1 parte)

Qu es ADO?
ActiveX Data Objects (ADO) es una tecnologa ampliable y de fcil uso para agregar acceso a bases de datos a sus pginas Web. uede utili!ar ADO para escribir secuencias de comandos compactas y escalables "ue conecten con bases de datos compatibles con Open Database #onnectivity (OD$#% #onectividad abierta de bases de datos) y orgenes de datos compatibles con O&' D$. (i no tiene muc)a e*periencia en conectividad con bases de datos% encontrar "ue las instrucciones de ADO son ase"uibles y no complicadas. Del mismo modo% si ya tiene e*periencia en la programaci+n con bases de datos% apreciar las caractersticas avan!adas de cone*i+n y de manipulaci+n de consultas independientes del lenguaje de ADO. Nota. (i se desean usar las constantes de ADO se deben incluir los siguientes arc)ivos. ,-../include virtual012 3O43A5 67&'(2#O55O867&'(2(9(:'52ADO2ADO;$(.78#1..< + ,-../include virtual012 3O43A5 67&'(2#O55O867&'(2(9(:'52ADO2ADO=A;A(.78#1 ..<

#aractersticas de ADO
Objetos creados independientemente. Ayudas de modificaci+n en lote. (oporte para procedimientos almacenados. Diferentes tipos de cursores. (oporte para retornar m>ltiples recordsets Aplicaciones libres de ?ilos para aplicaciones de servidor @eb eficientes.

Objetos ADO ConnectionA 5antiene la informaci+n de cone*i+n con el proveedor de datos. set ;ar#one*ion 0 (erver.#reateObject(ADOD$.#onnection) MtodosA OpenA ;ar#one*ion.Open #onnection(tring B%Cser7DD B% ass@ordD CloseA ;ar#one*ion.#lose ExecuteA ;ar#one*ion.'*ecute #ommand:e*t%3ecordsAffected%Options PropiedadesA #ommand:imeOut #onnection(tring #onnection:imeOut (tate ;ersion DefaultData$ase CommandA 5antiene informaci+n acerca de un comando set ;ar#omando 0 (erver.#reateObject(ADOD$.#ommand)

MtodosA CreateParameterA (et var arametro0 command.#reate arameter(8ame% :ype% Direction% (i!e% ;alue) ExecuteA (et recordset 0 command.'*ecute( 3ecordsAffected% arameters% Options ) PropiedadesA Active#onection#omandte*t #ommand:imeOut #ommand:ype 8ame repared (atate ErrorA 5antiene informaci+n acerca de alg>n error ocurrido en el proveedor set ;ar'rror 0 (erver.#reateObject(ADOD$.'rror) FieldA 5antiene informaci+n de un >nico campo dentro de un recordset set ;ar#one*ion 0 (erver.#reateObject(ADOD$.#onnection) ParameterA 's un parmetro para ser usado en un objeto command. set ;ar arametro 0 (erver.#reateObject(ADOD$. arameter) PropertyA #aractersticas de un objeto. set ;ar ropiedad 0 (erver.#reateObject(ADOD$. roperty) ecordsetA #onjunto de registros retornados desde una consulta con un cursor asociado. set ;ar#one*ion 0 (erver.#reateObject(ADOD$.3ecordset) MtodosA AddNe!A recordset.Add8e@ 6ields% ;alues Cancel"pdateA recordset.#ancelCpdate CloseA object.#lose DeleteA recordset.Delete Affect3ecords #et o!sA array 0 recordset.4et3o@s( 3o@s% (tart% 6ields ) $o%eA recordset.5ove 8um3ecords% (tart $o%e&irst' $o%eNext' $o%e(ast' $o%ePre%iousA recordset.5oveX OpenA recordset.Open (ource% Active#onnection% #ursor:ype% &ocE:ype% Options e)ueryA recordset.3e"uery "pdateA recordset.Cpdate 6ields%;alues *upportsA boolean 0 recordset.(upports( #ursorOptions ) PropiedadesA Absolute age% Absolute osition% Active#onnection% $O6% $ooEmarE% #ac)e(i!e% #ursor&ocation% #ursor:ype% 'dit5ode% 'O6% 6ilter% &ocE:ype% 5ars)alOptions% 5a*3ecords% age#ount%

age(i!e% 3ecord#ount% (ource% (tate% (tatus

Tutorial de ASP (2 parte)


Creaci+n del Arc,i%o de Acceso a Datos -D*N. Antes de crear secuencias de comandos para bases de datos tiene "ue proporcionar una forma para "ue ADO encuentre% identifi"ue y se comuni"ue con una base de datos. &os controladores de bases de datos (programas "ue pasan informaci+n desde su aplicaci+n Web a una base de datos) utili!an un 8ombre de origen de datos (D(8) para encontrar e identificar una base de datos OD$# en particular. 8ormalmente% el D(8 contiene informaci+n de configuraci+n de la base de datos% seguridad de usuarios y ubicaci+n% y puede tener la forma de una entrada en el registro del sistema de Windo@s 8: o de un arc)ivo de te*to. #on OD$# puede elegir el tipo de D(8 "ue va a crearA Usuario% Sistema o Archivo. &os D(8 de Csuario y de (istema residen en el registro del sistema de Windo@s 8:. &os D(8 de (istema permiten "ue todos los usuarios "ue )an iniciado una sesi+n en un servidor concreto tengan acceso a una base de datos% mientras "ue los D(8 de Csuario limitan la conectividad con la base de datos a los usuarios "ue dispongan de las credenciales de seguridad apropiadas. &os D(8 de Arc)ivo% "ue tienen la forma de arc)ivos de te*to% proporcionan acceso a varios usuarios y son fcilmente transferibles entre un servidor y otro mediante la copia de los arc)ivos D(8. or estas ra!ones% los ejemplos de este tema utili!an D(8 de Arc)ivo. uede crear un D(8 de Arc)ivo si abre Panel de control desde el men> /nicio de Windo@s. ?aga doble clic en el icono OD$# y seleccione la )oja de propiedades D*N de Arc,i%o. ?aga clic en A0re0ar% elija el controlador de la base de datos y )aga clic en *i0uiente. ara configurar un D(8 de Arc)ivo para una base de datos de $icroso&t Access

F. 'n el cuadro de dilogo Crear nue%o ori0en de datos% seleccione Controlador $icroso&t Access en el cuadro de lista% despuGs% )aga clic en *i0uiente. H. 'scriba el nombre de su D(8 de Arc)ivo y )aga clic en *i0uiente. I. ?aga clic en Finali1ar para crear el origen de datos. J. 'n el cuadro de dilogo /nstalaci+n de OD2C para $icroso&t Access 34% )aga clic en *eleccionar. 'lija un arc)ivo de base de datos de 5icrosoft Access (K.mdb) y )aga clic en Aceptar. Nota or ra!ones de rendimiento y confiabilidad% se recomienda encarecidamente "ue utilice un motor de base de datos cliente-servidor para el despliegue de aplicaciones Web controladas por datos "ue re"uieran una elevada demanda de accesos por parte de ms de FL usuarios simultneos. (i bien ginas Active (erver funciona con cual"uier base de datos compatible con OD$#% se )a probado y est

diseMado para funcionar con bases de datos cliente.servidor como 5icrosoft (r) (N& (erver u Oracle. A( acepta bases de datos de arc)ivos compartidos (5icrosoft(r) Access o 5icrosoft(r) 6o* ro) como orgenes vlidos de datos. Aun"ue algunos ejemplos de la documentaci+n de A( utili!an una base de datos de archivos compartidos% se recomienda utili!ar estos tipos de motores de bases de datos >nicamente con fines de desarrollo o en situaciones de despliegue limitado. &as bases de datos de arc)ivos compartidos pueden no ser tan adecuadas como las bases de datos cliente.servidor para aplicaciones Web de producci+n muy e*igentes. ara configurar un D(8 de Arc)ivo para una base de datos de *Q( *er%er Nota (i la base de datos reside en un servidor remoto% p+ngase en contacto con el administrador del servidor para obtener informaci+n de configuraci+n adicionalO el siguiente procedimiento utili!a la configuraci+n predeterminada de OD$# para (N& (erver% "ue puede no funcionar con su configuraci+n )ard@are. F. 'n el cuadro de dilogo Crear nue%o ori0en de datos% seleccione *Q( *er%er en el cuadro de lista y )aga clic en *i0uiente. H. 'scriba el nombre de su D(8 de Arc)ivo y )aga clic en *i0uiente. I. ?aga clic en Finali1ar para crear el origen de datos. J. 'scriba el nombre del servidor "ue ejecuta (N& (erver% su 7d. de inicio de sesi+n y su contraseMa. P. 'n el cuadro de dilogo Crear un nue%o ori0en de datos *Q( *er%er% escriba en el cuadro de lista *er%idor el nombre del servidor "ue contenga la base de datos de (N& (erver y )aga clic en *i0uiente. Q. (eleccione el mGtodo de comprobar la autenticidad del 7d. de inicio de sesi+n. R. (i elige la autenticaci+n (N& (erver% escriba el 7d. de inicio de sesi+n y la contraseMaO despuGs% )aga clic en *i0uiente. S. 'n el cuadro de dilogo Crear un nue%o ori0en de datos *Q( *er%er% estable!ca la base de datos predeterminada% la configuraci+n de los procedimientos almacenados del controlador y los identificadores A8(7O despuGs% )aga clic en *i0uiente. ( ara obtener ms informaci+n% )aga clic en Ayuda.) T. 'n el cuadro de dilogo (tambiGn se llama Crear un nue%o ori0en de datos *Q( *er%er)% elija el mGtodo de traducci+n de caracteres y )aga clic en *i0uiente. ( ara obtener ms informaci+n% )aga clic en Ayuda.) FL. 'n el siguiente cuadro de dilogo (tambiGn se llama Crear un nue%o ori0en de datos *Q( *er%er)% seleccione las opciones de registro. Nota 8ormalmente% s+lo debe utili!ar el registro para depurar problemas de acceso a la base de datos. FF. 'n el cuadro de dilogo /nstalaci+n de OD2C para $icroso&t *Q( *er%er% )aga clic en Comprobar ori0en de datos. (i el D(8 se )a creado correctamente% el cuadro de dilogo esultados de la comprobaci+n indicar "ue la comprobaci+n es correcta. Informacin de conexin y seguridad de SQL Server (i va a desarrollar una aplicaci+n A( de base de datos diseMada para conectar con una base de datos remota de (N& (erver% debe tener en cuenta tambiGn los aspectos siguientesA Es)uema de conexi+n uede elegir entre los mGtodos (ocEets :# 27 y #anali!aciones con nombre para tener acceso a bases de datos remotas de (N& (erver. #on #anali!aciones con nombre% los clientes de la base de datos tienen "ue estar autenticados por

Windo@s 8: antes de establecer una cone*i+n% dejando la posibilidad de "ue un e"uipo remoto "ue ejecute canali!aciones con nombre pueda denegar el acceso a un usuario "ue tenga las credenciales apropiadas de acceso a (N& (erver% pero no tenga una cuenta de usuario de Windo@s 8: en dic)o e"uipo. #omo alternativa% las cone*iones "ue utili!an (ocEets :# 27 conectan directamente con el servidor de la base de datos% sin conectar a travGs de un e"uipo intermediario (como es el caso de #anali!aciones con nombre). #omo las cone*iones establecidas mediante (ocEets :# 27 conectan directamente con el servidor de la base de datos% los usuarios pueden tener acceso mediante la autenticaci+n de (N& (erver% no mediante la autenticaci+n de Windo@s 8:. 8ota ara aumentar el rendimiento en la cone*i+n con bases de datos remotas% utilice (ocEets :# 27 . *e0uridad (i utili!a las caractersticas de seguridad Integrada o Mixta de (N& (erver y la base de datos de (N& (erver reside en un servidor remoto% no podr utili!ar la autenticaci+n Desafo23espuesta de Windo@s 8:. 'specficamente% no puede reenviar credenciales Desafo23espuesta de Windo@s 8: al e"uipo remoto. 'sto significa "ue "ui! tenga "ue utili!ar la autenticaci+n $sica% "ue se basa en "ue el usuario proporcione la informaci+n del nombre de usuario y la contraseMa. ara obtener ms informaci+n acerca de estos aspectos% visite la pgina principal de 5icrosoft (N& (erver :ec)nical (upport en )ttpA22@@@.microsoft.com2s"lsupport2.

ara configurar un D(8 de Arc)ivo para una base de datos de Oracle

Aseg>rese de "ue el soft@are cliente de Oracle estG correctamente instalado en el e"uipo donde vaya a crear el D(8. ara obtener ms informaci+n% consulte con el administrador del servidor y la documentaci+n de la base de datos. F. 'n el cuadro de dilogo Crear nue%o ori0en de datos% seleccione Controlador OD2C de $icroso&t para Oracle en el cuadro de lista y )aga clic en *i0uiente. H. 'scriba el nombre del D(8 de Arc)ivo y )aga clic en *i0uiente. I. ?aga clic en Finali1ar para crear el origen de datos. J. 'scriba un nombre de usuario% una contraseMa y el nombre del servidorO despuGs% )aga clic en Aceptar. Nota &os arc)ivos D(8 tienen la e*tensi+n .dsn y residen en el directorio UArc)ivos de programaUArc)ivos comunesUOD$#UData (ources. ara obtener ms informaci+n acerca de la creaci+n de D(8 de Arc)ivo% visite el sitio Web de 5icrosoft OD$# en )ttpA22microsoft.com2odbc2.

Tutorial de ASP (3 parte)


Conexi+n con una 2ase de Datos 'l primer paso para tener acceso a la informaci+n de una base de datos consiste en establecer una cone*i+n con el origen de datos. ADO proporciona el objeto Connection% "ue puede utili!ar para establecer y administrar las cone*iones entre

sus aplicaciones y las bases de datos de OD$#. 'l objeto Connection incorpora diversas propiedades y mGtodos "ue puede utili!ar para abrir y cerrar cone*iones con bases de datos% y para enviar consultas de actuali!aci+n de la informaci+n. ara establecer una cone*i+n con una base de datos% cree primero una instancia del objeto Connection. or ejemplo% la siguiente secuencia de comandos crea una instancia del objeto Connection y procede a abrir una cone*i+nA <% 'Crea un objeto Connection Set cn = Server.CreateObject("ADODB.Connection") 'Abre una conexin; la ca ena !ace re"erencia al DS# cn.O$en "%&'(DS#=)iBa*eDeDato*. *n" %+ Nota &a cadena D(8 no contiene espacios en blanco ni antes ni despuGs del signo igual (0). 'n este caso% el mGtodo Open del objeto Connection )ace referencia al D(8 de Arc)ivo% "ue contiene la informaci+n de ubicaci+n y la configuraci+n de la base de datos. Opcionalmente% tambiGn puede )acer referencia directamente a un proveedor% origen de datos% 7d. de usuario y contraseMa% en lugar de al D(8. Ejecuci+n de Consultas con el Objeto CONNEC5/ON #on el mGtodo Execute del objeto Connection puede enviar consultas en el &enguaje de consulta estructurado ((N&) al origen de datos y recuperar los resultados. (N&% un lenguaje estndar para comunicarse con bases de datos% tiene comandos para recuperar y actuali!ar informaci+n. &a siguiente secuencia de comandos utili!a el mGtodo Execute del objeto Connection para enviar una consulta con un comando /N*E 5 de (N&% "ue inserta datos en una tabla concreta de la base de datos. 'n este caso% el blo"ue de la secuencia de comandos inserta el nombre =osG &ugo en una tabla de la base de datos llamada #ustomers. <% 'De"ine el DS# e Arc!ivo *trDS# = "%&'(DS#=)iBa*eDeDato*. *n" 'Crea la in*tancia el objeto Connection , abre una conexin con la ba*e e ato* Set cn = Server.CreateObject("ADODB.Connection") cn.O$en *trDS# 'De"ine la in*truccin S('(C- e S.' *trS.' = "&#S(/- &#-O Cu*to0er* (%ir*t#a0e1 'a*t#a0e) 2A'3(S ('4o*5'1''u6o')" '3tili7a el 05to o (xecute $ara enviar una con*ulta S.' a la ba*e e ato* cn.(xecute(*trS.') %+ Nota 'a ruta el DS# e Arc!ivo no ebe incluir e*$acio* en blanco ante* ni e*$u5* el *i6no i6ual (=). Adems del comando /N*E 5 de (N&% puede utili!ar los comandos "PDA5E y DE(E5E de (N& para modificar y "uitar informaci+n de la base de datos. #on el comando "PDA5E de (N& puede modificar los valores de los elementos de una tabla de la base de datos. &a siguiente secuencia de comandos usa el comando "PDA5E para cambiar todos los campos 6irst8ame de la tabla #ustomers a =uan en todas las filas cuyo campo &ast8ame contenga el apellido 3obles. <% Set cn = Server.CreateObject("ADODB.Connection") cn.O$en "%&'(DS#=)iBa*eDeDato*. *n" cn.(xecute "38DA-( Cu*to0er* S(- %ir*t#a0e = '4uan' 9:(/( 'a*t#a0e = '/oble*' "

%+ 8ara ;uitar eter0ina o* re6i*tro* e unatabla e la ba*e e ato*1 < B/ + utilice el co0an o DELETE e S.'. 'a *i6uiente *ecuencia e co0an o* ;uita to a* la* "ila* e la tabla Cu*to0er* cu,o a$elli o *ea /oble*< <% Set cn = Server.CreateObject("ADODB.Connection") cn.O$en "%&'(DS#=)iBa*eDeDato*. *n" cn.(xecute "D('(-( %/O) Cu*to0er* 9:(/( 'a*t#a0e = '/oble*'" %+ Nota Debe tener muc)o cuidado al utili!ar el comando DE(E5E de (N&. Cn comando DE(E5E "ue no vaya acompaMado de una clusula 67E E eliminar todas las filas de la tabla. Aseg>rese de incluir una clusula 67E E de (N&% "ue especifica las filas e*actas "ue se van a eliminar. "so del Objeto ECO D*E5 para manipulaci+n de resultados Aun"ue el objeto Connection simplifica la tarea de conectar con una base de datos y emitir una consulta% el objeto Connection tiene sus limitaciones. 'n concreto% con el objeto Connection no se pueden crear secuencias de comandos "ue recuperen y presenten informaci+n de una base de datosO tiene "ue saber e*actamente las modificaciones "ue desea reali!ar en la base de datos y despuGs implementar las modificaciones como consultas. ara recuperar datos% e*aminar resultados y modificar su base de datos% ADO proporciona el objeto ecordset. 'l objeto ecordset tiene las funciones necesarias para% dependiendo de las restricciones de las consultas% recuperar y presentar un conjunto de filas% o registros% de una base de datos. 'l objeto ecordset mantiene la posici+n de cada registro devuelto por la consulta% lo "ue permite 1recorrer1 los resultados de uno en uno. Dependiendo de c+mo configure las propiedades del tipo de cursor del objeto ecordset% puede recorrer y actuali!ar los registros. &os cursores de la base de datos se comportan como punteros "ue le permiten encontrar un elemento especfico de un conjunto de registros. &os cursores son especialmente >til para recuperar y e*aminar registros% y despuGs reali!ar operaciones basadas en dic)os registros. 'l objeto ecordset tiene propiedades "ue le permiten controlar con precisi+n el comportamiento de los cursores% lo "ue aumenta la capacidad de e*aminar y actuali!ar los resultados. or ejemplo% puede utili!ar las propiedades Cursor5ype y Cursor(ocation para configurar un tipo de cursor "ue devuelva un conjunto de resultados a su aplicaci+n cliente (los resultados permanecen normalmente en el servidor de base de datos) y presente las >ltimas modificaciones reali!adas en la base de datos por otros usuarios.

Recuperar un conjunto de registros


&as buenas aplicaciones de base de datos emplean el objeto Connection para establecer un vnculo y el objeto ecordset para manipular los datos devueltos. (i utili!a conjuntamente las funciones especiali!adas de ambos objetos puede desarrollar aplicaciones de bases de datos "ue realicen casi cual"uier tarea de tratamiento de datos. or ejemplo% la siguiente secuencia de comandos del servidor utili!a el objeto ecordset para ejecutar un comando *E(EC5 de (N&. 'l comando

*E(EC5 recupera un conjunto especfico de informaci+n basndose en las restricciones de la consulta. &a consulta tambiGn contiene una clusula 67E E de (N&% "ue se utili!a para establecer el criterio de selecci+n de la consulta. 'n este ejemplo% la clusula 67E E limita la consulta a todos los registros "ue contengan el apellido Soto en la tabla Customers de la base de datos. <% '(*tablece una conexin con un ori6en e ato* *trDS# = "%&'(DS#=)iBa*eDeDato*. *n" Set cn = Server.CreateObject("ADODB.Connection") cn.O$en *trDS# 'Crea una in*tancia e un objeto /ecor *et Set r*Cu*to0er* = Server.CreateObject("ADODB./ecor *et") 'Abre un objeto /ecor *et con el 05to o O$en ', utili7a la conexin e*tableci a $or el objeto Connection *trS.' = "S('(C- %ir*t#a0e1 'a*t#a0e %/O) Cu*to0er* 9:(/( 'a*t#a0e = 'Soto' " r*Cu*to0er*.O$en *trS.'1 cn '/ecorre el conjunto e lo* re6i*tro* , $re*enta lo* re*ulta o* 'e incre0enta la $o*icin el re6i*tro con el 05to o )ove#ext Set obj%ir*t#a0e = r*Cu*to0er*("%ir*t#a0e") Set obj'a*t#a0e = r*Cu*to0er*("'a*t#a0e") Do 3ntil r*Cu*to0er*.(O% /e*$on*e.9rite obj%ir*t#a0e = " " = obj'a*t#a0e = "<B/+" r*Cu*to0er*.)ove#ext 'oo$ %+ Observe "ue en el ejemplo anterior% el objeto Connection estableci+ la cone*i+n con la base de datos y el objeto ecordset utili!+ la misma cone*i+n para recuperar resultados de la base de datos. 'ste mGtodo es >til cuando tenga "ue configurar con precisi+n la forma en "ue se establece el vnculo con la base de datos. or ejemplo% si necesitara especificar el tiempo de espera antes de anular un intento de cone*i+n% tendra "ue utili!ar el objeto Connection para establecer dic)a propiedad. (in embargo% si s+lo desea establecer una cone*i+n con las propiedades de cone*i+n predeterminadas de ADO% podra utili!ar el mGtodo Open del objeto ecordset para establecer el vnculoA <% *trDS# = "%&'(DS#=)iBa*eDeDato*. *n" *trS.' = "S('(C- %ir*t#a0e1 'a*t#a0e %/O) Cu*to0er* 9:(/( 'a*t#a0e = 'Soto' " Set r*Cu*to0er* = Server.CreateObject("ADODB./ecor *et") 'Abre una conexin con el 05to o O$en ', utili7a la conexin e*tableci a $or el objeto Connection r*Cu*to0er*.O$en *trS.'1 *trDS# '/ecorre el conjunto e re6i*tro*1 $re*enta lo* re*ulta o* 'e incre0enta la $o*icin el re6i*tro con el 05to o )ove#ext Set obj%ir*t#a0e = r*Cu*to0er*("%ir*t#a0e") Set obj'a*t#a0e = r*Cu*to0er*("'a*t#a0e") Do 3ntil r*Cu*to0er*.(O% /e*$on*e.9rite obj%ir*t#a0e = " " = obj'a*t#a0e = "<B/+" r*Cu*to0er*.)ove#ext 'oo$ %+ #uando establece una cone*i+n con el mGtodo Open del objeto ecordset% est utili!ando implcitamente el objeto Connection para proteger el vnculo.

Tutorial de ASP (4 parte)


Manejo de consultas con el Objeto COMMAND Con el objeto Command e ADO $ue e ejecutar con*ulta* e la 0i*0a "or0a ;ue con lo* objeto* Connection , Recordset1 exce$to en ;ue con el objeto Command $ue e $re$arar1 o co0$ilar1 la con*ulta con el ori6en e la ba*e e ato* , e*$u5* enviar la 0i*0a con*ulta re$eti a0ente con i*tinto* valore*. 'a ventaja e co0$ilar con*ulta* e e*ta 0anera con*i*te en la enor0e re uccin el tie0$o nece*ario $ara volver a enviar la* 0o i"icacione* e una con*ulta exi*tente. A e0>*1 $ue e ejar la* con*ulta* S.' $arcial0ente in e"ini a*1 con la $o*ibili a e alterar $arte* e la* con*ulta* ju*to ante* e *u ejecucin. 'a coleccin Parameters el objeto Command le a!orra lo* $roble0a* e tener ;ue volver a con*truir la con*ulta ca a ve7 ;ue ten6a ;ue ejecutarla. 8or eje0$lo1 *i tiene ;ue actuali7ar $eri ica0ente la in"or0acin e *u0ini*tro* , co*to* en un *i*te0a e inventario 9eb1 $ue e $re e"inir *u con*ulta e la *i6uiente 0anera<
<% 'Abre una conexin 0e iante el objeto Co00an el objeto 'Connection no tiene un 05to o O$en $ara e*tablecer 'la conexin *trDS# = "%&'(DS#=)iBa*eDeDato*. *n" Set cn = Server.CreateObject("ADODB.Connection") cn.O$en *trDS# 'Crea el objeto Co00an ; utili7a la $ro$ie a 'ActiveConnection $ara 'a juntar la conexin al objeto Co00an Set c0= Server.CreateObject("ADODB.Co00an ") Set c0.ActiveConnection = cn 'De"ine lacon*ulta S.' c0.Co00an -ext = "&#S(/- &#-O &nventor, ()aterial1 .uantit,) 2A'3(S (?1 ?)" '@uar a una ver*in $re$ara a (o $reco0$ila a) e la con*ulta < B/ + 'e*$eci"ica a en la $ro$ie a 'Co00an -ext ante* e la $ri0era ejecucin el objeto Co00an . c0.8re$are = -rue 'De"ine la in"or0acin e con"i6uracin ' e lo* $ar>0etro* e la con*ulta

c0.8ara0eter*.A$$en c0.Create8ara0eter("0aterialAt,$e"1BCC11BDD) c0.8ara0eter*.A$$en c0.Create8ara0eter(";uantit,"1BCC1 1BDD ) 'De"ine , ejecuta la $ri0era in*ercin c0("0aterialAt,$e") = "Bo0billa*" c0(";uantit,") = "EC" c0.(xecute 'De"ine , ejecuta la *e6un a in*ercin c0("0aterialAt,$e") = "%u*ible*" c0(";uantit,") = "FCC" c0.(xecute %+

Si exa0ina el eje0$lo anterior1 ob*ervar> ;ue la *ecuencia e co0an o* vuelve a con*truir re$eti a0ente , envGa una con*ulta S.' con i*tinto* valore*1 *in tener ;ue volver a e"inir , enviar la con*ulta al ori6en e ato*. Co0$ilar con*ulta* con el objeto Command ta0bi5n le o"rece la ventaja e evitar lo* $roble0a* ;ue $u ieran $rovenir e concatenar ca ena* , variable* $ara "or0ar con*ulta* S.'. (n $articular1 *i utili7a la coleccin Parameter el objeto Command $ue e evitar $roble0a* relaciona o* con la e"inicin e cierto* ti$o* e variable* e ca ena*1 "ec!a* , !ora*. 8or eje0$lo1 lo* valore* e la* con*ulta* S.' ;ue conten6an a$*tro"o* (') $ue en !acer ;ue la con*ulta "alle<
*trS.' = "&#S(/- &#-O Cu*to0er* (%ir*t#a0e1 'a*t#a0e) " = A " 2A'3(S ('/oberto'1'O':ara')"

Ob*erve ;ue el a$elli o O'Hara contiene un a$*tro"o ;ue entra en con"licto con lo* a$*tro"o* ;ue *e utili7an co0o eli0ita ore* e ato* en la $alabra clave VALUE e S.'. Si enla7a el valor e la con*ulta co0o un $ar>0etro el objeto Command1 *e evitan e*te ti$o e $roble0a*. Manejo de cone!iones a "ases de Datos 3no e lo* 0a,ore* reto* el i*eHo e una a$licacin 9eb *o"i*tica a e ba*e e ato*1 co0o una a$licacin e entra a e $e i o* en lGnea ;ue atien a a 0ile* e cliente*1 e* la correcta a 0ini*tracin e la conexione* con la ba*e e ato*. Abrir , 0antener la* conexione* con la* ba*e* e ato*1 inclu*o cuan o no *e tran*0ita in"or0acin1 $ue e a"ectar *evera0ente a lo* recur*o* el *ervi or e ba*e e ato* , $rovoca $roble0a* e conectivi a . 'a* a$licacione* 9eb e ba*e* e ato* bien i*eHa a* reciclan la* conexione* con la ba*e e ato* , co0$en*an lo* retra*o* ebi o* al tr>"ico e la re .

Abandonar los intentos de conexin


3n *ervi or e ba*e e ato* ;ue ex$eri0ente un re$entino incre0ento en *u activi a $ue e ;ue ar *atura o en *u* conexione*1 lo ;ue incre0enta con*i erable0ente el tie0$o nece*ario $ara e*tablecer una nueva conexin. Co0o re*ulta o1 lo* retra*o* exce*ivo* en la conexin $ue en re ucir el ren i0iento e *u a$licacin e ba*e e ato*. Con la $ro$ie a ConnectionTimeout el objeto Connection $ue e li0itar la canti a e tie0$o ;ue *u a$licacin e*$era ante* e aban onar un intento e conexin , e0itir un 0en*aje e error. 8or eje0$lo1 la *i6uiente *ecuencia e co0an o* e*tablece la $ro$ie a ConnectionTimeout $ara e*$erar veinte *e6un o* ante* e cancelar el intento e conexin<

Set cn = Server.CreateObject("ADODB.Connection") cn.Connection-i0eout = BC cn.O$en "%&'(DS#=)iBa*eDeDato*. *n"

(l valor $re eter0ina o e la $ro$ie a ConnectionTimeout e* IC *e6un o*. Nota Ante* e incor$orar la $ro$ie a ConnectionTimeout a *u* a$licacione* e ba*e* e ato*1 a*e6Jre*e e ;ue *u $rovee or e conexione* , el ori6en e ato* ace$ten e*ta $ro$ie a .

Aceptar conexiones
'a* a$licacione* 9eb e ba*e* e ato* ;ue e*tablecen , ter0inan con "recuencia conexione* con ba*e* e ato* $ue en re ucir el ren i0iento el *ervi or e ba*e e ato*. AS8 ace$ta la e"iciente a 0ini*tracin e la* conexione* ;ue *e con*i6ue 0e iante la "uncin e a6ru$a0iento e conexione* e ODBC I.D. (l a6ru$a0iento e conexione* 0antiene abierta* la* conexione* con la* ba*e* e ato* , a 0ini*tra el u*o co0$arti o e la* conexione* entre i*tinta* $eticione* e u*uario $ara 0antener el nivel e ren i0iento , re ucir el nJ0ero e conexione* inactiva*. (n ca a $eticin e conexin1 el conjunto e conexione* eter0ina *i !a, al6una conexin inactiva en el conjunto. Si e* a*G1 el conjunto e conexione* evuelve una e ella* en lu6ar e e*tablecer una nueva conexin con la ba*e e ato*. Si e*ea ;ue *u controla or ODBC $artici$e en el conjunto e conexione*1 ebe con"i6urar *u controla or e*$ecG"ico e ba*e e ato* , e*$u5* e*tablecer la $ro$ie a CPTimeout el controla or en el re6i*tro el *i*te0a e 9in oK* #-. Cuan o ODBC e*conecta una conexin1 la conexin *e 6uar a en un conjunto1 en lu6ar e e*conectar*e. 'a $ro$ie a CPTimeout eter0ina el $erio o e tie0$o e inactivi a ;ue una conexin $ue e $er0anecer en el conjunto e conexione*. Si la conexin $er0anece en el conjunto urante un $erio o e tie0$o 0a,or ;ue el e*tableci o en CPTimeout1 la conexin *e cierra , *e ;uita el conjunto. (l valor $re eter0ina o e CPTimeout e* FC *e6un o*. 8ue e e*tablecer *electiva0ente la $ro$ie a CPTimeout $ara $er0itir el a6ru$a0iento e conexione* $or ca a controla or e*$ecG"ico e ba*e e ato* ODBC *i crea una entra a en el re6i*tro el *i*te0a con lo* *i6uiente* valore*<
U?V'9W&O#A&W5A#?78'U(O6:WA3'UOD$#UOD$#78(:.787Ucontrolador U# :imeout 0 timeout (3'4W(X% en segundos)

or ejemplo% la clave siguiente establece el tiempo de inactividad del conjunto de cone*iones a FSL segundos (I minutos) para el controlador de (N& (erver.
L:M(NA'OCA'A)AC:&#(LSO%-9A/(LODBCLODBC&#S-.&#&LS.' ServerLC8-i0eout = OPC

Nota De forma predeterminada% su servidor Web activa el conjunto de cone*iones para (N& (erver y asigna a CP5imeout QL segundos.

Você também pode gostar