Recommandé: Utilisez ASP pour mettre en œuvre le système d'examen en ligne Avec le développement de la technologie Internet, l'enseignement en ligne deviendra la principale forme de rééducation des gens et d'éducation permanente. Dans les écoles en ligne, les gens peuvent choisir n'importe quel cours n'importe où, n'importe où sans être limité par le temps et l'espace. Le développement des écoles en ligne propose le développement des examens en ligne
5. Valeur de retourLe traitement des valeurs de retour des fonctions est différent du traitement des procédures stockées, ce qui entraîne souvent une confusion. Dans les fonctions, une valeur booléenne est souvent renvoyée pour indiquer si la fonction s'exécute avec succès ou non.
Si quelque chose de FonctionName () = true alors
'La fonction a réussi
Cependant, lors de l'appel d'une procédure stockée, la même méthode ne peut pas être utilisée car le stockage est exécuté avec la méthode EXECUTE et renvoie un ensemble d'enregistrements.
Définir rsAuthors = cmdAutors.Execute
Si vous ne pouvez pas obtenir de valeur de retour, comment déterminez-vous si la procédure stockée a été exécutée correctement? Lorsqu'une erreur se produit, une erreur est signalée afin que le code de traitement des erreurs fourni dans le chapitre précédent puisse être utilisé pour gérer l'erreur. Mais que faire avec certaines erreurs logiques non mortelles?
Par exemple, envisagez d'ajouter un nouvel employé à la table des employés. Vous ne voudrez peut-être pas empêcher deux employés d'avoir le même nom, mais vous voulez indiquer cette situation. Ensuite, une valeur de retour peut être utilisée pour indiquer si un commis au même nom existe déjà. La procédure stockée est la suivante:
Créer une procédure USP_ADDEMPLOYEE
@Emp_id char (9),
@Fname varchar (20),
@Minit Char (1),
@Lname varchar (30),
@Job_id smallInt,
@Job_lvl tinyint,
@Pub_id char (4),
@Hire_Date DateTime
COMME
COMMENCER
Declare @Exists Int - valeur de retour
- Voyez si un employé du même nom existe
Si existe (sélectionnez *
De l'employé
Où fname = @fname
Et mini = @Minit
Et lname = @lname)
Sélectionnez @Exists = 1
AUTRE
Sélectionnez @Exists = 0
Insérer dans l'employé (EMP_ID, FNAME, MINIT, LNAME,
Job_id, Job_lvl, Pub_id, Hire_Date)
VALEUR (@EMP_ID, @FNAME, @MINIT, @LNAME, @JOB_ID,
@Job_lvl, @pub_id, @hire_date)
Retourner @existes
FIN
Le processus vérifie d'abord s'il y a des employés avec le même nom et définit la variable correspondante en conséquence. Si le même nom existe, il est défini sur 1, sinon il est 0. Ensuite, ajoutez le personnel au tableau et renvoyez la valeur de la valeur de retour.
Notez que bien qu'une valeur soit renvoyée, elle n'est pas déclarée paramètre à la procédure stockée.
Le code ASP qui appelle cette procédure est le suivant:
<! - #include file = .. / include / connection.asp ->
<%
DIM CMDEMPLOYEE
LNGRECS DIM
Lngadded
Définir cmDemployee = server.createObject (adodb.command)
'Définissez les propriétés de la commande
Avec CMDemployee
.ActiveConnection = StrConn
.CommandText = USP_ADDEMPLOYEE
.CommandType = AdcMdStoredProc
'Créez les paramètres
'Notez que la valeur de retour est le premier paramètre
.Parameters.Apend .CreateParameter (return_value, adointeger, _
adparAmreturnValue)
.Parameters.Apend .CreateParameter (@EMP_ID, Adchar, Adparaminput, 9)
.Parameters.Apend .CreateParameter (@fname, Advarwchar, adparaminput, 20)
.Parameters.Apend .CreateParameter (@Minit, Adchar, adparaminput, 1)
.Parameters.Apend .CreateParameter (@lname, Advarwchar, adparaminput, 30)
.Parameters.Apend .CreateParameter (@Job_id, adsmallint, adparaminput)
.Parameters.Apend .CreateParameter (@Job_lvl, adunsignedtinyint, adparaminput)
.Parameters.Apend .CreateParameter (@pub_id, adchar, adparaminput, 4)
.Parameters.Apend .CreateParAmètre (@hire_date, addbtimestamp, _
adparaminput, 8)
'Définir les valeurs des paramètres
.Parameters (@emp_id) = request.form (txTempid)
.Parameters (@fname) = request.form (txtFirstName)
.Parameters (@Minit) = request.form (txtinitial)
.Parameters (@lname) = request.form (txtLastName)
.Parameters (@job_id) = request.form (lstJobs)
.Parameters (@job_lvl) = request.form (txtjoblevel)
.Parameters (@pub_id) = request.form (lstPublisher)
.Parameters (@hire_date) = request.form (txthiredate)
'Exécutez la procédure stockée
.EXECUTE LNGRECS ,,
'Extraire la valeur de retour
lngadded = .Parameters (return_value)
Se terminer avec
Response.Write nouvel employé ajouté. <p>
Si lngadded = 1 alors
Response.Write Un employé du même nom existe déjà.
Terminer si
Définir cmDemployee = rien
%>
Il convient de noter que la valeur de retour doit être créée comme le premier paramètre de l'ensemble. Même si la valeur de retour n'apparaît pas comme un paramètre dans la procédure stockée, il s'agit toujours des premiers paramètres de la collection de paramètres.
Partager: ASP 3.0 Programmation avancée (trente-six) Chapitre 8 Bases de ADO Dans les 7 premiers chapitres de ce livre, il a déjà parlé du contenu de l'ASP et de la façon dont ASP apporte du contenu dynamique au site Web. Il a été constaté que son programme de script permet des pages Web personnalisées, ce qui nous permet de créer des pages ASP plus puissantes. Maintenant, ASP sera étudié