[Microsoft][ODBC SQL Server Driver]连接占线导致另一个 hstmt

这是一个登陆的程序,可是运行程序的时候就出现连接占线的错误(这一行:int set = prest.executeUpdate();)。。。请教高手这是什么原因啊。。。不胜感激
else if(str.equals("login")) {//如果是登录
try{
System.out.println("login");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//连接数据库
Connection c=DriverManager.getConnection("jdbc:odbc:jicq","sa","sa");
String sql="select nickname,password,ip,status,pic,email,info,place,sex from icq where icqno=?";
//准备从数据库选择呢称和密码
PreparedStatement prepare=c.prepareCall(sql);//设定数据库查寻条件
String icqno=in.readLine();
int g=Integer.parseInt(icqno);//取得输入的jicq号码
System.out.println("the icpno login:"+icqno);
String passwd=in.readLine().trim();//取得输入的密码
System.out.println("the password received:"+passwd);
prepare.clearParameters();
prepare.setInt(1,g);//设定参数
ResultSet r=prepare.executeQuery();//执行数据库查寻
if(r.next()){//以下比较输入的号码于密码是否相同
String pass = r.getString("password").trim();
System.out.println("the password from database:" + pass);
//如果相同就告诉客户ok
//并且更新数据库用户为在线

//以及注册用户的ip 地址
if(passwd.regionMatches(0,pass,0,pass.length()))
{
//if (passwd.equals(pass)) {
System.out.println("password matched successfully");
//out.println("ok");
// System.out.println("send 'OK' to client");
//*************register ipaddress
String setip = "update icq set ip=? where icqno=?";
PreparedStatement prest = c.prepareCall(setip);
prest.clearParameters();
prest.setString(1, socket.getInetAddress().getHostAddress());
prest.setInt(2, g); //g为取得输入的jicq号码
int set = prest.executeUpdate();//程序走到这个地方就已经出现了占线(hstmt)错误

System.out.println("update IP Status:"+set);
由于字数的限制,只能先贴这么多了,如果这些不够可以留下联系方式把全部代码发给你。。。,
急。。。。
如能解决不胜感激

Sql Server连接方式不支持MARS这个特性,就是一个连接可以跑多个select
主要的原因可能是你select之后没有释放,不能执行那么多的select

PHP中,如下:
$DB1 = new PDO("odbc:Driver={SQL Native Client};Server=$dbhost;Database=$dbname;MARS_Connection=yes", $dbuser, $dbpass);
$DB2 = new PDO("odbc:Driver={SQL Server};Server=$dbhost;Database=$dbname;MARS_Connection=yes", $dbuser, $dbpass);
如果采用$DB2 的连接方式,当一个连接没有释放,然后执行另一个查询的时候,也会出现连接占线的错误
温馨提示:内容为网友见解,仅供参考
无其他回答

[Microsoft][ODBC SQL Server Driver]连接占线导致另一个 hstmt
Sql Server连接方式不支持MARS这个特性,就是一个连接可以跑多个select 主要的原因可能是你select之后没有释放,不能执行那么多的select PHP中,如下:DB1 = new PDO("odbc:Driver={SQL Native Client};Server=$dbhost;Database=$dbname;MARS_Connection=yes", $dbuser, $dbpass);DB2 = new PDO("o...

...SQL Server Driver]连接占线导致另一个hstmt ’ 怎么解决
楼主肯定是执行多个查询语句(比如select)的时候没有释放,就去执行下一个了,释放下,就可以,比如 rs.close

如何解决 连接占线导致另一个 hstmt
用JDBC:ODBC式连接SQLSERVER特问题建议要使用JDBC:ODBC式连接定要用JDBC:ODBC式连接获取连接应连接自提交属性设false 避免错误

sql2012连接占线导致另一个hstmt(学生成绩管理系统修改密码界面的问题...
这是用JDBC:ODBC方式连接SQLSERVER时特有的问题,建议不要使用JDBC:ODBC方式连接。如果一定要用JDBC:ODBC方式连接的话,在获取连接后应将连接的自动提交属性设为false。这样就可避免这个错误了。

unknown so8tware,exception 0x40000015
javax.servlet.ServletException: [Microsoft][ODBC SQL Server Driver]连接占线导致另一个 hstmt org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858)org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)org.apache.jsp.admin.question...

相似回答