连接占线导致另一个 hstmt ???????????????????

sandy91 2003-10-17 09:51:23
程序的功能是要完成数据的更新:
从文本读一批记录到数据库中,先读出某个字段与数据库中对应的字段进行比较,如果存在相同的则将这条记录更新到数据库中
报错:
java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]连接占线导致另一个 hstmt
而且没有实现循环更新啊!!!
代码:
while (rs.next())//如果存在相同号,则设置更新的SQL语句
{
//out.println("hahhahah");
ResultSetMetaData rsmd=rs.getMetaData();
int in=0;
String s="";
for(int i=0;i<id.length;i++)
{
int intId = Integer.parseInt(id[i]);
String base_col=rsmd.getColumnName(intId);//取出数据库中的字段的名称
//out.println(base_col);
sqld = ""+base_col+"= '"+array[intId-1]+"'"+",";
//out.println(sqld);
s=s+sqld;

//out.println(sql_min);
}
s=s.substring(0,s.length()-1);

sql_col="UPDATE client SET "+s+"where insur_code='"+ins_code+"'";
//out.println(sql_col);
pstmt = con.prepareStatement(sql_col);

pstmt.executeUpdate();

}
...全文
170 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sandy91 2003-10-20
  • 打赏
  • 举报
回复
占线问题已经解决,现在是循环不能解决啊!!!就是要读完文本中所有要更新的记录不能实现
TonyTonyQ 2003-10-20
  • 打赏
  • 举报
回复
出现连接占线是因为某个Connection所创建的Statement在执行完sql语句后没有close(),而你又用这个Connection创建另一个Statement,并且用它执行sql。
sandy91 2003-10-20
  • 打赏
  • 举报
回复
占线问题已经解决,现在是循环不能解决啊!!!就是要读完文本中所有要更新的记录不能实现
kevinfang 2003-10-17
  • 打赏
  • 举报
回复
你可以使用2个不同的connection 对象,2个不同的prepareStatement对象
应该就可以解决问题了
flymoods 2003-10-17
  • 打赏
  • 举报
回复
我帮你看看,好像不是上面的原因,
好象是rs美关掉,又打开一个rs
flymoods 2003-10-17
  • 打赏
  • 举报
回复
while (rs.next())//如果存在相同号,则设置更新的SQL语句
{
//out.println("hahhahah");
ResultSetMetaData rsmd=rs.getMetaData();
int in=0;
String s="";
for(int i=0;i<id.length;i++)
{
int intId = Integer.parseInt(id[i]);
String base_col=rsmd.getColumnName(intId);//取出数据库中的字段的名称
//out.println(base_col);
sqld = ""+base_col+"= '"+array[intId-1]+"'"+",";
//out.println(sqld);
s=s+sqld;

//out.println(sql_min);
}
s=s.substring(0,s.length()-1);

sql_col="UPDATE client SET "+s+"where insur_code='"+ins_code+"'";
//out.println(sql_col);
pstmt = con.prepareStatement(sql_col);

pstmt.executeUpdate();
pstmt.close();
pstmt=null;

}

sandy91 2003-10-17
  • 打赏
  • 举报
回复
真的很着急!!!
Eraserpro 2003-10-17
  • 打赏
  • 举报
回复
你可以使用2个不同的connection 对象,2个不同的prepareStatement对象
应该就可以解决问题了

支持!
检查看看你的con.prepareStatement(sql_col);和rs是不是用的同一个Connection
sandy91 2003-10-17
  • 打赏
  • 举报
回复
为什么循环也实现不了呢
sandy91 2003-10-17
  • 打赏
  • 举报
回复
还是不行啊!!!!

81,091

社区成员

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

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