﻿<?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>IT博客-新青年-随笔分类-数据库/Sql Server 2000</title><link>http://www.cnitblog.com/canny/category/6439.html</link><description>放飞梦想 持续优化 追求完美</description><language>zh-cn</language><lastBuildDate>Mon, 26 Sep 2011 13:57:26 GMT</lastBuildDate><pubDate>Mon, 26 Sep 2011 13:57:26 GMT</pubDate><ttl>60</ttl><item><title>ResultSet can not re-read row data for column X的解决方法</title><link>http://www.cnitblog.com/canny/archive/2007/11/08/36013.html</link><dc:creator>新青年</dc:creator><author>新青年</author><pubDate>Thu, 08 Nov 2007 08:10:00 GMT</pubDate><guid>http://www.cnitblog.com/canny/archive/2007/11/08/36013.html</guid><wfw:comment>http://www.cnitblog.com/canny/comments/36013.html</wfw:comment><comments>http://www.cnitblog.com/canny/archive/2007/11/08/36013.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/canny/comments/commentRss/36013.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/canny/services/trackbacks/36013.html</trackback:ping><description><![CDATA[<p>昨晚，在做Jsp分页调试时，发生一个没有见过的错误：ResultSet can not re-read row data for column 2，由于是第一次碰到，所以百度一下，很快找到了解决方法。</p> <p>这是网上热心人总结的微软驱动的缺点及解决方案：</p> <p><strong><font color="#0000ff">（1）如果采用jdbc-odbc驱动，那么就必须按照查询顺序来一次读取（不论有没有image或text类型）</font></strong></p> <p><strong><font color="#0000ff">（2）如果采用微软提供的ms sql server jdbc driver，如果查询语句中，不存在image或text类型字段，那么可以按照无序获取</font></strong></p> <p><strong><font color="#0000ff">（3）如果采用微软提供的ms sql server jdbc driver，如果查询语句中，存在image或text类型字段，那么就必须按照顺序读取，否则就会报告Driver]ResultSet can not re-read row data for column之类的错误</font></strong></p> <p><strong><font color="#0000ff">（4）如果想不查询语句中有没有image或text类型字段，都可以不按照顺序获取，或重复获取。</font></strong></p> <p>Microsoft support也提供了相关网页：<a title="http://support.microsoft.com/kb/824106" href="http://support.microsoft.com/kb/824106">http://support.microsoft.com/kb/824106</a>描述这个问题.当然使用Sql Server 2000的第三方驱动就没有这样的问题存在。我从 网上找到jTDS取代微软的SQLServer2000的JDBC驱动，希望对大家有帮助：</p> <p>要使用jTDS驱动，配置要做一些变动： <p>数据库URL：jdbc:jtds:sqlserver://localhost:1433;DatabaseName=XXX <p>驱动类：net.sourceforge.jtds.jdbc.Driver <p>其在sourceforge上的介绍中写到： <p>Open source pure Java JDBC 2.1 driver for the Microsoft SQL Server series (6.5, 7.0 and 2000). jTDS is the fastest JDBC driver for MSSQL Server and is a complete implementation of the JDBC spec. <p>目前最新版本是0.8rc1 <p>项目页：<a href="http://sourceforge.net/projects/jtds/"><u>http://sourceforge.net/projects/jtds/</u></a> <p>=====================</p> <p>原来，我的代码中在处理同一个ResultSet结果集的时候，竟然出现了rs.getString(2)两次，这样就出现了重复读取问题，发生can not re-read column 2的错误提示。按照上面的解决方案，只要按次序读取，不重复读取就行了！</p><img src ="http://www.cnitblog.com/canny/aggbug/36013.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/canny/" target="_blank">新青年</a> 2007-11-08 16:10 <a href="http://www.cnitblog.com/canny/archive/2007/11/08/36013.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]JSP使用SqlServer存储过程</title><link>http://www.cnitblog.com/canny/archive/2007/10/27/35462.html</link><dc:creator>新青年</dc:creator><author>新青年</author><pubDate>Sat, 27 Oct 2007 08:05:00 GMT</pubDate><guid>http://www.cnitblog.com/canny/archive/2007/10/27/35462.html</guid><wfw:comment>http://www.cnitblog.com/canny/comments/35462.html</wfw:comment><comments>http://www.cnitblog.com/canny/archive/2007/10/27/35462.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/canny/comments/commentRss/35462.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/canny/services/trackbacks/35462.html</trackback:ping><description><![CDATA[<p><strong>1、过储过程的标准使用方法：</strong><br>可实现存储过程中的各种功能，和最简方法相比，它可以<strong>得到out参数和过程返回值</strong>。<br>？就是参数的占位符，一个问号代表有一个参数。  <p>String&nbsp;&nbsp;&nbsp;&nbsp; proc&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp;&nbsp;&nbsp; "{call&nbsp;&nbsp;&nbsp;&nbsp; procname&nbsp;&nbsp;&nbsp;&nbsp; (?,?)}";<br>CallableStatement&nbsp;&nbsp;&nbsp;&nbsp; stat&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp;&nbsp;&nbsp; con.prepareCall(proc);<br>//第一个参数为in的话<br>stat.setString(1,'paravalue');//设置参数值<br>//第二个参数作out的话<br>stat.registerOutParameter(1,java.sql.Types.VARCHAR);//设置参数类型<br>stat.execute();<br>String&nbsp;&nbsp;&nbsp;&nbsp; paraValue&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp;&nbsp;&nbsp; stat.getString(2);//得到out参数值  <p>例如：  <p>&lt;<a href="mailto:%@page">%@page</a> import="java.sql.*"%&gt;<br>&lt;<a href="mailto:%@page">%@page</a> import="java.text.*"%&gt;<br>&lt;<a href="mailto:%@page">%@page</a> contentType="text/html;charset=GB2312"%&gt;<br>&lt;<a href="mailto:%@include">%@include</a> file="opendata.jsp"%&gt;  <p>&lt;%<br>String strSQL = "{call pdrivertotal(?,?)}";<br>CallableStatement stmt = con.prepareCall(strSQL); <br>stmt.setString(1,"2005-08-20");<br>stmt.setString(2,"2005-10-01");<br>stmt.execute();  <p>%&gt;  <p><strong>2、存储过程的最简写法：</strong>  <p>思路：将过程当作普通的sql语句去执行，也就是和查询、更新的写法是一样。可实现执行过程并且得到相关的数据集，但它<strong>不能得到过程的out输出参数</strong>，开发中90%的情况下皆适用。  <p>String&nbsp;&nbsp;&nbsp;&nbsp; proc&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp;&nbsp;&nbsp; "exec&nbsp;&nbsp;&nbsp; 过程名 "+参数1+","+参数2;<br>Statement&nbsp;&nbsp;&nbsp;&nbsp; stat&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp;&nbsp;&nbsp; con.createStatement();<br>ResultSet&nbsp;&nbsp;&nbsp;&nbsp; rs&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp;&nbsp;&nbsp; stat.executeQuery(proc);  <p>例如：  <p><strong>//在JSP中使用</strong>  <p>&lt;%  <p>Statement&nbsp;&nbsp;&nbsp;&nbsp; stat&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp;&nbsp;&nbsp; con.createStatement();<br>ResultSet&nbsp;&nbsp;&nbsp;&nbsp; rs&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp;&nbsp;&nbsp; stat.executeQuery("zyfproc 20 '姓名'");<br>//zyfproc为存储过程名 20为int型参数，姓名为varchar类参数<br>%&gt;  <p><strong>//在使用了jstl标签的jsp中使用</strong>  <p>&lt;!--执行存储过程--&gt;<br>&lt;sql:update var="proc" sql="exec jproc ?,?" dataSource="${ds}"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;sql:param value="${param.hid}"/&gt;<br>&lt;sql:param value="${param.hid}"/&gt;<br>&lt;/sql:update&gt;  <p>来自：<a href="http://www.zuoyefeng.com/html/2007-02/543.htm">http://www.zuoyefeng.com/html/2007-02/543.htm</a></p><img src ="http://www.cnitblog.com/canny/aggbug/35462.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/canny/" target="_blank">新青年</a> 2007-10-27 16:05 <a href="http://www.cnitblog.com/canny/archive/2007/10/27/35462.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Sql Server 2000使用系统存储过程sp_rename修改表名或列名</title><link>http://www.cnitblog.com/canny/archive/2007/10/27/35448.html</link><dc:creator>新青年</dc:creator><author>新青年</author><pubDate>Sat, 27 Oct 2007 05:02:00 GMT</pubDate><guid>http://www.cnitblog.com/canny/archive/2007/10/27/35448.html</guid><wfw:comment>http://www.cnitblog.com/canny/comments/35448.html</wfw:comment><comments>http://www.cnitblog.com/canny/archive/2007/10/27/35448.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/canny/comments/commentRss/35448.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/canny/services/trackbacks/35448.html</trackback:ping><description><![CDATA[<p></p> <p>A. &nbsp; 重命名表&nbsp;&nbsp;&nbsp;<br>&nbsp; 将表&nbsp;&nbsp;&nbsp;oldTableName&nbsp; 重命名为&nbsp;&nbsp;newTableName ：<br>&nbsp; EXEC &nbsp; sp_rename &nbsp; 'oldTableName', &nbsp; 'newTableName'&nbsp;&nbsp;&nbsp;<br>&nbsp;</p> <p>B. &nbsp; 重命名列&nbsp;&nbsp;&nbsp;<br>&nbsp; 将表&nbsp;&nbsp;&nbsp;table1&nbsp; 中的列&nbsp;&nbsp;&nbsp;oldName&nbsp; 重命名为&nbsp;&nbsp; newName。 &nbsp; <br>&nbsp; EXEC &nbsp; sp_rename &nbsp; 'table1.oldName', &nbsp; 'newName', &nbsp; 'COLUMN'&nbsp;&nbsp;</p> <p>注意：newName前面不用加上table1 </p> <p>sp_name这个系统的存储过程，public的用户都能够执行！</p> <p></p> <p>以上资料是从网上搜集后按照个人理解修改的 </p><img src ="http://www.cnitblog.com/canny/aggbug/35448.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/canny/" target="_blank">新青年</a> 2007-10-27 13:02 <a href="http://www.cnitblog.com/canny/archive/2007/10/27/35448.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>