⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jb4-1-6-2.htm

📁 JBUILDER5的中文帮助文档
💻 HTM
字号:
<!-- saved from url=(0022)http://internet.e-mail -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<meta name="Author" content="TF">
<meta name="generator" content="Microsoft FrontPage 4.0">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>数据库应用程序开发者的指南:从数据来源检索数据</title>
<link type="text/css" href="../jbdocs.css" rel="stylesheet">
</head>
<body bgcolor="#fefef2" style="FONT-SIZE: 9pt">
<h2><FONT 
color=#0080FF size=3 ><b>存储过程:提示和建议</b></font></h2><hr>
译者名字: chenjn(JD013) <br>              
邮件地址:<a href="mailto:chenjn@fulltop.com">chenjn@fulltop.com</a>    


<blockquote class="bsku">
  <p><font color="#FF0000">数据库应用开发是 JBuilder 专业版和企业版的一个特征。<br>分布式的应用开发是 JBuilder 企业版的一个特征。</font></p>     
</blockquote>  




<p>这一组话题包含了对你有帮助的建议</p>

<ul>
<li>理解使用一个存储过程的选项</li>

<li>利用教程创建一个过程</li>
</ul>

<a name="statement"></a>
<p><font size="3" color="#000080"><b>关于存储过程的退出顺序, SQL 语句,和服务器特定的程序调用的讨论</b></font></p>       
<!--BNDX="stored procedures:creating;escape sequences;procedure calls:server-specific"-->
<!--BNDX="JDBC escape sequences;SQL statements:discussion of"-->
<p>当要向<code><font size="2">procedure</font></code>性质编辑器或代码中的 Stored Procedure Escape 或者 SQL Statement 域输入信息时, 你有三种类型的语句可用来输入。他们是:</p>       

<ul>
<li>
<p>选择一个存在的过程。</p>

<p>单击<code>procedure</code>性质编辑器中的 Browse Procedures,来浏览一个存在的存储过程的数据库。一张 你所连接的数据库的可用进程名称列表将被显示。如果是InterBase服务器并且你选择了一个没有返回值的进程,你将收到效果通知。 如果你选择了一个没有返回值的进程, JBuilder 将尝试为那个程序调用生成正确的退出语法。然而, 你或许需要编辑自动产生的语句来正确对应于你的服务器的句法。对于另外的数据库而言,仅仅是那个进程的名字通过 Select Procedures 对话框被插入了而已。</p>       

<p>如果过程正在期望参数, 你必须使他们与参数的列名相匹配。</p>       


</li>

<li>输入一个 JDBC 程序的退出顺序。       

<p>使用下列格式来输入一个 JDBC 程序的退出顺序:</p>       

<ul>
<li>{call PROCEDURENAME (?,?,?,...)} for procedures</li>

<li>{?= call FUNCTIONNAME (?,?,?,...)} for functions</li>
</ul>
</li>

<li>
<p>输入服务器特定的程序调用语法。</p>

<p>当一个服务器允许独立的过程呼叫句法时,你可输入这样的语法来代替一个存在的存储过程或一个 JDBC 程序的退出顺序。例如,服务器特定的语法有可能是这个样子的:</p>       

<ul>
<li>execute procedure PROCEDURENAME ?,?,?</li>       
</ul>
</li>
</ul>

<p>在前两个例子当中,参数标记和问号可以用 ParameterName 表单中已命名的参数来替代。使用已命名参数的例子请参看&quot;<a href="prov_procedure_disc2.html">范例: Oracle PL/SQL 存储过程中使用参数</a>&quot;.使用 InterBase 存储过程的范例请参看&quot;<a href="prov_procedure_disc2.html">范例: 使用 InterBase 存储过程</a>&quot;.</p>       


<!--***********************************************************************-->
<a name="manual"></a>
<p><font color="#000080" size="3"><b>手工地为教程创建表单和过程</b></font></p>
<!--BNDX="database tutorials:creating stored procedures;tutorials:creating stored procedures"-->
<!--BNDX="stored procedures:tutorial;SimpleStoredProcedure sample;ProcedureDataSet component:tutorial"-->
<p>存储过程由一组 SQL 语句组成。 These statements can easily be written and compiled in JBuilder by creating a Java file, entering the statements, then compiling the code. If you do not have access to the sample project SimpleStoredProcedure or if you would like to learn how to create a table and insert, update, and delete procedures from JBuilder, follow these steps: </p>   

<ol>
<li>从菜单选择 File|Close All 。   


</li>

<li>从菜单选择 File|New Project.   


</li>

<li>在工程向导里更改文件目录和工程名为<code><font size="2">SimpleStoredProcedure/ProcSetUp/ProcSetUp.jpr</font></code> 。</li>   

<li>
<p>选择 File|New, 然后选择 Class。</p>   


</li>

<li>在 Class wizard 中更改 Class Name 为 <code>ProcSetUp</code> 。 单击 OK,创建文件 <code><font size="2">ProcSetUp.java</font></code>。  


</li>

<li>在 Source 窗口编辑代码或者从在线帮助复制粘贴以下的代码:    

<p>
<br>
package ProcSetUp;<br>
<br>
import com.borland.dx.dataset.*;<br>
import com.borland.dx.sql.dataset.*;<br>
import java.sql.*;<br>
<br>
public class CreateProcedures {<br>
<br>
&nbsp; public static void main(String[] args) throws DataSetException {<br>
&nbsp;&nbsp;&nbsp; Database database1 = new Database();<br>
&nbsp;&nbsp;&nbsp; database1.setConnection(new 
ConnectionDescriptor(&quot;jdbc:interbase://&lt;IP address or 
localhost&gt;/&lt;path to .gdb file&gt;&quot;, &quot;SYSDBA&quot;, 
&quot;masterkey&quot;, false, &quot;interbase.interclient.Driver&quot;));<br>
&nbsp;&nbsp;&nbsp; try { database1.executeStatement(&quot;DROP PROCEDURE 
GET_COUNTRIES&quot;); } catch (Exception ex) {};<br>
&nbsp;&nbsp;&nbsp; try { database1.executeStatement(&quot;DROP PROCEDURE 
UPDATE_COUNTRY&quot;); } catch (Exception ex) {};<br>
&nbsp;&nbsp;&nbsp; try { database1.executeStatement(&quot;DROP PROCEDURE 
INSERT_COUNTRY&quot;); } catch (Exception ex) {};<br>
&nbsp;&nbsp;&nbsp; try { database1.executeStatement(&quot;DROP PROCEDURE 
DELETE_COUNTRY&quot;); } catch (Exception ex) {};<br>
&nbsp;&nbsp;&nbsp; database1.executeStatement(getCountriesProc);<br>
&nbsp;&nbsp;&nbsp; database1.executeStatement(updateProc);<br>
&nbsp;&nbsp;&nbsp; database1.executeStatement(deleteProc);<br>
&nbsp;&nbsp;&nbsp; database1.executeStatement(insertProc);<br>
&nbsp;&nbsp;&nbsp; database1.closeConnection();<br>
&nbsp; 
}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
<br>
&nbsp; static final String getCountriesProc =&nbsp;<br>
&nbsp;&nbsp;<br>
&quot;CREATE PROCEDURE GET_COUNTRIES RETURNS (&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot;&nbsp; COUNTRY 
VARCHAR(15),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot;&nbsp; CURRENCY VARCHAR(10) ) 
AS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot;BEGIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot; FOR SELECT c.country, 
c.currency&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot;&nbsp; FROM country 
c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot;&nbsp; INTO 
:COUNTRY,:CURRENCY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot; 
DO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot; 
BEGIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot;&nbsp; 
SUSPEND;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot; 
END&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot;END;&quot;;<br>
<br>
<br>
&nbsp;&nbsp;<br>
&nbsp; static final String updateProc =&nbsp;<br>
&nbsp;&nbsp;<br>
&quot;CREATE PROCEDURE 
UPDATE_COUNTRY(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot;&nbsp; OLD_COUNTRY 
VARCHAR(15),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot;&nbsp; NEW_COUNTRY 
VARCHAR(15),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot;&nbsp; NEW_CURRENCY VARCHAR(20) ) 
AS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot;BEGIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot;&nbsp; UPDATE 
country&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot;&nbsp;&nbsp;&nbsp; SET country = 
:NEW_COUNTRY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot;&nbsp;&nbsp;&nbsp; WHERE country = 
:OLD_COUNTRY;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot;END;&quot;;<br>
<br>
<br>
<br>
&nbsp; static final String insertProc =&nbsp;<br>
&nbsp;&nbsp;<br>
&quot;CREATE PROCEDURE 
INSERT_COUNTRY(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot;&nbsp; NEW_COUNTRY 
VARCHAR(15),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot;&nbsp; NEW_CURRENCY VARCHAR(20) ) 
AS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot;BEGIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot;&nbsp; INSERT INTO country(country,currency)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot;&nbsp;&nbsp;&nbsp; VALUES 
(:NEW_COUNTRY,:NEW_CURRENCY);&nbsp;&nbsp;&nbsp;&nbsp; /r/n&quot;+<br>
&quot;END;&quot;;<br>
<br>
<br>
&nbsp; static final String deleteProc =&nbsp;<br>
&nbsp;&nbsp;<br>
&quot;CREATE PROCEDURE 
DELETE_COUNTRY(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot;&nbsp; OLD_COUNTRY VARCHAR(15) ) 
AS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot;BEGIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot;&nbsp; DELETE FROM 
country&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot;&nbsp;&nbsp;&nbsp; WHERE country = 
:OLD_COUNTRY;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/r/n&quot;+<br>
&quot;END;&quot;;<br>
}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
</p>
</li>

<li>右击工程面板中的<code>ProcSetUp.java</code>文件,然后选择运行。这一步骤在服务器里生成了表和程序。</li>

<li>从菜单选择 File|Close 。</li>   
</ol>

<p>这是一个非常简单的程序。建议你在编写更复杂的存储程序时,参考你的数据库文档。</p>


</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -