Utilisation de procédures stockées pour implémenter l'accès à la base de données ASP
Auteur:Eve Cole
Date de mise à jour:2009-06-24 17:21:43
1. Présentation d'ADO
ActiveX Data Objects (ADO) est une technologie facile à utiliser et évolutive pour ajouter un accès à une base de données à vos pages Web. Vous pouvez utiliser ADO pour écrire des scripts concis et évolutifs pour vous connecter à des sources de données compatibles OLE DB, telles que des bases de données et des feuilles de calcul. , des fichiers de données séquentielles ou des répertoires de messagerie. OLE DB est une interface de programmation au niveau du système qui fournit un ensemble d'interfaces COM standard pour afficher les fonctions du système de gestion de base de données. Grâce au modèle objet d'ADO, vous pouvez facilement accéder à ces interfaces (à l'aide d'un langage de script tel que VBScript ou JScript) et ajouter des fonctionnalités de base de données à votre application Web. De plus, vous pouvez utiliser ADO pour accéder aux bases de données compatibles Open Database Connectivity (ODBC).
Si vous êtes un scénariste possédant une certaine connaissance des interconnexions de bases de données, vous constaterez que la syntaxe des commandes d'ADO est simple et facile à utiliser. Si vous êtes un développeur expérimenté, vous apprécierez l’accès évolutif et hautes performances qu’offre ADO à une variété de sources de données.
2. Méthodes générales d'accès à la base de données. L'accès à la base de données en accès général aux pages Web s'effectue selon les étapes suivantes, créez d'abord un objet de l'interface ADODB.Connection, puis liez la source de données correspondante à cet objet (vous). peut utiliser la source de données nommée et la source de données sans nom), créer ou non un jeu d'enregistrements selon les besoins, puis créer un lien vers la source de données et utiliser la méthode d'exécution ou d'ouverture pour faire fonctionner la table correspondante.
La méthode générale d'accès d'ASP à la base de données :
<
Définir oConn=Server.CreateObject("ADODB.Connection")
Définir oRS=Server.CreateObject("ADODB.RecordSet")
set strConn="Provider=SQLOLEDB;ID utilisateur=sa; Catalogue initial=Pubs;Source de données=" &request.ServerVariables("SERVER_NAME")
oConn.open strConn
set ORS=oConn.execute("select * from test")
>
Ce qui précède explique comment utiliser OLEDB pour les liens sans nom. S'il s'agit d'un lien nommé, définissez-le comme test de source de données et le nom d'utilisateur et le mot de passe sont tous deux vides. Il vous suffit de réécrire l'instruction ci-dessus oConn.open "test". ,"",""
Ce qui précède présente brièvement les méthodes générales d'accès aux bases de données dans les pages Web. Celles-ci sont déjà très matures et très utiles. Si l'accès à certaines données est trop compliqué en pratique, il faudra près de 10 instructions SQL pour écrire cette méthode. Cela fait un peu défaut. De plus, il est parfois nécessaire d'utiliser le même processus de traitement dans différentes pages Web, et c'est le plus avantageux d'utiliser des procédures stockées. Une autre caractéristique importante est que les procédures stockées sont très techniques et la confidentialité est relativement élevée. et il est stocké dans la base de données du serveur distant.
3. L'utilisation de procédures stockées dans ASP ADO permet d'accéder aux procédures stockées, ce qui nécessite l'utilisation de l'objet de commande. Sur cet objet, les utilisateurs peuvent exécuter directement les procédures stockées du serveur SQL, et les paramètres requis dans la commande peuvent être. Il est traité en utilisant ses propriétés Pamaters.
Notez que pour qu'un objet Command soit valide, il doit être associé à un objet Connection en définissant la propriété ActiveConnection de l'objet Command sur l'objet Connection. Si un objet Connection ne peut pas être identifié, l’objet Command n’est pas valide jusqu’à ce que vous l’associiez à une connexion.
< Faible oConn
Dim strConn
Faible oCmd
Dim ouRs,ors1
faible aa
dimsql
Définir oConn = Server.CreateObject("ADODB.Connection")
set oCmd = Server.CreateObject("ADODB.Command")
set ors1=Serveur.CreateObject("ADODB.RecordSet")
'Ouvrez le lien, utilisez l'ID utilisateur SA, le mot de passe est vide, connectez-vous à la base de données sur le serveur local
strConn="Provider=SQLOLEDB;ID utilisateur=sa;Catalogue initial=pubs;Source de données="& Request.ServerVariables("SERVER_NAME")
'Si vous vous connectez à une base de données distante, l'adresse de la base de données est : 10.82.88.105, l'utilisateur est tmp et le mot de passe est 123.
'La méthode suivante peut être utilisée' strConn="Provider=SQLOLEDB;User ID=tmp;pwd=123;Initial Catalog=tjbb;Data Source="& "10.82.88.110"
oConn.Open strConn
'Ajouter le lien établi à l'attribut de lien actif de la commande
Définir oCmd.ActiveConnection = oConn
'Définissez la procédure stockée appelante par redevance et paramètres, les paramètres sont par ? introduire
oCmd.CommandText = "{appeler par royauté(?)}"
oCmd.Parameters.Append oCmd.CreateParameter("@Percentage", adInteger, adParamInput)
' Fournir les paramètres d'entrée
oCmd("@Pourcentage") = 75
'L'utilisation des paramètres d'entrée ci-dessus dans asp peut également être réalisée sans attributs de paramètre, utilisez simplement & en VB pour former les données correspondantes dans le texte de la commande' L'utilisation de paramètres est particulièrement utile lors de la sortie
Définir oRs = oCmd.Execute
ors1.activeconnection=oconn
« Les instructions SQL générales peuvent également être utilisées dans cet objet de commande en utilisant les attributs Source et open, où source indique la source de données.
ors1.source ="select * from [tmptable] où année=2000 et mois=1"
ors1.cursorttype=adopenstatic
ors1.open
>
4. Introduction aux procédures stockées en SQL Grâce au langage SQL, vous pouvez écrire des procédures stockées pour accéder à la base de données. La syntaxe est la suivante :
CREATE PROC[EDURE] nom_procédure [;numéro]
[
{@parameter data_type} [VARYING] [= par défaut] [OUTPUT]
]
[,...n]
[AVEC
{
RECOMPILE
CHIFFREMENT
RECOMPILE, CHIFFREMENT
}
]
[POUR LA RÉPLICATION]
COMME
instruction_sql [...n]
Le contenu entre [ ] est facultatif, tandis que le contenu entre () est obligatoire.
Exemple : Si l'utilisateur souhaite créer une procédure stockée Select_delete pour supprimer des enregistrements dans la table tmp, elle peut s'écrire :
Créer Proc select_del As
Supprimer tmp
Exemple : L'utilisateur souhaite interroger la procédure stockée pour les données d'une certaine année dans la table tmp
créer proc select_query @year int comme
sélectionnez * depuis tmp où année = @ année
Ici, @year est un exemple de paramètre de procédure stockée : cette procédure stockée démarre à partir d'un certain nœud n pour trouver le nœud parent de niveau supérieur. Ce processus fréquemment utilisé peut être effectué par une procédure stockée et peut être réutilisé dans des pages Web pour y parvenir. partage. .
Vide : indique que le nœud est un nœud de niveau supérieur
fjdid (numéro de nœud parent)
Le nœud n n'est pas vide : indique le numéro de nœud parent du nœud
dwmc (nom de l'unité)
CREATE proc search_dwmc @dwidold int, @dwmcresult varchar(100) sortie
comme
déclarer @stop int
déclarer @result varchar(80)
déclarer @dwmc varchar(80)
déclarer @dwid int
ne définir aucun compte sur
définir @stop=1
définir @dwmc=""
sélectionnez @dwmc=dwmc,@dwid=convert(int,fjdid) depuis jtdw où id=@dwidold
définir @result=rtrim (@dwmc)
si @dwid=0
définir @stop=0
tandis que (@stop=1) et (@dwid<>0)
commencer
définir @dwidold=@dwid
sélectionnez @dwmc=dwmc,@dwid=convert(int,fjdid) depuis jtdw où id=@dwidold
si @@rowcount=0
définir @dwmc=""
autre
définir @result=@dwmc+@result
si (@dwid=0) ou (@@rowcount=0)
définir @stop=0
autre
continuer
fin
set @dwmcresult=rtrim (@result)
L'utilisation complète et raisonnable des procédures stockées peut améliorer le débit du serveur. L'auteur utilise des procédures stockées pour obtenir des données de près de 20 tables et les combiner en une table générale, générant près de 20 000 enregistrements, et le temps requis est d'environ 7 secondes. l'opération peut améliorer le développement du serveur à un niveau supérieur à l'aide de pages Web dynamiques plus raisonnables, en utilisant pleinement les procédures stockées, ce qui peut réduire le traitement lourd causé par la conception Web, de sorte que le code écrit puisse être partagé et utilisé raisonnablement, et le code peut être caché dans la base de données du serveur, certaines technologies restent confidentielles. C'est également une fonctionnalité majeure des procédures stockées. J'espère que les lecteurs pourront en bénéficier.