关于在原数据基础上添加数据再返还数据库时出现的问题 求救各位高手 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);
}

...全文
165 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
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 用户没有写入该列的权限。
根据错误信息是这样噢!

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧