国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > ASP > 正文

ASP實(shí)現(xiàn)對(duì)ORACLE數(shù)據(jù)庫(kù)的操作

2024-05-04 11:05:39
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

我們?cè)陂_(kāi)發(fā)項(xiàng)目的時(shí)候,可能會(huì)使用多種數(shù)據(jù)進(jìn)行操作,本文是錯(cuò)新技術(shù)頻道小編為大家介紹的ASP實(shí)現(xiàn)對(duì)ORACLE數(shù)據(jù)庫(kù)的操作,希望對(duì)你了解這方面知識(shí)有所幫助。

ASP(Active?Server?Pages)是微軟公司為開(kāi)發(fā)互聯(lián)網(wǎng)應(yīng)用程序所提出的工具之一,ASP與數(shù)據(jù)庫(kù)的聯(lián)接一般通過(guò)ADO(Activex?Data?Object)來(lái)實(shí)現(xiàn)的,就象《計(jì)算機(jī)世界》2000年3月20日的《用ASP對(duì)SQL?Server數(shù)據(jù)庫(kù)操作》文章介紹的一樣,ADO可以完全支持Microsoft?SQL?Server?,但對(duì)應(yīng)用更加廣泛、機(jī)制更加復(fù)雜的ORACLE?數(shù)據(jù)庫(kù)服務(wù)就有一些困難,如果想作一些簡(jiǎn)單的查詢(xún)功能,ADO是足夠的,如要想更好地發(fā)揮ORACLE數(shù)據(jù)庫(kù)特有的功能,如STORED?PROCEDURE,STORED?FUNCTION等就要采取利用ASP存取ORACLE?數(shù)據(jù)庫(kù)服務(wù)的另一個(gè)強(qiáng)有力工具---Oracle?Object?for?OLE中的ORACLE對(duì)象服務(wù)器(The?Oracle?Object?Server)。本文從一個(gè)實(shí)例說(shuō)明如何在ASP中使用ORACLE對(duì)象服務(wù)器提供的控件來(lái)實(shí)現(xiàn)對(duì)ORACLE數(shù)據(jù)庫(kù)的存取,并就如何維護(hù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的完整性約束問(wèn)題進(jìn)行一些討論。?
----?Oracle?Object?for?OLE是ORACLE公司為了客戶(hù)端存取數(shù)據(jù)庫(kù)所發(fā)展的一個(gè)很需要的產(chǎn)品,它以Windows?95/98/NT?為基礎(chǔ)供所有的與OLE?兼容的應(yīng)用程序與程序語(yǔ)言存取ORACLE數(shù)據(jù)庫(kù),如ASP、Visual?Basic?excess97等?,Oracle?Object?for?OLE包含了ORACLE對(duì)象服務(wù)器(The?Oracle?Object?Server)、ORCLE?數(shù)據(jù)控制項(xiàng)(The?Oracle?Data?Control)與ORACLE?對(duì)象類(lèi)程序庫(kù)(The?Oracle?Objects?for?OLE?C++?Class?Library)等三項(xiàng)產(chǎn)品。?
----?與ADO相比,ORACLE對(duì)象服務(wù)器是專(zhuān)用于ORACLE數(shù)據(jù)庫(kù)應(yīng)用程序開(kāi)發(fā)的產(chǎn)品,它有以下優(yōu)點(diǎn):?
----?(1)?與數(shù)據(jù)庫(kù)服務(wù)器的連接的運(yùn)行效率好。因?yàn)锳DO是通過(guò)ODBC來(lái)連接數(shù)據(jù)庫(kù)服務(wù)器的,而ORACLE對(duì)象服務(wù)器是通過(guò)ORACLE的SQL*NET來(lái)連接數(shù)據(jù)庫(kù)服務(wù)器的?
----?(2)?能更好地發(fā)揮ORACLE數(shù)據(jù)庫(kù)的特有功能。如STORED?PROCEDURE,STORED?FUNCTION、PACKAGE或Multiple?Cursor。?
----?本例是一個(gè)通訊錄的查詢(xún)、錄入的小程序,用戶(hù)可以通過(guò)瀏覽器對(duì)通訊錄表進(jìn)行查詢(xún),也可把自己的信息輸入,供別人查詢(xún)。?
----?通訊錄表的結(jié)構(gòu)如下:?
Name????????????????????????????Null?????Type
-------------------------------?--------?----
NAME????????????????????????????NOT?NULL?CHAR(8)
ADDRESS??????????????????????????????????CHAR(20)
PHONE????????????????????????????????????CHAR(20)
EMAIL????????????????????????????????????VARCHAR2(30)
----?首先:進(jìn)行環(huán)境配置:?
----?在WEB服務(wù)器上安裝以下軟件并進(jìn)行配置:?
----?(1)基本的WEB?服務(wù)器(WEB?SERVER)與ASP等軟件?
----?(2)Oracle?Object?for?OLE2.x?
----?(3)SQL*Net?Client?或?Oracle?Net8?Client?8,安裝之后,用Sql*Net?Easy?Configuration建立數(shù)據(jù)庫(kù)別名(Database?Alias),為ASP連接到數(shù)據(jù)庫(kù)所用的別名。?
----?二.功能實(shí)現(xiàn)?
----?(1)查詢(xún):用ASP?取數(shù)據(jù)庫(kù)通訊錄表(TSB1)的數(shù)據(jù),將數(shù)據(jù)顯示在屏幕上。查詢(xún)的關(guān)鍵在于確定與數(shù)據(jù)庫(kù)的連接成功與否,ORACLE對(duì)象服務(wù)器本身有錯(cuò)誤控制機(jī)制可以報(bào)出數(shù)據(jù)庫(kù)連接方面的錯(cuò)誤,具體的程序如下:?
<?HTML?>
????<?tile?>??查詢(xún)程序?<?/title?>
<?BODY?>
<?%
on?error?resume?next
'連接數(shù)據(jù)庫(kù)
set?orasession=createobject
("OracleInprocServer.XOraSession")
set?oradatabase=orasession.
dbopendatabase("axp03","scott/tiger",0)
'出錯(cuò)處理
if?err.number?>0?then
response.write"<?h4?>asp?錯(cuò)誤控制?<?/h4?>"
response.write"asp?錯(cuò)誤來(lái)源:"&err.source?&"<?br?>"
response.write"asp?錯(cuò)誤代碼:"&err.number&"<?br?>"
response.write"asp?錯(cuò)誤說(shuō)明:"&err.description&"<?br?>"
err.clear
response.write"<?h4?>ORACLE?OLE?錯(cuò)誤控制<?/h4?>"
response.write"ORACLE?錯(cuò)誤代碼:
"&OraSession.LastServerErr&"<?br?>"
response.write"ORACLE?錯(cuò)誤說(shuō)明:
"&OraSession.LastServerErrText&"<?br?>"
else?
'查詢(xún)
sql="select?*?from?tsb1"
set?oradynaset=oradatabase.dbcreatedynaset(sql,0)
response.write"<?h3?>result<?/h3?>"
response.write"<?table?border=5?><?tr?>"
for?i=0?to?oradynaset.fields.count-1
response.write"<?td?>"
response.write?oradynaset.fields(i).name?&?"?"
response.write"<?/td?>"
next
response.write"<?/tr?>"
do?until?oradynaset.eof
response.write"<?tr?>"
for?i=0?to?oradynaset.fields.count-1
response.write"<?td?>"
response.write?oradynaset.fields(i).value?
response.write"<?/td?>"
next?
response.write"<?/tr?>"
oradynaset.dbmovenext
loop
response.write"<?/table?>"
'關(guān)閉數(shù)據(jù)庫(kù)
oradatabase.close
set?orasession=nothing
end?if
%?>
<?/body?>
<?/html?>
----?下面是程序的查詢(xún)結(jié)果圖面:?
通訊錄?
NAME?ADDRESS?PHONE?EMAIL??
張玲?馬鞍山市湖北路5號(hào)?0555-2887765?zhangl@mial.magang.com.cn?
林向?馬鞍山市湖南路9號(hào)??0555-2223856?lingx@mail.magang.com.cn?
鄧國(guó)虹?采礦路子4幢504號(hào)?0555-2474748?denggh@263.net?
李城?青島海洋大學(xué)7幢507?0464-32456678?licheng@263.net?
王國(guó)在?采礦小區(qū)7幢807號(hào)?0555-3445454?wang@mail.amgang.com.cn?
丁剛?紅旗南路17幢405號(hào)?0555-2883721?dingg@mail.magang.com.cn?
全在保?江西路子7幢607號(hào)?0554-4566777?quzab@mial.ccac.com?
----?(2)插入自己的信息:用ASP將用戶(hù)在瀏覽器上提供的數(shù)據(jù)插入到數(shù)據(jù)庫(kù)通訊錄表(TSB1)中,由ORACLE數(shù)據(jù)庫(kù)有一套完整性約束機(jī)制,所以插入過(guò)程不光是簡(jiǎn)單地把數(shù)據(jù)插入到表中,還要做完整性約束的檢查,不合要求的數(shù)據(jù)拒絕插入,如果在程序中不考慮處理,運(yùn)行時(shí),就會(huì)因數(shù)據(jù)庫(kù)服務(wù)器報(bào)錯(cuò)而中斷程序。而ASP中的ERR對(duì)象可以報(bào)出錯(cuò)誤來(lái)源、錯(cuò)誤代碼、錯(cuò)誤說(shuō)明等,并能把程序引向錯(cuò)誤處理。?
----?以下是程序,一個(gè)是insert.htm,?是一個(gè)輸入界面,供用戶(hù)輸入自己的信息,一個(gè)是insert.asp,負(fù)責(zé)將用戶(hù)輸入信息插入數(shù)據(jù)庫(kù),并進(jìn)行錯(cuò)誤檢查。?
Insert.htm:
<?html?>
<?head?>
<?meta?http-equiv="Content-Language"
content="zh-cn"?>
<?meta?http-equiv="Content-Type"
content="text/html;?charset=gb2312"?>
<?meta?name="GENERATOR"?content=
"Microsoft?FrontPage?4.0"?>
<?meta?name="ProgId"?content=
"FrontPage.Editor.Document"?>
<?title?>請(qǐng)留下你的信息<?/title?>
<?/head?>
<?body?>
<?p?align="center"?>請(qǐng)輸入你的信息<?/p?>
<?form?method="post"?action="insert.asp"?>
姓    名:
<?input?type="text"?name="name"?size="8"?>?<?br?>?
地    址:
<?input?type="text"?name="address"?size="20"?>?<?br?>?
電    話:
<?input?type="text"?name="phone"?size="20"?>?<?br?>?
E-MAIL:<?input?type="text"?name="email"?size="20"?>?<?br?>?
<?input?type="submit"??value="確定"?>?
<?input?type="reset"??value="取消"?><?br?>?
<?/form?>?
<?/body?>?
<?/html?>
----?下面是用戶(hù)輸入界面:?
請(qǐng)輸入你的信息
姓    名:??
地    址:??
電    話:??
E-MAIL:??
?????Insert.asp:
<?HTML?>
<?BODY?>
<?%
'連接數(shù)據(jù)庫(kù)
set?orasession=createobject
("OracleInprocServer.XOraSession")
set?oradatabase=orasession.
dbopendatabase("axp03","scott/tiger",0)
'把用戶(hù)插入信息變成SQL語(yǔ)句
sql="insert?into?tsb1?values
("?&chr(39)&request("name")&chr(39)?&","_
&chr(39)&request("ADDRESS")&chr(39)&","_
&chr(39)?&?request("phone")&chr(39)?&","_
&chr(39)&request("EMAIL")&chr(39)&")"
'運(yùn)行SQL插入語(yǔ)句
oradatabase.dbEXECUTESQL(sql)
'檢查是否有違反完整性約束錯(cuò)誤
IF?ERR.NUMBER?>0?THEN
response.write"<?h4?>asp?錯(cuò)誤控制?<?/h4?>"
response.write"asp?錯(cuò)誤來(lái)源:"&err.source?&"<?br?>"
response.write"asp?錯(cuò)誤代碼:"&err.number&"<?br?>"
response.write"asp?錯(cuò)誤說(shuō)明:"&err.description&"<?br?>"
ELSE?
'插入完成,返回
response.write"插入完成,<?a?href=insert.htm??>?返回。。。<?/a?>"
end?if
%?>
<?/body?>
<?/html?>
上文是錯(cuò)新技術(shù)頻道小編帶給大家的ASP實(shí)現(xiàn)對(duì)ORACLE數(shù)據(jù)庫(kù)的操作,如果你已經(jīng)學(xué)會(huì)這些方法了,那么趕快去操作試試吧!

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 日土县| 北川| 化州市| 当涂县| 洪江市| 佳木斯市| 桦川县| 迁西县| 奉节县| 丰镇市| 仁化县| 三河市| 五华县| 贵州省| 兴海县| 前郭尔| 彰化县| 且末县| 北辰区| 永寿县| 正阳县| 都昌县| 裕民县| 咸宁市| 赣榆县| 永嘉县| 莱西市| 祥云县| 二连浩特市| 海南省| 图木舒克市| 隆德县| 巫溪县| 白水县| 永泰县| 汾西县| 英吉沙县| 甘肃省| 临沂市| 东丽区| 保德县|