ASP es una herramienta poderosa para generar páginas web dinámicas interactivas. A continuación se muestra un tutorial sobre el uso de ASP Storage que el editor ha compartido con usted. Amigos interesados, ¡aprendamos al respecto con el editor!
1. Pase los parámetros usando objetos de comando y objetos de parámetros. Esta conferencia utilizará principalmente la base de datos de Microsoft SQL Server 7.0. Primero, cree un archivo de conexión ADOSQL7.asp para copia de seguridad. No lo especificaré cuando se use más tarde.
%'' ADOSQL7.ASP
OpcionExpliCit
Respuesta.expires = 0
'' Parte 1: Establecer una conexión
Dimcnn, strcnn
Setcnn = server.createObject ("ADODB.Connection")
Strcnn = "proveedor = sqloledb; userId = sa; contraseña =; inicialCatalog = pubs; dataSource = ICBCZJP"
Cnn.openstrcnn
%>
Nota: Al usarlo usted mismo, configure DataSource en el nombre de la máquina de su servidor de base de datos.
Además, cuando se usa bases de datos de acceso en el pasado, Microsoft Access97 puede ver fácilmente campos y datos. Al usar bases de datos SQLServer, especialmente al depurar los scripts ASP en otra máquina, debe instalar herramientas adicionales para ver campos y datos. Aquí le proporcionamos una herramienta: MSQRY32.exe (MicrosoftQuery). Este archivo está instalado con Office97 y generalmente se encuentra en el directorio "Microsoft Office/Office".
Ejemplo WUF70.asp:
%@Idioma = "vBscript"%>
!-#includefile = "adosql7.asp"->
!-#includeFile = "Adovbs.inc"->
%'' wuf70.asp
Dimcmdtest, prmtest, rstest
'' Crear objeto de comando
Setcmdtest = server.createObject ("ADODB.COMMAND")
'Los objetos de registro y comando se pueden conectar a los objetos de conexión a través de la propiedad ActiveConnection.
cmdtest.activeconnection = cnn
'' Comando SQL: contiene dos parámetros, ¿expresarlo con?
cmdtest.commandText = "updateJobSsetJob_Desc =? WhereJob_id =?"
'' Suponga que el tipo de comando es la declaración SQL
cmdtest.commandType = ADCMDText
'' La propiedad preparada determina si primero compilar el comando sql primero, establecerlo en verdadero para acelerar la ejecución
cmdtest.prepared = true
'' Crear objeto de parámetro
SetPrmtest = cmdtest.createParameter ("Job_desc", Advarchar, AdparamInput, 50, "Red")
'' Agregar datos a parámetros recopilación de datos
cmdtest.parameters.appendprmtest
SetPrmtest = cmdtest.createParameter ("Job_id", adsmallint, adparamInput ,, "12")
cmdtest.parameters.appendprmtest
'' Ejecutar modificación: no es necesario devolver el resultado, solo use cmdtest.execute
cmdtest.ExCute
'' Restablecer los parámetros para ejecutar: puede modificar otro datos
cmdtest.parameters ("Job_id") = "1"
cmdtest.parameters ("Job_desc") = "Test"
cmdtest.ExCute
'' Restablecer los parámetros para ejecutarse
cmdtest ("job_id") = "14"
cmdtest ("job_desc") = "financiero"
cmdtest.ExCute
SetRstest = cnn.execute ("selectJob_id, Job_DescFromJobs")
Mientras que
Response.WriterStest (0) y rstest (1) y ""
rstest.movenext
Encaminarse a
Cnn.close: setprmtest = nada
Setcmdtest = nada: setcnn = nada
%>
analizar:
1. El método CreateParameter del objeto de comando se usa para crear objetos de parámetros para comandos SQL o procedimientos almacenados. Hay cinco parámetros en total (los cinco parámetros son opcionales):
El primer parámetro: el nombre del objeto de parámetro;
El segundo parámetro: hay demasiados tipos de tipos de datos de objetos de parámetros. Consulte la ayuda de ADO, aquí Advarchar (valor de cadena), adsmallInt (entero de 2 byte firmado);
El tercer parámetro: Tipo de parámetro. Puede ser: adparamInput (indica parámetros de entrada), adparamoutput (indica como parámetros de salida), adparaMreturnValue (indica como valor de retorno), adparamunknown (indica que el tipo de parámetro no se puede determinar), adparamInptoutput (indica como parámetros de entrada/salida);
El cuarto parámetro: se especifica preferiblemente la longitud de datos del parámetro igual a la longitud del campo correspondiente en la base de datos para evitar errores durante el uso. Especialmente cuando el tipo de datos es Varchar, si es un entero o un tipo de fecha, el valor no es necesario;
El quinto parámetro: el valor inicial de la configuración del parámetro.
2.cmdtest.parameters.append Method agrega un objeto de parámetro a la recopilación de datos de parámetros. A partir de este ejemplo, también puede ver cómo usar múltiples parámetros.
3. De este ejemplo, podemos ver que solo necesita restablecer los parámetros de entrada para realizar modificaciones a otros datos, lo cual es muy conveniente. Esta idea también es uno de los métodos más utilizados al programar.
4. Reinicie los parámetros, puede usar cmdtest.parameters u omitirlo a cmdtest ("job_id").
2. Use procedimientos almacenados en ASP
¿Qué es un procedimiento almacenado (un procedimiento almacenado se encuentra en el servidor de la base de datos y es una colección de declaraciones SQL que pueden contener una o más declaraciones SQL), y cómo crear procedimientos almacenados no pertenece al contenido de esta conferencia? Esta conferencia ilustra principalmente cómo llamar a los procedimientos almacenados en ASP.
Los beneficios del uso de procedimientos almacenados son excelentes, que son más eficientes que ejecutar comandos SQL en scripts ASP; Pueden mejorar el rendimiento general y reducir la carga de red (reducir la interacción entre los servidores de red y los servidores de datos); Pueden optimizar el código ASP y mejorar la flexibilidad del código, etc.
(I) Use parámetros de entrada en procedimientos almacenados
El procedimiento almacenado utilizado en este ejemplo es "Byroyalty" que viene con SQLServer 7.0. Una declaración SQL en el interior es muy simple. No es más que una createprocedureRyroyalty adicional, y un parámetro de entrada es @porcentaje:
CreateProcedureBeyroyalty@porcentaje
COMO
selectau_idfromTitleAuthor
wheretitleauthor.royaltypeper=@percentage
servirbywww.cidu.net
Ejemplo wuf71.asp
%@Idioma = vBscript%>
!-#includefile = "adosql7.asp"->
!-#includeFile = "Adovbs.inc"->
%'' wuf71.asp
Dimcmdtest, prmtest, rstest
Setcmdtest = server.createObject ("ADODB.COMMAND")
cmdtest.commandText = "byroyalty" '' Nombre del procedimiento almacenado
'' Suponga que el tipo de comando es un procedimiento almacenado
cmdtest.commandtype = adcmdstoredproc
'' Crear objeto de parámetro
Setprmtest = server.createObject ("ADODB.PARAMETER")
'El atributo de tipo corresponde al segundo parámetro en WUF70.asp
prmtest.type = adintager''4-byte entero firmado
'La propiedad de la dirección corresponde al tercer parámetro en WUF70.asp
prmtest.direction = adparamInput
'El atributo de valor corresponde al quinto parámetro en wuf70.asp
prmtest.value = 30
cmdtest.parameters.appendprmtest
Setcmdtest.activeconnection = cnn
'Debe devolver un conjunto de registros, así que use setRstest = cmdtest.execute
Setrstest = cmdtest.execute
Mientras que
Response.WriterStest (0) y ""
rstest.movenext
Encaminarse a
CNN.CLOSE
SetRstest = nada: setprmtest = nada
Setcmdtest = nada: setcnn = nada
%>
La propiedad CommandText puede especificar comandos SQL, o como procedimientos almacenados o nombres de tabla.
En este ejemplo, crear un objeto de parámetro es ligeramente diferente de WUF70.asp. De hecho, si miras de cerca, el significado es similar. Hay dos propiedades que no se usan en este ejemplo: prmtest.name, prmtest.size, más tipo, dirección y valor, que corresponden a los cinco parámetros en wuf70.asp.
(Ii) Use los parámetros de salida
Al obtener un registro de una tabla de base de datos o calcular un valor, es necesario utilizar un procedimiento almacenado que devuelva los parámetros de salida. Para dar un ejemplo, primero cree un nuevo empleado de procedimiento almacenado en la biblioteca SQLServer Pubs. El procedimiento almacenado debe ingresar dos fechas y luego generar un valor máximo.
CreateProCedureOutEmploy
(
@JOB_LVLTinyInToutput,
@hire_date1dateTime,
@hire_date2dateTime
)
COMO
Seleccione@Job_lvl = Max (Job_lvl) FromImployee
whereHire_date> =@hire_date1andhire_date =@hire_date2
Hay varias formas de crear procedimientos almacenados:
1. Use el EnterprisManager de Microsoft SQLServer, ábralo en el directorio de árboles a la izquierda y ábralo a su vez: Consoleroot - MicrosoftSqlServers - SQLServerGroup - ICBCZJP (Windowsnt) –Databases - Pubs - Procedido: Procedimiento -NEWSUNTRADO PROPODURE. Después de ingresar al procedimiento almacenado, también se puede detectar sintaxiamente;
2. Utilice la Queryanalyzer de Microsoft SQLServer, primero conéctese al servidor de la base de datos y seleccione la base de datos de Pubs. Ingrese el procedimiento almacenado arriba y haga clic en ExecuteQuery (o presione F5);
3. Uso de VB6.0, después de abrir el menú "Ver"/"Ventana de vista de datos", haga clic con el botón derecho "Enlace de datos"/"nuevo enlace de datos";
4. Use el script ASP para crear procedimientos almacenados, como WUF75.asp:
%@Idioma = vBscript%>
!-#includefile = "adosql7.asp"->
!-#includeFile = "Adovbs.inc"->
%'' wuf75.asp
Dimstrsql
'' Nota: & Chr (10) y Chr (13) se pueden ignorar, principalmente por el buen aspecto
Strsql = "CreateProCedureOutEmple (@Job_LVltinyInToutput," & chr (10) & chr (13) & _
"@hire_date1dateTime,@hire_date2dateTime) como" & chr (10) & chr (13) & _
"Seleccione@Job_lvl = Max (Job_lvl) FromImloyee" & _
"WhereHire_Date> =@hire_date1andhire_date =@hire_date2"
Cnn.executestrsql
Respuesta.WRITE "Crear procedimiento almacenado con éxito"
Cnn.close: setcnn = nada
%>
Una vez creado el procedimiento almacenado, además de usar el menú, también puede eliminarlo utilizando la instrucción SQL "DropprocedureOutEmploy".
Ejemplo WUF72.ASP: envíe los parámetros de entrada requeridos al procedimiento almacenado y obtenga el resultado de salida.
%@Idioma = vBscript%>
!-#includefile = "adosql7.asp"->
!-#includeFile = "Adovbs.inc"->
%'' wuf72.asp
Dimcmdtest, prmtest
Setcmdtest = server.createObject ("ADODB.COMMAND")
cmdtest.activeconnection = cnn
cmdtest.commandText = "OutEmploy" '' Nombre del procedimiento almacenado
cmdtest.commandtype = adcmdstoredproc
'' Crear objeto de parámetro
SetPrmtest = cmdtest.createParameter ("Job_lvl", AdTinyInt, AdParamoutput)
cmdtest.parameters.appendprmtest
'' Adtinyint-1 byte entero firmado
'' AddBdate-Date Value (yyyymmdd)
SetPrmtest = cmdtest.createParameter ("contratedate1", addbdate, adparaminput ,, "1993-05-09")
cmdtest.parameters.appendprmtest
Setprmtest = cmdtest.createparameter ("contratedate2", addbdate, adparaminput, "1994-02-01")
cmdtest.parameters.appendprmtest
cmdtest.ExCute
'Las siguientes tres expresiones significan lo mismo
Response.WritecMdtest ("Job_lvl") y ""
Respuesta.WritecMdtest.Parameters ("Job_lvl") y ""
Response.WritecMdtest.Parameters ("Job_lvl"). Valor
CNN.CLOSE
SetPrmtest = nada
Setcmdtest = nada: setcnn = nada
%>
(Iii) Use parámetros del código de retorno
Use la declaración de retorno para devolver diferentes códigos de retorno de los procedimientos almacenados. Por ejemplo, el procedimiento almacenado primero obtiene un conjunto de registros, y luego, si hay un empleado llamado Margaret, devolverá 1, de lo contrario regresará 0.
CreateProcedureTurnEmpleMen
COMO
selectEMP_ID, fnameFrommloyee
IfExists (selectFnameFromImpeLeeeWhereFname = '' Margaret '')
Regreso (1)
Demás
Return (0)
Ejemplo wuf73.asp
%@Idioma = vBscript%>
!-#includefile = "adosql7.asp"->
!-#includeFile = "Adovbs.inc"->
%'' wuf73.asp
Dimcmdtest, prmtest, rstest
Setcmdtest = server.createObject ("ADODB.COMMAND")
cmdtest.activeconnection = cnn
cmdtest.commandText = "returnEmple" '' Nombre del procedimiento almacenado
cmdtest.commandtype = adcmdstoredproc
SetPrmtest = cmdtest.createParameter ("returnValue", adinteger, adparamreturnValue)
cmdtest.parameters.appendprmtest
SetRstest = cmdtest.execute ()
Mientras que
Response.WriterStest (0) y "] [" & rstest (1) & ""
rstest.movenext
Encaminarse a
rstest.close: setrstest = nada
'' Antes de devolver cmdtest ("returnValue"), RSTEST debe cerrarse primero, de lo contrario, el resultado será incorrecto
Ifcmdtest ("returnValue") = 1
Respuesta.write "tiene este empleado"
Demás
Respuesta. Escribe "No empleado"
Endif
CNN.CLOSE
SetPrmtest = nada
Setcmdtest = nada: setcnn = nada
%>
3. Cómo lidiar con Big Data
El "big data" aquí se refiere principalmente a los campos de texto (texto grande) e imagen (imagen). Los datos no se pueden obtener correctamente utilizando los métodos descritos anteriormente. Primero debe usar size = rstest (0) .ActualSize para obtener la longitud real del valor de campo y luego usar rstest (0) .getChunk (tamaño) para obtener los datos. En uso real, dado que estos campos son relativamente grandes, para guardar y usar los recursos del servidor razonablemente, la lectura segmentada generalmente se adopta. Ejemplo wuf74.asp:
%@Idioma = vBscript%>
!-#includefile = "adosql7.asp"->
!-#includeFile = "Adovbs.inc"->
%'' wuf74.asp
DIMSTRSQL, más alto
'PR_INFO es un campo de texto
Strsql = "selectpr_info, PUB_IDFROMPUB_INFO"
SetRstest = cnn.execute (strsql)
Dimbasicizize, comienza, ltext
Dowhilenotrstest.eof
Response.WriterStest (1) y ""
'1024 bytes por lectura
Basicsize = 1024
Beginsize = 0
WhileBeginsizerStest (0) .ActualSize
Ltext = rstest (0) .getChunk (Basicsize)
Beginsize = beginsize+básico
'Segmento de salida por segmento al cliente
Respuesta.writelText
Encaminarse a
Respuesta. Escribe ""
rstest.movenext
Bucle
CNN.CLOSE
Setrstest = nada: setcnn = nada
%>
En este ejemplo, se leen un máximo de 1024 bytes cada vez y los leen varias veces. Por el contrario, si escribe Big Data en la base de datos, el método es similar al anterior, pero en lugar de usar el método GetChunk, utiliza el método AppendChunk:
rstest (0) .AppendChunklText
Nota: Finalmente, presentaré un pequeño consejo sobre la base de datos SQLServer. Si ha encontrado esta situación: los datos chinos en la base de datos se muestran en código confuso, no se asuste. Solo necesita ir a mi sitio para descargar sqlsrv32.dll sobrescribe el archivo con el mismo nombre en "C:/Windows/System". La fuente del problema es el controlador SQLServer, que generalmente está ocurriendo en Windows 98 versión 2 (el número de versión del controlador SQLServer es 3.70.06.23) o Windows 2000 o MDAC2.5 está instalado (el número de versión es 3.70.08.20).
Lo anterior es un tutorial sobre el uso de ASP Storage. Creo que lo has aprendido todo. Para obtener más contenido relacionado, continúe siguiendo el canal de tecnología Wonew.