壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4707|回复: 6

有人能帮忙解释一下htp.tablerowopen与htp.tabledata

[复制链接]
发表于 2006/9/12 11:02:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
代码如下:
begin
  htp.tablerowopen(cattributes => 'bgcolor="#ffffff" height=41 ');
  htp.tabledata(cvalue => '<font size="'||v_font_size||'">'|| nvl('', '&'||'nbsp')||'</font>',calign => 'left',cattributes => 'width=37% rowspan="1" colspan="37"');
  htp.tabledata(cvalue => '<font size="'||v_font_size||'">'|| nvl('', '&'||'nbsp')||'</font>',calign => 'left',cattributes => 'width=35% rowspan="1" colspan="35"');
  Htp.tabledata(cvalue => '<font size="'||v_font_size||'">'|| nvl('','&'||'nbsp')||'</font>',calign => 'right',cattributes => 'width=14% rowspan="1" colspan="14"');
  htp.tabledata(cvalue => '<font size="'||v_font_size||'">'|| nvl('', '&'||'nbsp')||'</font>',calign => 'right',cattributes => 'width=14% rowspan="1" colspan="14"');
  htp.tablerowclose ;
end;
哪位前辈解释一下吧,或者有htp这个包的用法请共享一下
发表于 2006/9/12 12:58:00 | 显示全部楼层
不是做开发 的
帮你顶
发表于 2006/9/12 13:08:11 | 显示全部楼层
Oracle组件实现动态Web数据库


本文简要介绍实现Web数据库的基本方法,讨论了利用Oracle的服务器选件之一WebServer结合PL/SQL和相关内置程序包实现动态Web的基本方法,并给出了一简单示例。

  随着计算机互连网络的发展,Internet正成为世界各地进行信息交流的主要方式之一。作为Internet的一个重要组成部分,全球信息网WWW(World Wide Web)采用HTML形式组织信息,并用超链结的方式进行各种信息的集成与传递,具有界面友好,操作简单等特点,用户可直接利用Web浏览器进行方便的浏览、查询各种信息。因此,作为各机构组织和企业展示信息的窗口,Web服务器所能提供的信息量和功能就直接影响到其自身的形象和客户访问量。

  在传统的Web服务器中,文本和其他信息都是以文件的形式来进行存储和管理的,向用户浏览器所提供的网页也大多是静态的。当用户在浏览器中输入HTML文档的URL时,则访问一个在WebServer上的文件,它只有在某个网络管理员在Web服务器上放置一个同名的新文件时才改变内容。随着WWW的应用领域的拓展,静态Web页也越来越不能满足信息服务的动态性、实时性和交互性的要求,这就要求将数据库技术与WWW 结合起来,以实现对数据资源的高效存取。

  1、 用Oracle WebServer构建Web数据库应用

  Oracle 8服务器是一个完善的信息管理环境。它是一个大量数据的储藏所,并给用户提供对这些数据的快速访问。它能够支持C/S结构进行分布式处理和Web计算等。利用其服务器选件之一的WebServer,可以提供实现Web数据库应用的强大功能。

  一般来说,实现Web数据库应用可以在WebServer端提供CGI/API等中间件来连接WebServer 和DB Server,也可以让用户通过Web浏览器把相关应用下载到客户端运行,在客户端直接访问数据库,如Java Applet,Active X,Plug-in等。本文主要介绍利用Oracle 8 提供的PL/SQL和其功能强大的内置程序包来编写程序以实现动态的Web应用。属于利用中间件开发的一种。中间件负责管理WebServer和DBServer之间的通信并提供应用程序服务,它能够直接调用外部程序或脚本代码来访问数据库,因此可以提供与数据库相关的动态HTML页面,或执行用户查询,并将查询结果格式化成HTML页面再通过WebServer返回给用户浏览器。其一般结构如下所示:

  Web浏览器 ←→ Internet ←→ Web Server ←→ CGI/API ←→ Oracle DB Server

  2、 PL/SQL

   Oracle从其版本6开始支持一种过程处理语言PL/SQL,并将其作为所有Oracle工具的标准编程语言,从而所有的过程组件在Oracle服务器产品中都能实现。用PL/SQL可以实现下述重要功能:

   存储过程,即存放在Oracle数据库中的程序(或代码段)并为你的机构完成特定的重要工作;

   数据库触发器,即存放在数据库中的代码,可由应用所产生的事件触发;

   程序包,即把多个过程组合在一起当作单个程序单元的代码存放在数据库中。

其中内置程序包是预先生成的,存储在数据库中,且能在PL/SQL代码块中调用的根据需求可以传递参数的程序。它可以完成把结果直接输出到终端窗口;直接从操作系统文件读写数据;执行动态的SQL等多项功能。常用的如HTP,HTF,OWA-UTIL等。下面将通过一个动态的网上查询分数的实例来说明其在动态Web中的应用。



  3、 利用WebServer和PL/SQL开发动态Web实例

  现有一考生成绩库需在网上向用户提供查询成绩的功能。首先可考虑利用HTP程序包根据用户输入的考生号到数据库中查询相应的信息,返回一个网页。代码如下:

  Create or replace procedure score_into_webpage (code_in in number)

   As

  cursor score_cursor is

  select code,name,score

  from student

  where code = code_in;

  Begin

   Htp.htmlopen;

   Htp.headopen;

   Htp.title ('Student's score information');

   Htp.headclose;

   Htp.bodyopen (cattributes=>'bgcolor = "#80800"');

   Htp.tableopen(border');

   Htp.tablecaption ('Score Information','center');

   Htp.tablerowopen;

   Htp.tableheader (' Student Code');

   Htp.tableheader (' Student Name');

   Htp.tableheader (' Student Score');

--固定地显示页标题、标题、表头等信息,每次调用此页时显示的信息

--是相同的

  Htp.tablerowclose;

  For score_rec in score_cur

  Loop

  --利用游标的For循环为游标在网页中产生一个数据行

  htp.tablerowopen;

  htp.tabledata (score_rec.code);

  htp.tabledata (score_rec.name);

  htp.tabledata (score_rec.score);

  htp.tablerowclose;

  Endloop;

  Htp.tableclose;

  Htp.bodyclose;

  Htp.htmlclose;

  End;

通过以上代码,我们有了一个基本的用数据库中的数据动态的生成一个网页的方法,下面将建立一个简单的表单。在表单中调用上述程序和接受用户输入的考生号码,从而在客户端向用户动态地显示从数据库中查询的信息。

  Create or replace procedure ScoreForm

   As

  Begin

  Htp.headopen;

  Htp.title ('Code Entry Form');

  Htp.headclose;

  Htp.bodyopen;

  Htp.header (2,'Score Information Code Form');

  Htp.p ('
');

  Htp.formopen ('Score_into_webpage',cmethod=>'GET');

  --打开ScoreForm表单。缺省情况下Score_into_webpage PL/SQL过程用GET

  --方法调用。GET方法在URL里显示传递的参数。

  Htp.tableopen ('border');

  Htp.tablerowopen;

  Htp.tabledata ('Enter Student Code');

  Htp.tabledata (htf.formtext ('code_in',5,5));

  --用一个文本框提示用户输入考号。文本框的名字必须与调用过程里的输入

  --参数相同。

  Htp.tablerowclose;

  Htp.tablerowopen;

  Htp.tablerowclose;

  Htp.tablerowopen;

  Htp.tabledata (htf.formSubmit);

  Htp.tabledata (htf.formReset);

  Htp.tablerowclose;

  Htp.formclose;

  Htp.bodyclose;

  Htp.htmlclose;

  End;

上述过程在客户端被调用后产生的HTML即可显示一动态表单接受用户输入的考号,然后传递给调用的过程score_into_webpage,从而到Oracle DBServer中查询出所需的数据,再通过该过程动态生成的HTML在Web浏览器中显示出来。

  4、 结束语

  作为一个大型数据库服务器,Oracle提供了一个面向网络的开发工具、应用服务器和数据库服务器的综合平台。本文利用其标准PL/SQL和内置程序包并结合WebServer讨论了基本的动态Web的开发和应用。
发表于 2006/9/12 14:13:47 | 显示全部楼层

回复 #1 sunweij 的帖子

htp . tabledata过程调用内部的htp . tablerowopen
 楼主| 发表于 2006/9/12 22:03:46 | 显示全部楼层
诸位前辈有教程或者相关学习资料吗?
发表于 2006/9/12 22:50:55 | 显示全部楼层
见下面的文档:

htp.formRadio
语法 htp.formRadio (cname, cvalue, cchecked, cattributes);
作用 Prints an HTML tag that inserts a radio button on the HTML Form. Used to create a set of radio buttons, each representing a different value, only one of which will be toggled on by the user. Each radio button field should have the same name. Only the selected radio button will generate a name/value pair in submitted data area. This will require an explicit VALUE attribute.
参数 cname in varchar2
cvalue in varchar2
cchecked in varchar2 DEFAULT NULL
cattributes in varchar2 DEFAULT NULL
Generates <INPUT TYPE="radio" NAME="cname" VALUE="cvalue" CHECKED cattributes>

htp.formReset
语法 htp.formReset (cvalue, cattributes);
作用 Prints an HTML tag that creates a RESET button that, when selected, resets all the form fields to their initial values.
参数 cvalue in varchar2 DEFAULT 'Reset'
cattributes in varchar2 DEFAULT NULL
Generates <INPUT TYPE="reset" VALUE="cvalue" cattributes>

htp.formSubmit
语法 htp.formSubmit (cname, cvalue, cattributes);
作用 Prints an HTML tag that creates a button that, when selected, submits the form. If a SUBMIT button is selected to submit the Form, and that button has a name attribute specified, the submit button then contributes a name/value pair to the submitted data.
参数 cname in varchar2
cvalue in varchar2 DEFAULT 'Submit'
cattributes in varchar2 DEFAULT NULL
Generates <INPUT TYPE="submit" NAME="cname" VALUE="cvalue" cattributes>

htp.formText
语法 htp.formText (cname, csize, cmaxlength, cvalue, cattributes);
作用 Prints an HTML tag that creates a field for a single line of text.
参数 cname in varchar2
csize in varchar2 DEFAULT NULL
cmaxlength in varchar2 DEFAULT NULL
cvalue in varchar2 DEFAULT NULL
cattributes in varchar2 DEFAULT NULL
Generates <INPUT TYPE="text" NAME="cname" SIZE="csize" MAXLENGTH="cmaxlength" VALUE="cvalue" cattributes>

htp.formSelectOpen
语法 htp.formSelectOpen (cname, cprompt, nsize, cattributes);
作用 Prints an HTML tag that begins a Select list of alternatives. Contains the attribute NAME which specifies the name that will be submitted as a name/value pair.
参数 cname in varchar2
cprompt in varchar2 DEFAULT NULL
nsize in integer DEFAULT NULL
cattributes in varchar2 DEFAULT NULL
Generates cprompt <SELECT NAME="cname" SIZE="nsize" cattributes>
Example htp.formSelectOpen('greatest_player';
'Pick the greatest player:');
htp.formSelectOption('Messier');
htp.formSelectOption('Howe');
htp.formSelectOption('Hull');.
htp.formSelectOption('Gretzky');.
htp.formSelectClose; generates: Pick the greatest player:
<SELECT NAME="great player">
<OPTION>Messier
<OPTION>Howe
<OPTION>Hull
<OPTION>Gretzky
</SELECT>

Note: See htp.formSelectOption and htp.formSelectClose.

htp.formSelectOption
语法 htp.formSelectOption (cvalue, cselected, cattributes);
作用 Prints an HTML tag that represents one choice in the Select element.
参数 cvalue in varchar2
cselected in varchar2 DEFAULT NULL
cattributes in varchar2 DEFAULT NULL
Generates <OPTION SELECTED cattributes>cvalue See example for htp.formSelectOpen.
Example See htp.formSelectOpen.

htp.formSelectClose
语法 htp.formSelectClose;
作用 Prints an HTML tag that ends a Select list of alternatives.
参数 none
Generates </SELECT>
Example See htp.formSelectOpen.

htp.formTextarea
语法 htp.formTextarea (cname, nrows, ncolumns, calign, cattributes);
作用 Prints an HTML tag that creates a text field that has no predefined text in the text area. Used to enable the user to enter several lines of text.
参数 cname in varchar2
nrows in integer
ncolumns in integer
calign in varchar2 DEFAULT NULL
cattributes in varchar2 DEFAULT NULL
Generates <TEXTAREA NAME="cname" ROWS="nrows" COLS="ncolumns" ALIGN="calign" cattributes></TEXTAREA>

htp.formTextareaOpen
语法 htp.formTextareaOpen (cname, nrows, ncolumns, calign, cattributes);
作用 Prints an HTML tag that opens a text area where you can insert predefined text that will always appear in the text field.
参数 cname in varchar2
nrows in integer
ncolumns in integer
calign in varchar2 DEFAULT NULL
cattributes in varchar2 DEFAULT NULL
Generates <TEXTAREA NAME="cname" ROWS="nrows" COLS="ncolumns" ALIGN="calign" cattributes>

htp.formTextareaClose
语法 htp.formTextareaClose;
作用 Prints an HTML tag that ends TextArea field
参数 none
Generates </TEXTAREA>

--------------------------------------------------------------------------------

Table Tags 表格标记
The Table tags allow the user to insert tables and manipulate the size and columns of the table in a document.

Note: All the hypertext procedures (HTP) shown in this section are also available as hypertext functions (HTF).

htp.tableOpen
语法 htp.tableOpen (cborder, calign, cnowrap, cclear, cattributes);
作用 Prints an HTML tag that begins an HTML table.
参数 cborder in varchar2 DEFAULT NULL
calign in varchar2 DEFAULT NULL
cnowrap in varchar2 DEFAULT NULL
cclear in varchar2 DEFAULT NULL
cattributes in varchar2 DEFAULT NULL;
Generates <TABLE BORDER NOWRAP ALIGN="calign" CLEAR="cclear" cattributes>

Note: The BORDER attribute is only determined by whether cborder is null or not null.

htp.tableClose
语法 htp.tableClose;
作用 Prints an HTML tag that ends an HTML table.
参数 none
Generates </TABLE>
   

htp.tableCaption
语法 htp.tableCaption (ccaption, calign, cattributes);
作用 Prints an HTML tag that places a caption in the inserted table.
参数 ccaption in varchar2 DEFAULT NULL
calign in varchar2 DEFAULT NULL
cattributes in varchar2 DEFAULT NULL
Generates <CAPTION ALIGN="calign" cattributes>ccaption</CAPTION>

htp.tableRowOpen
语法 htp.tableRowOpen (calign, cvalign,cdp, cnowrap, cattributes);
作用 Prints an HTML tag that inserts a row tag into a table.
参数 calign in varchar2 DEFAULT NULL
cvalign in varchar2 DEFAULT NULL
cdp in varchar2 DEFAULT NULL
cnowrap in varchar2 DEFAULT NULL
cattributes in varchar2 DEFAULT NULL
Generates <TR ALIGN="calign" VALIGN="cvalign" DP="cdp" NOWRAP catttributes>

htp.tableRowClose
语法 htp.tableRowClose;
作用 Prints an HTML tag that ends a row in a table.
参数 none
Generates </TR>

htp.tableHeader
语法 htp.tableHeader (cvalue, calign, cdp, cnowrap, crowspan, ccolspan, cattributes);
作用 Prints an HTML tag that inserts a table header.
参数 cvalue in varchar2 DEFAULT NULL
calign in varchar2 DEFAULT NULL
cdp in varchar2 DEFAULT NULL
cnowrap in varchar2 DEFAULT NULL
crowspan in varchar2 DEFAULT NULL
ccolspan in varchar2 DEFAULT NULL
cattributes in varchar2 DEFAULT NULL
Generates <TH ALIGN="calign" DP="cdp" ROWSPAN="crowspan" COLSPAN="ccolspan" NOWRAP cattributes>cvalue</TH>

htp.tableData
语法 htp.tableData (cvalue, calign, cdp, cnowrap, cattributes);
作用 Prints an HTML tag that inserts data into the rows and columns of a selected table.
参数 cvalue in varchar2 DEFAULT NULL
calign in varchar2 DEFAULT NULL
cdp in varchar2 DEFAULT NULL
cnowrap in varchar2 DEFAULT NULL
cattributes in varchar2 DEFAULT NULL
Generates <TD ALIGN="calign" DP="cdp" ROWSPAN="crowspan" COLSPAN="ccolspan" NOWRAP cattributes>cvalue</TD>  
 楼主| 发表于 2006/9/13 08:44:55 | 显示全部楼层
多谢各位前辈指点
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/30 08:59 , Processed in 0.014888 second(s), 16 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表