| |
| oracleweb应用开发之apache架设与pl/sql页面设计(3) |
| |
发布者: 发布时间:2006-05-07 |
|
|
3.编写psp网页,文件名为show.psp。
程序说明:第1行标识出该页为pl/sql语言文件。第2行指出即将为该页面生成的pl/sql过程名,最后pl/sql页面将要调用数据库中的该过程来显示数据,如果省略该行则以文件名作为缺省的过程名。第3行为即将生成的过程的输入或输出参数,以<%@ %>标记说明,default="1001"说明该参数为可选参数,注意,即使是数值数据类型,也要用双引号括起。第4至11行为该psp网页的全局参数,同时也是过程show的局部参数,以<%! %>标记表示。接下来以全局参数调用已经存储在数据库中的过程show_student,程序代码前后分别被置以<%和%>标记。当然也可将第二步中的过程show_student的编码直接写入以<%和%>标记括起的程序中,但是为了实现代码与内容的分离,尽量不要把它们混在一起。这样做的好处是分离业务逻辑与表示层,使得程序结构清晰,因为可能还有其它psp页面调用该存储过程。在页面显示部分对全局参数的调用格式为标记<%= %>,这也是输出标记,该标记可以实现字符串的连接和变量的计算,如通过psp_id的加减1达到翻页目的。在链接标记<a href="show?id=<%=psp_id-1%>">中,注意show为已经存储的过程,用"show?id="的格式调用过程并输入参数。
<%@ show language="pl/sql"%><%@ plsql procedure="show" %><%@ plsql parameter="id" type="number" default="1001"%><%! psp_id student.id%type:=id;%><%! psp_name student.name%type;%><%! psp_dob student.dob%type;%><%! psp_gender student.gender%type;%><%! psp_classyr student.classyr%type;%><%! psp_major student.major%type;%><%! psp_email student.email%type;%><%! psp_photo student.photo%type;%><%show_student( p_id => psp_id, p_name => psp_name, p_dob => psp_dob, p_gender => psp_gender, p_classyr => psp_classyr, p_major => psp_major, p_email => psp_email, p_photo => psp_photo);%><html><head><title>学生信息</title><meta http-equiv="content-type" content="text/html; charset=gb2312"></head><body bgcolor="#999900" text="#ffffff" link="#3366ff"><table width="80%" border="0" cellspacing="2" cellpadding="2" align="center" height="400"> <tr> <td colspan="3" height="72"> <div align="center"><font size="+3"><b>学生信息</b></font></div> </td> </tr> <tr> <td width="40%" height="195" rowspan="8"><img src="admin_/images/<%=psp_photo%>" width="172" height="191" align="middle"></td> <td colspan="2" height="30">编号为<%=psp_id%>的学生的资料如下:</td> </tr> <tr> <td colspan="2" height="30">编号:<%=psp_id%></td> </tr> <tr> <td colspan="2" height="30">姓名:<%=psp_name%></td> </tr> <tr> <td colspan="2" height="30">出生日期:<%=psp_dob%></td> </tr> <tr> <td colspan="2" height="30">性别:<%=psp_gender%></td> </tr> <tr> <td colspan="2" height="30">年级:<%=psp_classyr%></td> </tr> <tr> <td colspan="2" height="30">主修课程:<%=psp_major%></td> </tr> <tr> <td colspan="2" height="30">电子邮件:<%=psp_email%></td> </tr> <tr> <td width="40%" height="74"> <div align="center"></div> </td> <td width="46%" height="74"> <div align="center"><a href="show?id=<%=psp_id-1%>">上一页</a> <a href="show?id=<%=psp_id+1%>">下一页</a></div> </td> <td height="74" width="14%"> <div align="center"></div> </td> </tr></table></body></html> |
4.使用oracle命令行程序
使用oracle命令程序$oracle_home\bin\loadpsp.exe将第3步编写的psp页面(show.psp)载入数据库的cf/cf模式下。loadpsp.exe程序的所有选项格式如下:
l:\oracle\ora90\bin\loadpsp.exeusage: loadpsp [-replace] -user <logon> [<page1><page2> ...] where <logon> ::= <username>/<password>[@<connect_string>] |
本例中使用如下命令:
l:\oracle\ora90\bin\loadpsp -replace -user cf/cf show.psp"show.psp":procedure "show" created. |
5.载入show.psp页面后,在数据库的cf/cf模式下生成存储过程show(该过程名由网页show.psp中的<%@ plsql procedure="show" %>程序决定),过程中已经加入htp进程包来调用参数。
procedure show (id in number default 1001) as psp_id student.id%type:=id; psp_name student.name%type; psp_dob student.dob%type; psp_gender student.gender%type; psp_classyr student.classyr%type; psp_major student.major%type; psp_email student.email%type; psp_photo student.photo%type; begin null;htp.prn('''');htp.prn('''');htp.prn('''');htp.prn('''');htp.prn('''');htp.prn('''');htp.prn('''');htp.prn('''');htp.prn('''');htp.prn('''');htp.prn('''');show_student( p_id => psp_id, p_name => psp_name, p_dob => psp_dob, p_gender => psp_gender, p_classyr => psp_classyr, p_major => psp_major, p_email => psp_email, p_photo => psp_photo);htp.prn(''<html><head><title>学生信息</title><meta http-equiv="content-type" content="text/html; charset=gb2312"></head><body bgcolor="#999900" text="#ffffff" link="#3366ff"><table width="80%" border="0" cellspacing="2" cellpadding="2" align="center" height="400"> <tr> <td colspan="3" height="72"> <div align="center"><font size="+3"><b>学生信息</b></font></div> </td> </tr> <tr> <td width="40%" height="195" rowspan="8"><img src="admin_/images/'');htp.prn(psp_photo);htp.prn(''" width="172" height="191" align="middle"></td> <td colspan="2" height="30">编号为'');htp.prn(psp_id);htp.prn(''的学生的资料如下:</td> </tr> <tr> <td colspan="2" height="30">编号:'');htp.prn(psp_id);htp.prn(''</td> </tr> <tr> <td colspan="2" height="30">姓名:'');htp.prn(psp_name);htp.prn(''</td> </tr> <tr> <td colspan="2" height="30">出生日期:'');htp.prn(psp_dob);htp.prn(''</td> </tr> <tr> <td colspan="2" height="30">性别:'');htp.prn(psp_gender);htp.prn(''</td> </tr> <tr> <td colspan="2" height="30">年级:'');htp.prn(psp_classyr);htp.prn(''</td> </tr> <tr> <td colspan="2" height="30">主修课程:'');htp.prn(psp_major);htp.prn(''</td> </tr> <tr> <td colspan="2" height="30">电子邮件:'');htp.prn(psp_email);htp.prn(''</td> </tr> <tr> <td width="40%" height="74"> <div align="center"></div> </td> <td width="46%" height="74"> <div align="center"><a href="show?id='');htp.prn(psp_id-1);htp.prn(''">上一页</a> <a href="show?id='');htp.prn(psp_id+1);htp.prn(''">下一页</a></div> </td> <td height="74" width="14%"> <div align="center"></div> </td> </tr></table></body></html>''); end; |
6.浏览网址:http://localhost/pls/simpledad/show,即可看到如图1所示的页面,可点击"上一页"或"下一页"浏览相临记录。
|
| (转载文章请保留出处:北天JAVA技术网(www.java114.com)) |
| |
| 更多精彩文章: |
| oraclee-business套件rra/fndfs泄露任意文件漏洞的修补 |
| 如何学习oracle? |
| oraclenetserviceslink查询请求缓冲区溢出漏洞的修补 |
| oraclerman/tivoli-tdp/下数据恢复到节点 |
| tsmserver,client,tdpo安装配置手记(1) |
| tsmserver,client,tdpo安装配置手记(2) |
| |
| 最近评论: |
|
|
| 冰封的往事! |
| wow power leveling,wow gold,wow power leveling,wow gold
max(261) |
|
|
| 冰封的往事! |
| wow power leveling,wow gold,WoW Gold,wow gold
max(6807) |
|
|
| |
| 免责声明:该文章由网友发表,如果对您造成侵权,请联系站长。 |
|