ASP (Active Server Pages) は、インターネット アプリケーションを開発するために Microsoft が提案したツールの 1 つであり、2000 年 3 月 20 日に「Computer World」で紹介されたように、ASP とデータベース間の接続は通常 ADO (Active Data Object) を通じて実現されます。 「ASP を使用した SQL Server データベースの操作」の記事で説明したように、ADO は Microsoft SQL Server を完全にサポートしますが、より広く使用されており、より複雑なメカニズムを備えた ORACLE データベース サービスでは、単純なクエリ関数を作成する場合にいくつかの困難があります。 , STORED PROCEDURE、STORED FUNCTION などの ORACLE データベースの独自の機能をさらに活用したい場合は、ASP---Oracle Object for OLE を使用して ORACLE データベース サービスにアクセスする別の強力なツールを使用する必要があります。 ORACLE オブジェクト サーバー (Oracle オブジェクト サーバー)。この記事では、ASP の ORACLE オブジェクト サーバーが提供するコントロールを使用して ORACLE データベースにアクセスする方法を例に基づいて説明し、ネットワーク データベースの整合性制約を維持する方法について説明します。
----Oracle Object for OLE は、データベースへのクライアント アクセスのために ORACLE が開発した待望の製品で、Windows 95/98/NT をベースにしており、すべての OLE 互換アプリケーションおよびプログラミング言語でアクセスできます。 ASP、Visual Basic extra97 など、Oracle Object for OLE には、ORACLE Object Server (Oracle Object Server)、ORCLE Data Control (Oracle Data Control)、および ORACLE Object Class Library (Oracle Objects for OLE C++ Class Library) が含まれます。他3製品。
---- ADO と比較して、ORACLE オブジェクト サーバーは ORACLE データベース アプリケーションの開発専用の製品であり、次の利点があります。
---- (1) データベースサーバーとの接続が効率的に動作します。 ADO は ODBC を介してデータベース サーバーに接続し、ORACLE オブジェクト サーバーは ORACLE の SQL*NET を介してデータベース サーバーに接続するためです。
---- (2) ORACLEデータベースの独自機能をより活用できる。 STORED PROCEDURE、STORED FUNCTION、PACKAGE、または複数のカーソルなど。
---- この例は、アドレス帳のクエリと入力を行うための小さなプログラムです。ユーザーはブラウザを通じてアドレス帳テーブルにクエリを実行したり、他のユーザーがクエリできるように自分の情報を入力したりできます。
----アドレス帳テーブルの構造は次のとおりです。
名前は空白ですか?
------------------------ -------- ----
名前が NULL ではない CHAR(8)
アドレス文字(20)
フォンチャー(20)
電子メール VARCHAR2(30)
---- まず、環境を構成します。
----以下のソフトウェアをWEBサーバーにインストールし、設定します。
---- (1)基本WEBサーバー(WEB SERVER)とASP等のソフトウェア
---- (2)Oracle Object for OLE2.x
---- (3) SQL*Net Client または Oracle Net8 Client 8. インストール後、Sql*Net Easy Configuration を使用してデータベース エイリアス (データベース エイリアス) を作成します。これは、ASP がデータベースに接続するために使用するエイリアスです。
- - 二。機能実現
---- (1) クエリ: ASP を使用してデータベースのアドレス帳テーブル (TSB1) からデータを取得し、画面にデータを表示します。クエリの鍵は、データベースへの接続が成功したかどうかを判断することです。ORACLE オブジェクト サーバー自体には、データベース接続エラーを報告できるエラー制御メカニズムが備わっています。その具体的な手順は次のとおりです。
<HTML>
<tile>クエリ プログラム</title>
<本体>
<%
エラー時は次から再開
'データベースに接続します
set orasession=createobject
(「OracleInprocServer.XOraSession」)
oradatabase=orasession を設定します。
dbopendatabase("axp03","スコット/タイガー",0)
'エラー処理
err.number >0 の場合
response.write「< h4 >ASP エラー制御< /h4 >」
response.write"asp エラー ソース:"&err.source &"< br >"
response.write"ASP エラー コード:"&err.number&"< br >"
response.write"ASP エラーの説明:"&err.description&"< br >"
エラークリア
response.write"< h4 >ORACLE OLE エラー制御< /h4 >"
response.write"ORACLE エラー コード:
"&OraSession.LastServerErr&"< br >"
response.write"ORACLE エラーの説明:
"&OraSession.LastServerErrText&"< br >"
それ以外
'クエリ
sql="tsb1 から * を選択"
set oradynaset=oradatabase.dbcreatedynaset(sql,0)
response.write「< h3 >結果< /h3 >」
response.write"< table border=5 >< tr >"
i=0 から oradynaset.fields.count-1 の場合
応答.write"<td>"
response.write oradynaset.fields(i).name & " "
応答.write"< /td >"
次
応答.write"< /tr >"
oradynaset.eof まで実行します
応答.write"<tr>"
i=0 から oradynaset.fields.count-1 の場合
応答.write"<td>"
response.write oradynaset.fields(i).value
応答.write"< /td >"
次
応答.write"< /tr >"
oradynaset.dbmovenext
ループ
応答.write"< /table >"
'データベースを閉じます
oradatabase.close
orasession=nothing を設定します
終了する場合
%>
< /body >
< /html >
----以下はプログラムのクエリ結果の画像です。
アドレス帳
名前 住所 電話番号 メールアドレス
馬鞍山市湖北路張陵5号 0555-2887765 [email protected]
林祥 馬鞍山市湖南路9号 0555-2223856 [email protected]
No. 504, Building 4, Deng Guohong Mining Road 0555-2474748 [email protected]
青島海洋大学7号館507号室、麗城市 0464-32456678 [email protected]
No. 807、Building 7、Wang Guozai Mining Community 0555-3445454 [email protected]
定港市虹旗南路17号ビル405号 0555-2883721 [email protected]
宝江西路7号ビル607号 0554-4566777 [email protected]
---- (2) 独自の情報を挿入する: ASP を使用して、ブラウザ上でユーザーが提供したデータをデータベースのアドレス帳テーブル (TSB1) に挿入します。ORACLE データベースには一連の整合性制約メカニズムがあるため、挿入プロセスは実行されます。単純なだけではありません。テーブルにデータを効率的に挿入し、整合性制約をチェックします。プログラム内で処理が考慮されていない場合、プログラムはエラーで中断されます。実行時にデータベース サーバーによって報告されます。 ASP の ERR オブジェクトは、エラーの原因、エラー コード、エラーの説明などを報告し、プログラムをエラー処理に導くことができます。
---- 以下はプログラムです。1 つはユーザーが独自の情報を入力するための入力インターフェイスである insert.htm で、もう 1 つはユーザー入力情報をデータベースに挿入し、エラーを実行する役割を担う insert.asp です。チェック中。
挿入.html:
<html>
<頭>
< メタ http-equiv="コンテンツ言語"
content="zh-cn" >
< メタ http-equiv="コンテンツ タイプ"
content="text/html; charset=gb2312" >
< メタ名 = "GENERATOR" コンテンツ =
「Microsoft FrontPage 4.0」 >
< メタ名 = "ProgId" コンテンツ =
"FrontPage.Editor.ドキュメント" >
<title>あなたの情報を残してください</title>
</ /頭>
<本文>
< p align="center">情報を入力してください</ /p >
< フォームメソッド="ポスト" アクション="挿入.asp" >
名前:
< input type="text" name="name" size="8" > < br >
住所:
< input type="text" name="アドレス" size="20" > < br >
電話:
< input type="text" name="phone" size="20" > < br >
電子メール: < input type="text" name="email" size="20" > < br >
< input type="submit" value="OK" >
< input type="reset" value="キャンセル" >< br >
< /form>
< /body >
< /html >
----以下はユーザー入力インターフェイスです:
あなたの情報を入力してください 名前:
住所:
電話:
メールアドレス:
挿入.asp:
<HTML>
<本体>
<%
'データベースに接続します
set orasession=createobject
(「OracleInprocServer.XOraSession」)
oradatabase=orasession を設定します。
dbopendatabase("axp03","スコット/タイガー",0)
'ユーザーが入力した情報を SQL ステートメントに変換します
sql="tsb1 値に挿入
(" &chr(39)&request("名前")&chr(39) &","_
&chr(39)&request("アドレス")&chr(39)&","_
&chr(39) & request("電話")&chr(39) &","_
&chr(39)&request("メール")&chr(39)&")"
' SQL 挿入ステートメントを実行します
oradatabase.dbEXECUTESQL(sql)
'整合性制約違反エラーをチェックします
エラー番号 >0 の場合
response.write「< h4 >ASP エラー制御< /h4 >」
response.write"asp エラー ソース:"&err.source &"< br >"
response.write"ASP エラー コード:"&err.number&"< br >"
response.write"ASP エラーの説明:"&err.description&"< br >"
それ以外
'挿入完了、返却
response.write "挿入が完了しました。< a href=insert.htm > が返されます... < /a >"
終了する場合
%>
< /body >
< /html >
----上記は、ASP ツールを使用して元の ORACLE データベース情報をインターネット アプリケーションに移動したときの私の経験の一部です。この例は非常に単純であり、STORED PROCEDURE、STORED FUNCTION、および PACKAGE も使用した原理を説明することを目的としています。 ASP プログラムの速度が向上し、効率が向上するまでお待ちください。皆さんにインスピレーションを与えることができれば幸いです。お互いにコミュニケーションをとるために書いてください。