Recommandé: ASP 3.0 Programmation avancée (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
Aperçu
Les 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 des applications ASP de sauvegarde et de vérification de la base de données.
prémisse
Vous devez avoir les connaissances sur la sauvegarde de la base de données SQL Server. De plus, vous devez ajouter une référence à la bibliothèque SQL-DMO au fichier global.asa. Ce qui suit est une référence à SQL Server 2000:
| Ce qui suit est le contenu cité: <! - Type de métadonnées = Nom de Typelib = Microsoft Bibliothèque d'objets SQLDMO UUID = {10010001-E260-11CF-AE68-00AA004A34D5} Version = 8.0 -> |
L'exemple de code de cet article est applicable à SQL 7.0, MSDE et SQL Server 2000.
Joie et chagrin
L'utilisation d'objets SQL-DMO rend les gens heureux et tristes. Il offre des fonctionnalités si riches qu'il ne sait pas comment l'utiliser. Cet article ne traite que des propriétés et des méthodes d'objet impliqués dans les exemples. Vous pouvez trouver de nombreuses informations pertinentes sur l'enseignement en ligne SQL Server.
Sqldmo.sqlserver
Utilisé pour se connecter à la base de données SQL Server:
| Ce qui suit est le contenu cité: <% Srv dim SET SRV = Server.CreateObject (SQLDMO.SQLSERVER) srv.logintimeout = 15 srv.connect servername, nom d'utilisateur, mot de passe %> |
Ici, la base de données SQL Server est connectée en substituant le nom d'utilisateur et le mot de passe. Si vous souhaitez utiliser l'authentification de l'identité de NT, définissez sa propriété de connexion sur true (true), ignorez le nom d'utilisateur et le mot de passe substitués et utilisez les informations d'enregistrement de NT.
Sqldmo.database
Répertorie les bases de données du serveur. Dans cet exemple, la base de données répertoriée est sauvegardée. Le code suivant répertorie la base de données du serveur dans le menu déroulant:
| Ce qui suit est le contenu cité: <% Srv dim DIM OBJDB SET SRV = Server.CreateObject (SQLDMO.SQLSERVER) srv.logintimeout = 15 srv.connect servername, nom d'utilisateur, mot de passe Définir objdb = server.createObject (sqldmo.database) %> <Select name = fdatabase> <% Pour chaque objdb dans SRV.Databases Si objdb.SystemObject = false alors %> <poption> <% = objdb.name%> </ option> <% Terminer si Suivant %> </lect> |
Sqldmo.backupdevice
Répertorie les périphériques de sauvegarde installés sur le serveur. Je recommande d'utiliser un périphérique de sauvegarde pour sauvegarder la base de données. Parce que de cette façon, vous pouvez utiliser la fonction de vérification de SQL-DMO pour vérifier la situation de sauvegarde. Le code suivant répertorie les périphériques de sauvegarde sur le serveur:
| Ce qui suit est le contenu cité: <% Srv dim Objdevice faible SET SRV = Server.CreateObject (SQLDMO.SQLSERVER) srv.logintimeout = 15 srv.connect servername, nom d'utilisateur, mot de passe Définir objdevice = server.createObject (sqldmo.backupdevice) Pour chaque objdevice dans srv.backupdevices Réponse.write objdevice.name <br> Suivant %> |
Sqldmo.backup
C'est ce que nous voulons utiliser pour sauvegarder les objets Core. Il a de nombreuses propriétés qui nous permettent de faire des sauvegardes au même niveau que l'Enterprise SQL Manager. Discutons d'abord des propriétés utilisées dans cet exemple.
BackupSetName - Nom du fichier de sauvegarde.
Base de données - La base de données à sauvegarder.
Action - Tous ou sauvegardes incrémentielles. Il existe d'autres options, mais seules ces deux sont utilisées dans l'exemple.
BackupSetDescription - Description de sauvegarde.
Fichiers - Options de sauvegarde de fichiers. Indique le chemin et le nom du fichier de sauvegarde, tels que: c: /pubs.bak. Lorsque vous utilisez la sauvegarde du fichier, le nom du périphérique de sauvegarde suivant doit être défini sur vide.
Dispositifs - périphérique de sauvegarde sur le serveur. Si vous utilisez un périphérique de sauvegarde, l'option de sauvegarde du fichier ci-dessus doit être définie sur vide.
Truncatelog - Option de journal de sauvegarde. Les options sont:
NOLOG - Pas de sauvegarde du journal des transactions.
Notruncate - Journaux de transaction de sauvegarde. Des marques de temps sont fournies dans le journal.
Truncate - Journaux de transaction de sauvegarde, mais ne conservez pas les enregistrements de transaction.
Initialiser - Si vous êtes défini sur True, le périphérique de sauvegarde remplacera les autres supports de sauvegarde et deviendra le premier choix.
Voici le fichier backup.asp dans l'exemple:
| Ce qui suit est le contenu cité: <% @ Language = vbscript%> <html> <body> <! - Contient toutes les informations de connexion -> <! - # Inclure file = login.asp -> <% Faible objbackup 'Créer un objet de sauvegarde Définir objBackup = server.createObject (sqldmo.backup) 'Définir les propriétés objBackup.backupSetName = request (fname) objBackup.database = request (fdatabase) objBackup.action = demande (faction) objBackup.backupSetDescription = request (fdeScription) objBackup.files = request (fbackupfile) objBackup.devices = request (fdevice) objBackup.truncatelog = request (Flog) objBackup.Initialize = request (finit) 'Base de données de sauvegarde objBackup.sqlbackup srv «Débranchez-vous du serveur srv.disconnect 'libérer définir srv = rien définir objBackup = rien %> <p> La sauvegarde a été démarrée, utilisez le <a href = disposices.asp> Vérifier </a> Option pour voir s'il s'est terminé avec succès. <A href = default.asp> Cliquez ici </a> pour revenir. </p> </docy> </html> |
Vérification de la sauvegarde
Si vous programmation en VB ou C, vous pouvez utiliser des déclencheurs d'événements pour vérifier le processus de sauvegarde, mais pas dans ASP. Nous utilisons la méthode ReadBackupHeader de l'objet SQLDMO.BackupDevice pour confirmer si la sauvegarde est réussie.
Vous trouverez ci-dessous le code de fichier Verification.asp, qui répertorie le nom du périphérique de sauvegarde et fournit des informations sur la sauvegarde la plus récente.
| Ce qui suit est le contenu cité: <% @ Language = vbscript%> <html> <body> <! - Informations de connexion -> <! - # Inclure file = login.asp -> <p> <% Objdevice faible Objresults sombres Baisser Dim xcount 'Créer un objet de périphérique de sauvegarde Définir objdevice = server.createObject (sqldmo.backupdevice) 'Boucle jusqu'à ce qu'un dispositif de correspondance soit trouvé Pour chaque objdevice dans srv.backupdevices Si objdevice.name = request (fname) alors 'Trouvez le périphérique correspondant et commencez à lire le résultat Définir objresults = objdevice.readbackupheader Pour iCount = 1 à objresults.Rows Pour xcount = 1 à objresults.columns%> <b> <% = objresults.columnname (xcount)%> </b>: <% = objresults.getColumnString (icon, xcount)%> <br> <% Next%> <hr> <% Next%> <% Fin si%> <% Next%> <% srv.disconnect définir srv = rien définir objdevice = rien définir objresults = rien %> </docy> </html> |
La méthode ReadBackupHeader renvoie l'objet QueryResults. Utilisez son attribut de lignes pour obtenir le numéro d'enregistrement de sauvegarde. Recherchez ensuite les informations de colonne pour chaque ligne d'enregistrements.
Autres caractéristiques
SQL-DMO fournit également des capacités de sauvegarde et de récupération distantes. Cet article n'implique pas de récupération de la base de données, mais SQL-DMO a de fortes fonctions de récupération.
Partage: niveau d'entrée de développement de base: comparaison entre JSP et ASP Depuis que Microsoft a lancé ASP (ActiveServerPage), il a été aimé par les développeurs Web pour ses fonctions puissantes et sa simplicité et facile à apprendre. Cependant, il a des problèmes communs avec les produits Microsoft et ne peut être utilisé que sur les plates-formes Windows, bien qu'elle puisse être utilisée dans Linux en ajoutant des contrôles