关于在原数据基础上添加数据再返还数据库时出现的问题 求救各位高手 69分

serron 2001-11-29 07:50:44
写了一段代码,主要作用是
根据idnumber找到数据库中的一个元组
先取出字段(feedback)中的内容,然后添上新的内容(从上一个页面取得)
合成一个String,然后将起写入数据库的feedback字段
先前用ACCESS时一切都很正常
可是换了SQL server后就出现
[Microsoft][ODBC SQL Server Driver][SQL Server]??????? 10110 ????????????? 8060?
请高手指点

try
{
pool.initializePool();
con=pool.getConnection();
Statement statement =con.createStatement();
String sql="select * from stufeedback where idnumber="+idnumber+";";
ResultSet rs=statement.executeQuery(sql);
String beforestr="";
String beforestr2="";
while (rs.next())
{
beforestr2=rs.getString("feedback");
}
if (beforestr2==null)
beforestr="";
else
beforestr=beforestr2;
String feedbackstr1="
"+myutil.gbToUnicode(request.getParameter("feedback"))+myutil.gbToUnicode(feedbackmanname)+"
"+"beforestr";
String feedbackstr=replace(feedbackstr1,"\n","
");
String sql2="update stufeedback set feedback= ? where idnumber="+idnum+";";
PreparedStatement pstmt = con.prepareStatement(sql2);
pstmt.setString(1,feedbackstr);
pstmt.executeUpdate();
pstmt.close();
rs.close();
pool.releaseConnection(con);
}

...全文
131 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ycats 2001-11-30
建议:
你用JavaBean封装各种功能,Jsp只用来显示。
用各种IDE工具调试JavaBean。
回复
serron 2001-11-30

谢谢 ycats(加菲猫)
等会回去测试,晚上过来给你们加分

另外附带问一句:
你们是用什么测试程序的
我每次出错都是????
错了什么地方都不知道
就上面这个问题那个????10110折腾了我一天
一条条测试语句才知道是varchar 12与5000那里的问题

回复
ycats 2001-11-30
//这是我用的一个例子,但你还要注意中文问题。JDBC1.0只能用setAsciiStream()方法。你看看statement的API doc
byte[] textbyte = pageToSave.getMainContent().getBytes();
bis = new java.io.ByteArrayInputStream(textbyte);
dis = new java.io.DataInputStream(bis);
insertNewsPageSTMT.setAsciiStream(6, dis, textbyte.length);
insertNewsPageSTMT.execute();
回复
serron 2001-11-30
to  ycats(加菲猫) 
我不太会用流
那要怎么改啊,能具体讲下吗

另外:我有一次也曾经成功过,有且仅有一次
回复
dongbin 2001-11-30
字段值超长
回复
ycats 2001-11-30
就我用jdbc-ODBC操作SQL server的经验,长度超过255的字串用setString(),会有问题。最好用流。
回复
serron 2001-11-30
为什么会这样呢?
昨天做了个实验
当我向directionto(varchar 12)写数据时就没有问题
可是向feedback(varchar 5000)写数据就出现了上述错误。
怎么解决啊
好急

<%@ page errorPage="errpage.jsp" contentType="text/html;chatset=gb2312" import="myutil,java.util.*,java.sql.*" %>
<jsp:useBean id="pool" scope="page" class="PoolBean" />

<%
String idnumber="7";
String feedbackstr="a";
Connection con =null;
try
{
pool.initializePool();
con=pool.getConnection();
String sql="update stufeedback set feedback= ? where idnumber="+idnumber+";";
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setString(1,feedbackstr);

pstmt.executeUpdate();
pstmt.close();
pool.releaseConnection(con);
}
catch (Exception e)
{
out.println(e.getMessage());
}
%>
回复
ycats 2001-11-30
SQLState=11010 用户没有写入该列的权限。
根据错误信息是这样噢!
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2001-11-29 07:50
社区公告
暂无公告