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

📄 jb4-1-8-2.htm

📁 JBUILDER5的中文帮助文档
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft FrontPage 4.0">
<TITLE></TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</HEAD>
<body bgcolor="#fefef2" style="FONT-SIZE: 9pt">
<P><STRONG><FONT 
color=#0080FF size=3 >Saving changes back to your data source with a stored procedur
</FONT>
 </STRONG> 
<hr>
译者名字:				stavid(JD019) <br>              
邮件地址:<a href="mailto:stavid@163.com">stavid@163.com</a>

<p><font size="2">&nbsp;&nbsp;&nbsp; 可以使用不同的解析方法把數据回存到數据源,QueryDataSets用默認的QueryResolver來回存,它可以通過設定StorageDataSet.resolver的屬性被overridden.</font></p>     
 
		 
	

<p><font size="2"> 
&nbsp;&nbsp;&nbsp; 本主题揭示了由DataExpress程序包为ProcedureDataSet组件所提供的基本解析器的功能。它扩展了“使用存储过程获取数据”部分中所揭示的概念,并添加了一个将你的修改回存至数据源的解析过程阶段.<br>  
<br>
&nbsp;&nbsp;&nbsp; 教程:用存储过程访问数据”部分研究了用一个存储过程来从数据源中获取数据的提供阶段。该教程示例了服务器上的表和插入、修改以及删除过程。然后,它实例化ProcedureDataSet组件和相关的UI组件,并将从JDataStore过程中所返回的数据显示在一个网格中。當妳确定屬性設定后,在JdbNavToolBar上的保存按鈕能保存改變到雇員文件(數据)中.</font></p>     
 
		 
	

<p><font size="2"> 
&nbsp;&nbsp;&nbsp; 下面的教程通过添加基本解析功能扩展了提供阶段。通过使用一个ProcedureDataSet组件,这可以通过两条途径来完成。下面几节详细讨论了每个选项。&nbsp;</font></p>     
 
		 
	

<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; . 一个包含基本解析过程代码的按钮,或,一个JdbNavToolBar,其S a v e按钮也执行一个基本的解析功能。见教程:"使用QueryResolver保存修改”部分。</font></p>     
 
		 
	

<p><font size="2">     
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; . 一个ProcedureResolver,它需要数据库上存储过程的特殊程序代码,在该数据库上数据应被解析。教程:使用ProcedureResolver保存修改”中有这样一个可用的例子。&nbsp;</font></p>     
 
		 
	

<p><font size="2"><font color="#000080"><b>  
	教程: Saving changes using a QueryResolver</b></font></font></p>     
 
		 
	

<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果ProcedureDataSet 解析屬性沒有被設定,默認的解析器QueryResolver將產生插入,更新,和刪除查詢并保存,QueryResolver 需要設定tableName和rowIDd屬性.</font></p>     
 
		 
	

<p>&nbsp;&nbsp;&nbsp;<font size="2"> 這個教程將告訴妳怎樣完成samples/DataExpress/SimpleStoredProcdure/文件下的例子.在/sample/DAtaExpress/ServerSpecificProcedures/文件下有可以引用的在不同服务器上存储过程的其它范例应用程序.</font></p>    
 
		 
	

<p>&nbsp;&nbsp;&nbsp;<font size="2"> 要完成这个应用程序并将修改回存至COUNTRY表中,&nbsp;</font></p>    
 
		 
	

<p><font size="2">    
&nbsp;&nbsp;&nbsp; 1) 在JBuilder菜单中选择File|Close。选择File|Open菜单项,打開"教程:(retrieving data using stored procedures)用存储过程访问数据”中所创建的项目文件。我们将为这个已经存在的工程添加解析功能。</font></p>    
 
		 
	

<p>&nbsp;&nbsp;&nbsp;<font size="2"> 
在本教程的这一点上,你就可以运行这个应用程序并查看和定位数据了。但是为了成功地进行插入、删除和修改纪录需要為QueryResolver提供更多的信息, QueryResolver被調用(默認)除非ProcedureResolver被定義(察看教程"save changes with a procedureResolver")</font></p>     
 
		 
	

<p><font size="2">     
&nbsp;&nbsp;&nbsp; 2)在project中選擇 Frame1.java, 然后選擇設計版(design tab)激活UI设计器</font></p>     
 
		 
	

<p><font size="2">     
&nbsp;&nbsp;&nbsp; 3) 从面板(component)組建樹上選擇procedureDataSet1</font></p>     
 
		 
	

<p><font size="2">     
&nbsp;&nbsp;&nbsp; 4) 把procedureDataSet1 的tableName 的屬性為"COUNTRY"</font></p>     
 
		 
	

<p><font size="2">     
&nbsp;&nbsp;&nbsp; 5) 檢查procedureDataSet1的resolvable的直是否為True</font></p>     
 
		 
	

<p><font size="2">     
&nbsp;&nbsp;&nbsp; 6) 點擊左邊proedureDataSet1圖標的加號,把它展開,使能進行數据設定</font></p>     
 
		 
	

<p><font size="2">     
&nbsp;&nbsp;&nbsp; 7) 選擇column,找到COUNTRY</font></p>     
 
		 
	

<p><font size="2">     
&nbsp;&nbsp;&nbsp; 8) 設定rowId的屬性為true&nbsp;</font></p>     
 
		 
	

<p><font size="2">    
&nbsp;&nbsp;&nbsp; 9) 选择Run | Run来运行这个应用程序。</font></p>     
 
		 
	

<p><font size="2">&nbsp;&nbsp;&nbsp; 此应用程序将被编译并显示于一个独立的窗口中。数据被显示在一个网格中,并带有一个报告当前行位置和行统计的状态条。现在你可以进行某个纪录的插入、更新和删除操作,并将修改回存至数据库中。当你运行这个应用程序时,请注意下列特性:&nbsp;</font></p>    
 
		 
	

<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;</font> <font size="2">. 使用键盘、鼠标或者导航器滚动显示在网格中的数据。当你进行导航浏览时,状态条也将相应地进行更新。</font></p>     
 
		 
	

<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; . 你可以调整窗口的大小以显示更多的域,或者通过垂直滚动条来进行显示滚动。</font></p>     
 
		 
	

<p><font size="2"><br>     
&nbsp;&nbsp;&nbsp; 在上面的示例应用程序中,你可以添加一个JButton编码来处理保存的修改,用以替换JdbNavToolBar。更多的信息,請察看"教程:adding a button to save changes from a QueryDataSet" 在选中组件树( Component Tree)中控件按钮的情况下,选择“ Inspector”的Event选项卡,选择方法actionPerformed ( ),双击其值域,并在源程序窗口中添加下列程序代码:</font></p>     
 
		 
	

<p>&nbsp;&nbsp;&nbsp;<font size="2"> try {<br>      
&nbsp;&nbsp;&nbsp; database1.saveChanges(procedureDataSet1);<br>
&nbsp;&nbsp;&nbsp; System.out.println("Save changes succeeded");<br>      
&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; catch (Exception ex) {<br>      
&nbsp;&nbsp;&nbsp; // displays the exception on the JdbStatusLabel if<br>      
&nbsp;&nbsp;&nbsp; // the application includes one,<br>      
&nbsp;&nbsp;&nbsp; // or displays an error dialog if there isn't&nbsp;<br>     
&nbsp;&nbsp;&nbsp; DBExceptionHandler.handleException(ex);  }<br>      
<br>
&nbsp;&nbsp;&nbsp; 如果你已经为对象的实例使用了不同的名称,例如database1,则应相应地替换它们。&nbsp;</font></p>     
 
		 
	

<hr>

<p><font size="2" color="#000080"><b>编码存储过程以处理数据解析</b></font></p>  
 
		 
	

<p><font size="2">&nbsp;&nbsp;&nbsp; 要使用procedureResolver,你需要在数据库上实现三个存储过程,并将它们指定为procedureResolver的属性。这三个过程为:</font></p>   
 
		 
	

<p><font size="2">    
&nbsp;&nbsp;&nbsp; . 要插入某一行时调用过程insertProedure.关于调用insertProedure的可用参数为:</font></p>    
 
		 
	

<p><font size="2">     
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; . 当它出现在Dataset中的插入行。&nbsp;</font></p>    
 
		 
	

<p><font size="2">    
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; . 在ProcedureDescriptor中所指定的可选的parameterRow。</font></p>    
 
		 
	

<p><font size="2">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 存储过程应被设计用来以便在给定行数据的相应的表中插入一条纪录。 parameterRow可以被用来输出总计,或者用于可选的输入参数。&nbsp;</font></p>    
 
		 
	

<p><font size="2">    
&nbsp;&nbsp;&nbsp; . 当在DataSet中修改某一行时调用过程updateProcedure。关于调用updateProcedure的可用参数为:&nbsp;<br>     
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; . 作为它在DataSet中出现的修改行。&nbsp;</font></p>    
 
		 
	

<p><font size="2">    
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; . 作为当数据被提供给DataSet时的原始行。&nbsp;</font></p>    
 
		 
	

<p><font size="2">    
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; . 在ProcedureDescriptor中所指定的可选的parameterRow。</font></p>    
 
		 
	

<p><font size="2"> 
&nbsp;&nbsp;&nbsp; 存储过程应被设计用来更新在给定的原始数据和已做修改的数据相对应的表中的纪录。因为原始行和已修改的行具有同样的列名称,命名的参数语法已经以一种指示指定数据行的方式被扩展。已命名的参数“ :ORIGINAL.CUST_I D”指示CUST_ID为原始的数据行,其中“:CURRENT.CUST_ID”指示CUST_ID为已修改的数据行。同样地,一个“:pa rameter.CUST_ID”将指示ParameterRow中的CUST_ID域。&nbsp;     
</font></p>  
 
		 
	

<p><font size="2"> 

⌨️ 快捷键说明

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