推奨:ASP 3.0高度なプログラミング(45)非同期実行とは、バックグラウンドでデータを取得することを指し、取得したデータをすべてのデータを返す前にWebページで使用できます。すべてのデータが必要になる場合がありますが、非同期作業は少なくとも事前にデータの処理を開始できます。また、ユーザーが最初に特定のコンテンツを表示できるようにすることもできます。これにより、Webサイトが作成されます
概要
SQL分散管理オブジェクト(SQL-DMO)は、プログラムとスクリプティング言語を使用して通常のタスクを実行する方法を開発者に提供し、SQL Serverの機能を拡張します。この記事では、SQL-DMOを巧みに使用してデータベースバックアップと検証ASPアプリケーションを作成する方法について説明します。
前提
SQL Serverデータベースのバックアップに関する知識が必要です。さらに、SQL-DMOライブラリへの参照をGlobal.ASAファイルに追加する必要があります。以下は、SQL Server 2000への参照です。
| 以下は引用されたコンテンツです。 <! - メタデータタイプ= typelib name = microsoft SQLDMOオブジェクトライブラリUUID = {10010001-E260-11CF-AE68-00AA004A34D5}バージョン= 8.0-> |
この記事のサンプルコードは、SQL 7.0、MSDE、およびSQL Server 2000に適用されます。
喜びと悲しみ
SQL-DMOオブジェクトを使用すると、人々は幸せで悲しいことになります。それは非常に豊富な機能を提供するので、それをどのように使用するかは不明です。この記事では、例に含まれるオブジェクトのプロパティと方法についてのみ説明します。 SQL Serverオンライン教育に関する多くの関連情報を見つけることができます。
sqldmo.sqlserver
SQL Serverデータベースに接続するために使用されます。
| 以下は引用されたコンテンツです。 <% Dim SRV srv = server.createobject(sqldmo.sqlserver)を設定します srv.logintimeout = 15 srv.connect servername、username、password %> |
ここでは、SQL Serverデータベースは、ユーザー名とパスワードを置き換えることにより接続されています。 NTのID認証を使用する場合は、LoglseCureプロパティをTrue(True)に設定し、置換されたユーザー名とパスワードを無視し、NTの登録情報を使用します。
sqldmo.database
サーバー内のデータベースをリストします。この例では、リストされているデータベースがバックアップされています。次のコードには、ドロップダウンメニューのサーバーのデータベースがリストされています。
| 以下は引用されたコンテンツです。 <% Dim SRV dim objdb srv = server.createobject(sqldmo.sqlserver)を設定します srv.logintimeout = 15 srv.connect servername、username、password objdb = server.createobject(sqldmo.database)を設定します %> <name = fdatabase>を選択します <% srv.databaseの各objdbについて objdb.systemObject = falseの場合 %> <option> <%= objdb.Name%> </option> <% ifを終了します 次 %> </select> |
sqldmo.backupdevice
サーバーにインストールされているバックアップデバイスをリストします。データベースをバックアップするためにバックアップデバイスを使用することをお勧めします。このようにして、SQL-DMOの検証関数を使用してバックアップの状況を検証できます。次のコードには、サーバー上のバックアップデバイスがリストされています。
| 以下は引用されたコンテンツです。 <% Dim SRV Dim objdevice srv = server.createobject(sqldmo.sqlserver)を設定します srv.logintimeout = 15 srv.connect servername、username、password objdevice = server.createobject(sqldmo.backupdevice)を設定します srv.backupdevicesの各objdeviceについて Response.write objdevice.name <br> 次 %> |
sqldmo.backup
これは、コアオブジェクトをバックアップするために使用したいものです。エンタープライズSQLマネージャーと同じレベルでバックアップを作成できる多くのプロパティがあります。まず、この例で使用されているプロパティについて説明しましょう。
backupsetname-バックアップファイル名。
データベース - バックアップするデータベース。
アクション - すべてまたは増分バックアップ。他にはオプションがありますが、これら2つだけがこの例で使用されています。
BackUpSetDescription-バックアップ説明。
ファイル - ファイルバックアップオプション。 c:/pubs.bakなどのバックアップファイルのパスと名前を示します。ファイルバックアップを使用する場合、次のバックアップデバイス名を空に設定する必要があります。
デバイス - サーバー上のバックアップデバイス。バックアップデバイスを使用している場合、上記のファイルバックアップオプションを空に設定する必要があります。
Truncatelog-バックアップログオプション。オプションは次のとおりです。
Nolog-トランザクションログのバックアップなし。
NotRuncate-バックアップトランザクションログ。ログにタイムマークが提供されます。
Truncate-トランザクションログはバックアップログですが、トランザクションレコードを保持しません。
初期化 - TRUEに設定すると、バックアップデバイスは他のバックアップメディアを置き換え、最初の選択肢になります。
これが例のbackup.aspファイルです。
| 以下は引用されたコンテンツです。 <%@言語= vbscript%> <html> <body> <! - すべてのログイン情報が含まれています - > <! - #include file = login.asp-> <% Dim Objbackup 'バックアップオブジェクトを作成します objbackup = server.createobject(sqldmo.backup)を設定します 'プロパティを設定します objbackup.backupsetname = request(fname) objbackup.database = request(fdatabase) objbackup.action = request(faction) objbackup.backupsetdescription = request(fdescription) objbackup.files = request(fbackupfile) objbackup.devices = request(fdevice) objbackup.truncatelog = request(flog) objbackup.initialize = request(finit) 'バックアップデータベース objbackup.sqlbackup srv 'サーバーから切断します srv.disconnect 'リリース srv =何も設定しません objbackup =何も設定しません %> <p> バックアップが開始され、<a href = devices.asp>検証</a>を使用します 正常に完了したかどうかを確認するオプション。 <a href = default.asp>ここをクリックしてください</a> </p> </body> </html> |
バックアップ検証
VBまたはCでプログラミングしている場合は、イベントトリガーを使用してバックアッププロセスを検証できますが、ASPでは検証できません。 sqldmo.backupdeviceオブジェクトのreadbackupheaderメソッドを使用して、バックアップが成功したかどうかを確認します。
以下は、バックアップデバイスの名前をリストし、最新のバックアップに関する情報を提供するVeridification.aspファイルコードです。
| 以下は引用されたコンテンツです。 <%@言語= vbscript%> <html> <body> <! - ログイン情報 - > <! - #include file = login.asp-> <p> <% Dim objdevice Dim Objresults iCount dim xcount 'バックアップデバイスオブジェクトを作成します objdevice = server.createobject(sqldmo.backupdevice)を設定します '一致するデバイスが見つかるまでループ srv.backupdevicesの各objdeviceについて objdevice.name = request(fname)の場合 '一致するデバイスを見つけて、結果を読み始めます objresults = objdevice.readbackupheaderを設定します icount = 1の場合は、objresults.rows xcount = 1からobjresults.columns%> <b> <%= objresults.columnname(xcount)%> </b>: <%= objresults.getColumnString(Icon、Xcount)%> <br> <%next%> <hr> <%next%> <%end if> <%next%> <% srv.disconnect srv =何も設定しません objdevice = Nothingを設定します objresults =何も設定しません %> </body> </html> |
readbackupheaderメソッドは、queryResultsオブジェクトを返します。その行属性を使用して、バックアップレコード番号を取得します。次に、レコードの各行の列情報を検索します。
その他の機能
SQL-DMOは、リモートバックアップおよび回復機能も提供します。この記事にはデータベースの回復は含まれませんが、SQL-DMOには強力な回復機能があります。
共有:基本開発エントリレベル:JSPとASPの比較MicrosoftがASP(Activeserverpage)を立ち上げて以来、その強力な機能とシンプルさと学習が簡単でWeb開発者に愛されてきました。ただし、Microsoft製品には一般的な問題があり、Windowsプラットフォームでのみ使用できますが、コントロールを追加することでLinuxで使用できます。