📄 jb4-1-8-2.htm
字号:
.当从DataSet中删除每一行时调用过程deleteProcedure。关于调用deleteProcedure的可用参数为:
</font></p>
<p><font size="2">
. 作为当数据被提供进入DataSet时的原始行。
</font></p>
<p><font size="2">
. 在ProcedureDescriptor中所指定的可选的ParameterRow。
</font></p>
<p><font size="2">
<br>
存储过程应被设计用来在给定原始数据和已作修改数据的相应表中删除一条纪录。“教程:使用ProcedureReso lver保存修改”部分有一个代码示例,它使用了解析数据到数据库的方法。如果是InterBase,请参见“示例:带返回参数使用InterBase存储过程”部分。
</font></p>
<p><font size="2" color="#000080"><b>
教程:使用ProcedureResolver保存修改</b></font></p>
<p><font size="2"> 下面的教程展示了如何使用JBuilder的UI Designer ( 用户界面设计器)、 ProcedureDataSEt和ProcedureDataSEt组件来将变更保存至你的数据库中。可引用的在不同服务器上的有关存储过程的一些范例应用程序位于目录samples/DataExpress/ServerSpecificProcedures中。</font></p>
<p><font size="2"> 要完成这个应用程序,并将修改回存至带有定制插入、修改和删除过程的COUNTRY表中, 在JBuilder的菜单中选择File|Open菜单项。打开“教程:用存储过程访问数据库”部分中所创建的工程文件。<br>
<br>
當前的工程包含一個JdbNavToolBar組件,允許妳在表格中移動导航器还提供了一个“保存修改( Save Changes)”按钮。这里,这个按钮并不做任何工作。一旦我们通过一个ProcedureResolver为这个“保存修改(Save Changes)”按钮提供了一个定制解析器,这个按钮将会调用插入、修改和删除过程。<br>
<br>
在该教程中的这里,你就可以运行这个应用程序,并具备了查看和导航数据的能力。为了成功地进行插入、删除或修改操作,你还需要提供以下关于如何处理过程的信息, </font></p>
<p><font size="2">
1)在content面板中選擇Frame 文件,選擇design tab激活UI設計器 </font></p>
<p><font size="2">
2)从Component面板上的Data Express选项卡中,选择一个ProcedureResolver组件放置到组件树上。</font></p>
<p><font size="2">
3)将ProcedureResolver的database属性设置为示例数据库:database1。 </font></p>
<p><font size="2">
4)deleteProcedure属性设置为DELETE_COUNTRY。要做到这些:</font></p>
<p><font size="2">
(1) 在組件樹中選擇procedureResolover1,檢查其屬性 </font></p>
<p><font size="2">
(2)在deleteProcedure属性上双击鼠标,以调出deleteProcedure对话框。 </font></p>
<p><font size="2">
(3)将Database属性设置为Database1。</font></p>
<p><font size="2">
(4)点击Browse Procedure,然后双击名为DELETE_COUNTRY的过程,下列语句将被写到Stored
Procedure Escape或者SQL Statement(S Q L语句)域中。<br>
execute procedure DELETE_COUNTRY :OLD_COUNTRY<br>
<br>
(5)把這個語句(聲明)編輯為:execute procedure DELETE_COUNTRY :COUNTRY<br>
<br>
见“手工为教程创建表和过程”部分中的过程文本.<br>
<br>
5) 将insertProcedure 属性设置为INSERT_COUNTRY。要做到这些,</font></p>
<p><font size="2">
(1)在ProcedureResolver的insertProcedure属性上双击鼠标。打開對話框</font></p>
<p><font size="2">
(2) 将Database域设置为Database1。</font></p>
<p><font size="2">
(3) 点击Browse Procedure,然后双击名为INSERT_COUNTRY的过程。<br>
<br>
(4)将所生成的语句改为:execute procedure INSERT_COUNTRY :COUNTRY, :CURRENCY<br>
<br>
<br>
<font color="#FF0000"><b>注意</b></font>:不要点击Test Procedure.因為Procedure沒有返回直<br>
<br>
6) 如下方法 将updateProcedure 属性设置为UPDATE_COUNTRY。<br>
<br>
(1)選擇, 然后雙擊ProcedureResolver的updateProcedure 的屬性,打開updateProcedure 對話框</font></p>
<p><font size="2">
(2)設定Database屬性為database1</font></p>
<p><font size="2">
(3)點擊 browse Procedures ,然后雙擊 UPDATE_COUNTRY</font></p>
<p><font size="2">
(4) edit the generated code to read:execute procedure UPDATE_COUNTRY :ORIGINAL.COUNTRY, :CURRENT.COUNTRY,
:CURRENT.CURRENCY<br>
<br>
<font color="#FF0000"><b>注意</b></font>:不要点击Test Procedure 因為Procedure沒有返回直</font></p>
<p><font size="2"> 7) 在组件树上选择procedureDataSet1,设置属性resolver为procedureResolver1。 </font></p>
<p><font size="2">
8) 選擇 procedureDataSet1 設定metaDataUpate的屬性為none</font></p>
<p><font size="2">
9) 选择Run|Run菜单项来运行应用程序。</font></p>
<p><font size="2"> 当你运行这个应用程序时,你可以在网格中浏览、编辑、插入以及删除数据。利用导航器上的Save Changes按钮以保存所作的任何修改。需要注意的是在这个特殊的例子中,因为引用示例已完全被建立,所以你不能删除在COUN TRY列中已存在的数值。要测试DELETE过程,可以为COUNTRY添加一个新的数值,然后删除之。 <br>
<br>
<b><font color="#000080">
示例:使用带返回参数的InterBase存储过程</font></b><br>
<br>
不同的驱动程序对一个返回数值的I n t e r B a s e存储过程的调用是不同的。下面的列表展示了下列功能的不同驱动程序的语法:<br>
<br>
CREATE PROCEDURE fct (x SMALLINT)<br>
RETURNS (y SMALLINT)<br>
AS<br>
BEGIN<br>
y=2*x;<br>
END<br>
<br>
驱动程序为: </font></p>
<p><font size="2">
. Visigenics 和InterClient 版本1 . 3或者更早版本。</font></p>
<p><font size="2"> execute procedure fct ?<br>
<br>
如果这个过程是直接通过J D B C驱动程序来调用的,其输出将在结果集中被捕获为一行。J B u i l d e r允许用下列语法来处理输出数值:</font></p>
<p><font size="2"> execute procedure fct ? returning_values ?<br>
<br>
然后J B u i l d e r将捕获这个结果集,并且将数值置入为第二个参数标记所提供的参数。 <br>
. InterClient 版本1 . 4或者更高的版本:</font></p>
<p><font size="2">
{call fct(?,?)}</font></p>
<p><font size="2">
此处参数标记应置于输入参数的后面。</font></p>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -