﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-追随Java-随笔分类-Jdbc</title><link>http://www.blogjava.net/hgq0011/category/3114.html</link><description>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;简单的事情重复做，就会产生累积效应！&lt;br/&gt;
&amp;nbsp;&amp;nbsp;
&lt;a href="http://www.fastonlineusers.com"&gt;&lt;b&gt;&lt;font color=red&gt;共有&lt;script src=http://fastonlineusers.com/online.php?d=hgq0011.blogjava.net&gt;&lt;/script&gt;人在同时阅读此Blog&lt;/font&gt;&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;</description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 07:54:22 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 07:54:22 GMT</pubDate><ttl>60</ttl><item><title>Database Connection Pooling with Tomcat</title><link>http://www.blogjava.net/hgq0011/archive/2006/07/18/58813.html</link><dc:creator>Harryson</dc:creator><author>Harryson</author><pubDate>Tue, 18 Jul 2006 08:46:00 GMT</pubDate><guid>http://www.blogjava.net/hgq0011/archive/2006/07/18/58813.html</guid><wfw:comment>http://www.blogjava.net/hgq0011/comments/58813.html</wfw:comment><comments>http://www.blogjava.net/hgq0011/archive/2006/07/18/58813.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hgq0011/comments/commentRss/58813.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hgq0011/services/trackbacks/58813.html</trackback:ping><description><![CDATA[一篇不错的介绍怎样配置 Tomcat的连接池,以及用JMeter来进行性能测试.<a href="http://www.onjava.com/pub/a/onjava/2006/04/19/database-connection-pooling-with-tomcat.html?page=1"><br />http://www.onjava.com/pub/a/onjava/2006/04/19/database-connection-pooling-with-tomcat.html?page=1</a><img src ="http://www.blogjava.net/hgq0011/aggbug/58813.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hgq0011/" target="_blank">Harryson</a> 2006-07-18 16:46 <a href="http://www.blogjava.net/hgq0011/archive/2006/07/18/58813.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Error establishing socket解决之道</title><link>http://www.blogjava.net/hgq0011/archive/2005/11/07/18571.html</link><dc:creator>Harryson</dc:creator><author>Harryson</author><pubDate>Mon, 07 Nov 2005 06:25:00 GMT</pubDate><guid>http://www.blogjava.net/hgq0011/archive/2005/11/07/18571.html</guid><wfw:comment>http://www.blogjava.net/hgq0011/comments/18571.html</wfw:comment><comments>http://www.blogjava.net/hgq0011/archive/2005/11/07/18571.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/hgq0011/comments/commentRss/18571.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hgq0011/services/trackbacks/18571.html</trackback:ping><description><![CDATA[<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在本机运行得好好的系统,移植到另外的机器上就出现了"java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket."的问题.左思右想也不得其解.在google上搜索,找了很多相关的信息.有人总结出可能出现错误的原因:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1，通过url连接的时候指定的服务器名称或者服务器地址不正确，这一点你可以通过ping来验证。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2，指定的服务器上的sql server的服务没有启动，你可以通过sql server的查询工具来验证这个问题。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3，指定端口错误，sql server的默认端口是1433。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4，sql server没有提供tcp/ip的服务，你可以通过sql server的管理工具来查看这个问题。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5,如果你的系统是 windows XP 或者 Windows 2003,那么你的sql server一定要升级到sp3以上.<BR>这些我检查过,好像没有问题.真是让人郁闷!<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 所有试过的办法我都试过了,就是不知到错在那.正当绝望之时,目光直射到了,连接数据库的URL上,看到了让人惭愧的东东---jdbc:microsoft:sqlserver://<FONT color=#ff0000>192.168.1.13.1433</FONT>;DatabaseName=stonedb;SelectMethod=cursor;怎么这种小错误又出现在我身上了呢?看来我还得告诫自己不要浮躁,要静下心去思考.</P><img src ="http://www.blogjava.net/hgq0011/aggbug/18571.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hgq0011/" target="_blank">Harryson</a> 2005-11-07 14:25 <a href="http://www.blogjava.net/hgq0011/archive/2005/11/07/18571.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ResultSet can not re-read row data for column</title><link>http://www.blogjava.net/hgq0011/archive/2005/09/06/12184.html</link><dc:creator>Harryson</dc:creator><author>Harryson</author><pubDate>Tue, 06 Sep 2005 02:09:00 GMT</pubDate><guid>http://www.blogjava.net/hgq0011/archive/2005/09/06/12184.html</guid><wfw:comment>http://www.blogjava.net/hgq0011/comments/12184.html</wfw:comment><comments>http://www.blogjava.net/hgq0011/archive/2005/09/06/12184.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.blogjava.net/hgq0011/comments/commentRss/12184.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hgq0011/services/trackbacks/12184.html</trackback:ping><description><![CDATA[<P>今天在写程序的时候发现了一个很奇怪的问题“ResultSet can not re-read row data for column”，用google一搜，原来是微软公司的驱动的兼容性不太好。有热心人总结了微软驱动的缺点：<BR>（1）如果采用jdbc-odbc驱动，那么就必须按照查询顺序来一次读取（不论有没有image或text类型）<BR>（2）如果采用微软提供的ms sql server jdbc driver，如果查询语句中，不存在image或text类型字段，那么可以按照无序获取<BR>（3）如果采用微软提供的ms sql server jdbc driver，如果查询语句中，存在image或text类型字段，那么就必须按照顺序读取，否则就会报告Driver]ResultSet can not re-read row data for column之类的错误<BR>（4）如果想不查询语句中有没有image或text类型字段，都可以不按照顺序获取，或重复获取。那么就必须更换驱动，改用第三方的。<BR>　最后，我改用了第三方的驱动。测试成功。</P><img src ="http://www.blogjava.net/hgq0011/aggbug/12184.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hgq0011/" target="_blank">Harryson</a> 2005-09-06 10:09 <a href="http://www.blogjava.net/hgq0011/archive/2005/09/06/12184.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通过jdbc调用存储过程</title><link>http://www.blogjava.net/hgq0011/archive/2005/09/01/11748.html</link><dc:creator>Harryson</dc:creator><author>Harryson</author><pubDate>Thu, 01 Sep 2005 05:59:00 GMT</pubDate><guid>http://www.blogjava.net/hgq0011/archive/2005/09/01/11748.html</guid><wfw:comment>http://www.blogjava.net/hgq0011/comments/11748.html</wfw:comment><comments>http://www.blogjava.net/hgq0011/archive/2005/09/01/11748.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hgq0011/comments/commentRss/11748.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hgq0011/services/trackbacks/11748.html</trackback:ping><description><![CDATA[<FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp; 有进要通过jdbc调用存储过程，来说一下怎样来实现？<BR>　在我见过的有两种情况：<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1）返回一个结果集（ResultSet）。<BR>　　2）返回一个特定的值。<BR>　下面来详细的说明。<BR>　1）返回一个结果集（ResultSet）,这种类似通常的处理结果集<BR>　　　　如果事先就有一个类似如下的procedure 
<DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
<DIV><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">CREATE</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">PROCEDURE</SPAN><SPAN style="COLOR: #000000">&nbsp;getShipQuantity&nbsp;@jsid&nbsp;</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #000000">int</SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">AS</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">SELECT</SPAN><SPAN style="COLOR: #000000">&nbsp;jf_js_id,</SPAN><SPAN style="COLOR: #ff00ff">SUM</SPAN><SPAN style="COLOR: #000000">(jf_ship_quantity)&nbsp;</SPAN><SPAN style="COLOR: #0000ff">AS</SPAN><SPAN style="COLOR: #000000">&nbsp;shipqty&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">FROM</SPAN><SPAN style="COLOR: #000000">&nbsp;tjobsheet_finish&nbsp;f&nbsp;</SPAN><SPAN style="COLOR: #0000ff">WHERE</SPAN><SPAN style="COLOR: #000000">&nbsp;(jf_js_id</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">@jsid)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">GROUP</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">BY</SPAN><SPAN style="COLOR: #000000">&nbsp;jf_js_id</SPAN></DIV></DIV></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT size=2>那么我们将通过如下的代码来调用
<DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
<DIV><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>　　<SPAN style="COLOR: #000000">String&nbsp;sql&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">{&nbsp;call&nbsp;getShipQuantity(?)&nbsp;}</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection&nbsp;con&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;getSession().connection();<FONT style="BACKGROUND-COLOR: #9acd32">//通过hibernate得到的连接<BR></FONT><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResultSet&nbsp;&nbsp;rs&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BigDecimal&nbsp;shipQuantity&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;BigDecimal(</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">);<BR><IMG id=Codehighlighter1_192_580_Open_Image onclick="this.style.display='none'; Codehighlighter1_192_580_Open_Text.style.display='none'; Codehighlighter1_192_580_Closed_Image.style.display='inline'; Codehighlighter1_192_580_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_192_580_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_192_580_Closed_Text.style.display='none'; Codehighlighter1_192_580_Open_Image.style.display='inline'; Codehighlighter1_192_580_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">try</SPAN><SPAN id=Codehighlighter1_192_580_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_192_580_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT style="BACKGROUND-COLOR: #ffff00">CallableStatement&nbsp;cs&nbsp;</FONT></SPAN><SPAN style="COLOR: #000000"><FONT style="BACKGROUND-COLOR: #ffff00">=</FONT></SPAN><SPAN style="COLOR: #000000"><FONT style="BACKGROUND-COLOR: #ffff00">&nbsp;con.prepareCall(sql);<BR></FONT></SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cs.setInt(</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">,jsoId<FONT style="BACKGROUND-COLOR: #9acd32">);//设置输入参数<BR></FONT><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rs&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;cs.executeQuery();//<FONT style="BACKGROUND-COLOR: #9acd32">返回结果集<BR></FONT><IMG id=Codehighlighter1_409_492_Open_Image onclick="this.style.display='none'; Codehighlighter1_409_492_Open_Text.style.display='none'; Codehighlighter1_409_492_Closed_Image.style.display='inline'; Codehighlighter1_409_492_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_409_492_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_409_492_Closed_Text.style.display='none'; Codehighlighter1_409_492_Open_Image.style.display='inline'; Codehighlighter1_409_492_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(rs.next())</SPAN><SPAN id=Codehighlighter1_409_492_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_409_492_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shipQuantity&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;BigDecimal(rs.getDouble(</SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">));<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logger.debug(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">shipQuantity&nbsp;---------------------&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">shipQuantity);<BR><IMG id=Codehighlighter1_599_638_Open_Image onclick="this.style.display='none'; Codehighlighter1_599_638_Open_Text.style.display='none'; Codehighlighter1_599_638_Closed_Image.style.display='inline'; Codehighlighter1_599_638_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_599_638_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_599_638_Closed_Text.style.display='none'; Codehighlighter1_599_638_Open_Image.style.display='inline'; Codehighlighter1_599_638_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #0000ff">catch</SPAN><SPAN style="COLOR: #000000">(Exception&nbsp;e)</SPAN><SPAN id=Codehighlighter1_599_638_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_599_638_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logger.debug(e);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN></DIV></DIV></FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT size=2>2）返回一个特定的值。也就是说，在procedure的定义中已经用output输出参数了。请看下面的proceduer<BR>
<DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
<DIV><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">create</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">procedure</SPAN><SPAN style="COLOR: #000000">&nbsp;getSingleWgt&nbsp;@@singleWgt&nbsp;numeric(</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">8</SPAN><SPAN style="COLOR: #000000">,</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">3</SPAN><SPAN style="COLOR: #000000">)&nbsp;<FONT style="BACKGROUND-COLOR: #ffff00">output</FONT>,@jsnum&nbsp;</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #000000">varchar</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">11</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #ff0000">'</SPAN><SPAN style="COLOR: #ff0000">0000-0480</SPAN><SPAN style="COLOR: #ff0000">'</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">as</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">declare</SPAN><SPAN style="COLOR: #000000">&nbsp;@stwgt&nbsp;numeric(</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">8</SPAN><SPAN style="COLOR: #000000">,</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">3</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">select</SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;@stwgt&nbsp;</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #ff00ff">sum</SPAN><SPAN style="COLOR: #000000">(b.stwgt)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">from</SPAN><SPAN style="COLOR: #000000">&nbsp;js&nbsp;</SPAN><SPAN style="COLOR: #0000ff">as</SPAN><SPAN style="COLOR: #000000">&nbsp;a<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">inner</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">join</SPAN><SPAN style="COLOR: #000000">&nbsp;jsactdtl&nbsp;</SPAN><SPAN style="COLOR: #0000ff">as</SPAN><SPAN style="COLOR: #000000">&nbsp;b&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">on</SPAN><SPAN style="COLOR: #000000">&nbsp;a.jsnum&nbsp;</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">&nbsp;b.jsnum<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">where</SPAN><SPAN style="COLOR: #000000">&nbsp;a.completion&nbsp;</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">1</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #808080">and</SPAN><SPAN style="COLOR: #000000">&nbsp;b.stflag&nbsp;</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">22</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #808080">and</SPAN><SPAN style="COLOR: #000000">&nbsp;a.jsnum&nbsp;</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">&nbsp;@jsnum<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">select</SPAN><SPAN style="COLOR: #000000">&nbsp;@@singleWgt&nbsp;</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">&nbsp;(@stwgt</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">orderedqty)&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">from</SPAN><SPAN style="COLOR: #000000">&nbsp;js&nbsp;</SPAN><SPAN style="COLOR: #0000ff">where</SPAN><SPAN style="COLOR: #000000">&nbsp;jsnum&nbsp;</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">&nbsp;@jsnum</SPAN></DIV></DIV><BR></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2>那么我们将通过如下的代码来调用<BR>
<DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
<DIV><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">String&nbsp;sql&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">{&nbsp;call&nbsp;getSingleWgt(?,?)&nbsp;}</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>Connection&nbsp;con&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;getSession().connection();</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">得到connection</SPAN><SPAN style="COLOR: #008000"><BR><IMG id=Codehighlighter1_104_353_Open_Image onclick="this.style.display='none'; Codehighlighter1_104_353_Open_Text.style.display='none'; Codehighlighter1_104_353_Closed_Image.style.display='inline'; Codehighlighter1_104_353_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_104_353_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_104_353_Closed_Text.style.display='none'; Codehighlighter1_104_353_Open_Image.style.display='inline'; Codehighlighter1_104_353_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">try</SPAN><SPAN id=Codehighlighter1_104_353_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_104_353_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CallableStatement&nbsp;cs&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;con.prepareCall(sql);</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">通过它来执行sql</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;cs.registerOutParameter(</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">,java.sql.Types.FLOAT);</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">注册输出参数</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;cs.setString(</SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">,shipment.getJsnum());</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">指出输入参数</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<BR><IMG id=Codehighlighter1_302_351_Open_Image onclick="this.style.display='none'; Codehighlighter1_302_351_Open_Text.style.display='none'; Codehighlighter1_302_351_Closed_Image.style.display='inline'; Codehighlighter1_302_351_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_302_351_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_302_351_Closed_Text.style.display='none'; Codehighlighter1_302_351_Open_Image.style.display='inline'; Codehighlighter1_302_351_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(cs.execute())</SPAN><SPAN id=Codehighlighter1_302_351_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_302_351_Open_Text><SPAN style="COLOR: #000000">{</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">执行</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">float</SPAN><SPAN style="COLOR: #000000">&nbsp;output&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;cs.getFloat(</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">);</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">返回值&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG id=Codehighlighter1_372_395_Open_Image onclick="this.style.display='none'; Codehighlighter1_372_395_Open_Text.style.display='none'; Codehighlighter1_372_395_Closed_Image.style.display='inline'; Codehighlighter1_372_395_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_372_395_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_372_395_Closed_Text.style.display='none'; Codehighlighter1_372_395_Open_Image.style.display='inline'; Codehighlighter1_372_395_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top>}</SPAN></SPAN><SPAN style="COLOR: #0000ff">catch</SPAN><SPAN style="COLOR: #000000">(Exception&nbsp;e)</SPAN><SPAN id=Codehighlighter1_372_395_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_372_395_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;logger.debug(e);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV></DIV></FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img src ="http://www.blogjava.net/hgq0011/aggbug/11748.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hgq0011/" target="_blank">Harryson</a> 2005-09-01 13:59 <a href="http://www.blogjava.net/hgq0011/archive/2005/09/01/11748.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>