Recommandé: Utilisez SQL-DMO pour créer des applications ASP de sauvegarde et de vérification Présentation des objets de gestion distribués SQL (SQL-DMO) fournissent aux développeurs des méthodes pour effectuer des tâches ordinaires à l'aide de langages de programme et de script, étendant ainsi les fonctionnalités de SQL Server. Cet article explique comment utiliser intelligemment SQL-DMO pour créer
1. Déclaration de sélection
Dans le monde SQL, l'opération la plus élémentaire est l'instruction SELECT. Lorsque vous utilisez SQL directement sous l'outil de base de données, de nombreuses personnes connaissent les opérations suivantes:
| Ce qui suit est le contenu cité: Sélectionnez quoi À partir de laquelle Où les critères |
L'exécution de l'instruction ci-dessus créera une requête qui stocke ses résultats.
Sur les fichiers de page ASP, vous pouvez également utiliser la syntaxe générale ci-dessus, mais la situation est légèrement différente. Lors de la programmation ASP, le contenu de l'instruction SELECT doit être attribué à une variable en tant que chaîne:
| Ce qui suit est le contenu cité: SQL = Sélectionnez ce que les critères sont des critères |
D'accord, je comprends comment SQL parle sous ASP, puis le faire de la même manière. Tant que vous répondez à vos besoins, le mode de requête SQL traditionnel et la requête conditionnelle peuvent être utiles.
Par exemple, vous pourriez aussi bien supposer qu'il existe un tableau de données dans votre base de données, à savoir les produits, et maintenant vous souhaitez récupérer tous les enregistrements dans ce tableau. Ensuite, vous avez écrit le code suivant:
| Ce qui suit est le contenu cité: SQL = SELECT * From Products |
La fonction de l'instruction Code-SQL ci-dessus est de récupérer toutes les données du tableau. Après l'exécution, tous les enregistrements du tableau de données seront sélectionnés. Cependant, si vous voulez seulement supprimer une colonne spécifique de la table, comme P_Name. Ensuite, vous ne pouvez pas utiliser le caractère * Wildcard. Vous devez taper le nom d'une colonne spécifique, et le code est le suivant:
| Ce qui suit est le contenu cité: Sql = sélectionner p_name à partir de produits |
Après avoir exécuté la requête ci-dessus, tous les contenus de la table de produits et de la colonne P_name seront sélectionnés.
2. Définissez les conditions de requête pour la clause
Par exemple, si vous prévoyez de retirer les enregistrements P_Name et que les noms de ces enregistrements doivent être démarrés avec la lettre W, vous devez utiliser la clause suivante:
| Ce qui suit est le contenu cité: Sql = sélectionner p_name à partir de produits où p_name comme 'w%' |
Le mot-clé où est suivi des conditions utilisées pour filtrer les données. Avec l'aide de ces conditions, seules les données qui répondent à certaines normes seront interrogées. Dans l'exemple ci-dessus, le résultat de la requête n'obtiendra qu'un enregistrement p_name avec le nom commençant par w.
Dans l'exemple ci-dessus, le pourcentage de symbole (%) signifie que la requête renvoie toutes les entrées d'enregistrement qui commencent par les lettres W et sont suivies de données ou même de données. Par conséquent, lors de l'exécution de la requête ci-dessus, West et Willow seront sélectionnés dans le tableau des produits et stockés dans la requête.
Comme vous pouvez le voir, concevez simplement la déclaration sélectionnée avec soin, vous pouvez limiter la quantité d'informations renvoyées dans le coffre-fort, et penser plus répondra toujours à vos exigences.
Ce ne sont que le début de la maîtrise de l'utilisation de SQL. Pour vous aider à maîtriser progressivement l'utilisation de relevés de sélection complexes, jetons un œil aux termes standard clés: les opérateurs de comparaison. Ces choses sont souvent utilisées lorsque vous créez vos propres chaînes de sélection pour obtenir des données spécifiques.
Où les bases de la clause
Lorsque vous commencez à créer une clause Where, le moyen le plus simple est d'utiliser des symboles de comparaison standard, qui sont <, <=,>,> =, <> et =. De toute évidence, vous comprendrez bientôt la signification et les résultats spécifiques du code suivant:
| Ce qui suit est le contenu cité: Sélectionnez * dans les produits où p_price> = 199,95 Sélectionnez * dans les produits où p_price <> 19.95 Sélectionnez * dans les produits où p_version = '4' |
Remarque: Ici, vous remarquerez que le numéro 4 dans le dernier exemple est entouré de citations uniques. La raison en est que dans cet exemple, 4 est un type de texte plutôt qu'un type numérique.
3. Opérateurs de comparaison: comme, pas comme et entre
L'opérateur de comparaison spécifie la plage de contenu pour laquelle les données sont récupérées du tableau. Vous pouvez les utiliser pour créer des filtres pour réduire la portée de l'encadré, ce qui les a permis d'enregistrer uniquement les informations qui vous tiennent dans une tâche donnée.
Vous avez vu l'utilisation de Like dans l'exemple où vous avez retiré le record de l'en-tête de W ci-dessus. Le déterminant similaire est un symbole très utile. Cependant, dans de nombreux cas, l'utilisation peut vous apporter trop de données, il est donc préférable d'utiliser votre cerveau et de réfléchir davantage aux données que vous souhaitez obtenir avant de les utiliser. Supposons que vous souhaitiez retirer le nombre de SKU de 5 chiffres, et que son début est 1 et que la fin est 5, alors vous pouvez utiliser le trait de soulignement (_) au lieu du% symbole:
Sql = select * from products où p_sku comme '1___5'
Le soulignement représente tout caractère. Ainsi, lorsque vous entrez 1___5, votre recherche sera limitée à la plage à 5 chiffres qui satisfait un mode spécifique.
Si vous voulez faire le contraire, découvrez toutes les entrées SKU qui ne correspondent pas au mode 1___5. Ensuite, il vous suffit d'ajouter non à la même chose dans l'exemple de déclaration tout à l'heure.
ENTRE
Supposons que vous souhaitiez extraire des données dans une certaine plage et que vous connaissez le point de départ et le point final de la plage à l'avance, puis vous pourriez aussi bien utiliser le mot de jugement entre le jugement. Supposons maintenant que vous souhaitez sélectionner des enregistrements avec une plage entre 1 et 10 dans un tableau donné. Vous pouvez utiliser entre As:
… Où ID entre 1 et 10
Ou vous pouvez utiliser des phrases familières de jugement mathématique:
… Où id> = 1 et id> = 10
4. Déclaration conjointe
Les déclarations SQL dont nous avons parlé jusqu'à présent sont relativement simples. S'ils peuvent passer la requête en boucle de record standard, ces instructions peuvent également répondre à des exigences plus complexes. Cependant, pourquoi devez-vous vous en tenir au niveau de base de simplement l'essayer? Vous pouvez ajouter d'autres symboles, tels que et, ou non, pour remplir des fonctions plus puissantes.
L'instruction SQL suivante est un exemple:
| Ce qui suit est le contenu cité: SQL = SELECT C_FIRSTNAME, C_LASTNAME, C_EMAIL des clients où C_EMail n'est pas nul et c_purchase = '1' ou c_purchase = '2' et c_lastname comme 'A%' |
Avec les connaissances SQL que vous avez actuellement, les exemples ci-dessus ne sont pas difficiles à expliquer, mais l'instruction ci-dessus ne vous permet pas clairement de voir comment les phrases conditionnelles sont collées en une seule instruction SQL.
Instructions de ligne multiples
Si les instructions SQL ne sont pas faciles à comprendre, vous pourriez aussi bien décomposer toute l'instruction en plusieurs lignes de code, puis ajouter progressivement les différents composants de l'instruction de requête en fonction des variables existantes et la stocker dans la même variable:
| Ce qui suit est le contenu cité: SQL = SELECT C_FIRSTNAME, C_LASTNAME, C_EMAILADdress, c_phone SQL = SQL et des clients Sql = sql & où c_firstname comme 'a%' et c_emailaddress non nul SQL = SQL & ORDER par c_lastname, c_firstname |
Par la dernière phrase, la variable SQL contient l'instruction SELECT complète suivante:
| Ce qui suit est le contenu cité: Sélectionnez C_FirstName, C_lastName, C_EMAILADdress, c_phone chez les clients où c_firstname comme 'A%' et c_emailaddress pas d'ordre nul par c_lastname, c_firstname |
Après avoir décomposé toute la phrase ci-dessus, il est évidemment plus facile à lire! Lors du débogage, vous pouvez être plus disposé à taper quelques personnages supplémentaires pour changer le programme et le lire mieux. Mais vous devez vous rappeler que vous devez ajouter des espaces avant de fermer les citations ou après avoir ouvert des citations, afin de ne pas assembler quelques mots lorsque la chaîne est connectée.
5. Démarrer l'exécution
Après avoir appris la construction et l'utilisation de relevés sélectionnés, il est temps d'apprendre à les utiliser. Dans le cadre des outils de base de données que vous avez, cela peut signifier que vous devez appuyer sur un bouton avec le mot "exécution". Sur une page Web ASP, les instructions SQL peuvent être exécutées immédiatement ou elles peuvent être appelées procédure stockée.
Une fois l'instruction SQL créée, vous devez également essayer d'accéder à ses résultats de requête. De toute évidence, la clé ici est ASP Recordset. Pour tirer le meilleur parti de vos compétences SQL que vous connaissez davantage, vous devez ajuster les ensembles de registres les plus couramment utilisés sur les pages Web ASP régulières:
| Ce qui suit est le contenu cité: Rs sombre Set rs = server.createObject (adodb.recordSet) Rs.Open SQL, Conn, 1,2 |
Ici, Conn est la déclaration de connexion de la base de données, et la seule modification consiste à utiliser une variable contenant l'instruction SQL pour remplacer le nom de la table de données à interroger.
L'un des avantages de cette approche est que vous pouvez spécifier le type de curseur (comme indiqué dans 1 et 2 ci-dessus).
Exécuter SQL
Vous pouvez également créer des ensembles de dossiers à l'aide d'une ligne de code compacte pour exécuter des instructions SQL. Ce qui suit est la syntaxe:
Rs sombre
SET RS = Conn.Execute (SQL)
Dans l'exemple ci-dessus, le SQL que vous voyez est une variable que vous stockez votre propre instruction SQL Select. Cette ligne de code exécute des instructions SQL (ou interrogez la base de données), sélectionne les données et stocke les données dans RecordSet, dans l'exemple ci-dessus, la variable Rs. Le principal inconvénient de cette approche est que vous ne pouvez pas choisir le type de curseur que vous souhaitez utiliser. Au lieu de cela, RecordSet est toujours ouvert avec un curseur avant.
En raison des curseurs, vous connaissez peut-être deux façons de créer des ensembles de registres. L'exécution de la requête permet directement le temps passé à taper des caractères, mais dans ce cas, vous devez utiliser le curseur par défaut, qui peut souvent ne pas fonctionner normalement. Quelle que soit la méthode que vous utilisez, la plus grande différence entre les deux n'est rien de plus que si le code est affiné ou non. Sans considérer les champs que vous obtenez ni vos normes, et quelle que soit la façon dont vous stockez les données, l'utilisation de records de style SQL sera de taille beaucoup plus petite que le plateau d'enregistrement standard ouvert sur ASP, sans parler de la facilité de fonctionnement. Après tout, en filtrant les données, vous éliminez des tests IF-puis et des boucles possibles.
6. Recherche de magasin
Lorsque votre requête est relativement simple, il ne faut pas beaucoup d'efforts pour créer des instructions SQL à partir de zéro à chaque fois. Cependant, les requêtes complexes sont différentes. Chaque fois que vous partez de zéro, vous générerez de nombreuses erreurs de développement. Donc, une fois que SQL se déroule en douceur, vous feriez mieux de les enregistrer et de les appeler si nécessaire. De cette façon, même une question simple peut être utilisée pour stocker la déclaration de requête à tout moment.
Supposons que vous deviez vous présenter à votre équipe une fois par semaine pour indiquer les problèmes de support commercial actuels, qui doivent être sélectionnés dans votre base de données, et les enregistrements doivent être sélectionnés par date, et triés en fonction de la catégorie des problèmes de support que vous utilisez. Une fois que vous avez conçu cette requête, pourquoi devez-vous la réécrire une fois par semaine plus tard? Ne créez pas de requêtes sur votre page HTML, vous devez créer des requêtes avec vos outils de base de données et les enregistrer. Ensuite, vous pouvez utiliser la propriété ActiveCommand pour insérer la requête dans votre page ASP. Vous pouvez le trouver dénué de sens dans le premier ou les deux, mais en fait, ce n'est que quelques lignes de code:
| Ce qui suit est le contenu cité: Définir objsq = server.createObject (adodb.command) objsq.activeConnection = databasename objsq.commandText = StoreSqueryName objsq.commandType = AdcMdStoredProc Définir objRec = objsq.ExECUTE |
Notez que l'utilisation d'ADCMDStoredProc signifie que vous avez inclus le fichier ADOVBS.inc sur la page. Ce fichier définit les constantes d'accès auxquelles vous pouvez accéder par nom plutôt que par numéro. Incluez simplement le fichier sur la page), puis vous pouvez utiliser ADCMDStoredProc. De cette façon, il sera plus facile de comprendre ce que signifie la requête stockée ci-dessus lorsque vous le voyez à l'avenir.
7. Ordre par
Sélectionnez les choses les plus dégoûtantes dans la base de données d'accès, et elles sont entrées dans la base de données dans l'ordre où elles sont entrées. Même si vous utilisez le tri dans l'environnement d'accès pour modifier la vue d'enregistrement, l'ordre des enregistrements dans le tableau de données n'a pas changé.
Si vous utilisez ASP RecordSet pour écrire des enregistrements sur une page Web, vous savez peut-être à quel point il est douloureux de se mettre dans le gâchis. Mais vous devrez peut-être faire face souvent à ce problème car il n'y a pas de solution simple et pratique. Heureusement, l'ordre par peut simplifier ce problème.
Pour trier vos résultats, ajoutez simplement l'ordre à la fin de l'instruction SELECT et spécifiez la colonne de référence que vous devez trier. Donc, si vous souhaitez trier la table des clients par le nom de famille du client, vous pouvez rédiger la déclaration de requête suivante:
SQL = SELECT C_LASTNAME, C_FIRSTNAME, C_EMAIL FROM CLIENTS COMMANDE BY C_LASTNAME
De cette façon, tant que vous créez un ensemble d'enregistrements et commencez à écrire les résultats à l'écran, vous verrez que les données sont organisées par ordre alphabétique.
Voici les opérations sur la table:
Copiez uniquement la structure du tableau A du tableau B (pas de données de copie)
| Ce qui suit est le contenu cité: SQL = SELECT * en b dans A où 1 <> 1 SQL = SELECT * en b dans A où 1 = 0 |
Copiez la structure et les données du tableau A du tableau B
| Ce qui suit est le contenu cité: SQL = SELECT * en B à partir d'un |
Partager: ASP 3.0 Advanced Programming (45) L'exécution asynchrone fait référence à la récupération des données en arrière-plan, et les données que vous avez obtenues peuvent être utilisées sur la page Web avant que toutes les données ne soient renvoyées. Bien que toutes les données puissent être nécessaires, un travail asynchrone peut commencer à traiter les données au moins à l'avance. Il peut également permettre aux utilisateurs de voir d'abord certains contenus, ce qui fait le site Web