0

私はデータベースにいくつかの値を挿入しているこのコードを持っています。無効なカーソル状態の例外が発生します。理由は何でしょうか...最初に、別のテーブルに挿入する必要があるテーブル(Selectステートメント)からいくつかの値を選択しています。ここで2つの挿入操作を行っています。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@page import="java.sql.*"%>
<%@page import="java.util.*"%>
<%@page import="models.app.*"%>
<%-- <%@page import="MyPackage.*;"%> --%>

<%
String id = request.getParameter("employeeidname");
int offshore = Integer.parseInt(request.getParameter("offshorename"));
String email = request.getParameter("emailidname");
String profile = request.getParameter("profilename");
String empname = request.getParameter("employeenamename");
String projectname = request.getParameter("projectname");


/* HandleConnections con = new HandleConnections(); */
Connection con=null;
try{
    String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
Class.forName(driver);

String db = "jdbc:odbc:Practice_Database";
con = DriverManager.getConnection(db,"","");
ResultSet rs=null;
Statement st2 =con.createStatement();
Statement st3 =con.createStatement();
Statement st = con.createStatement();
String sql1="SELECT Project_ID FROM Project_Table WHERE Project_Name = '"+projectname+"'";
rs= st2.executeQuery(sql1);
String sql ="INSERT into Emp_Product_Project_Mapping(Emp_IDFK, Project_IDFK) values('"+id+"',"+rs.getInt("Project_ID")+")";
int j = st3.executeUpdate(sql);
/* conn = con.getConnection(); */

SendMail send = new SendMail();
Generator gen1 = new Generator();
String temp = gen1.gen(8);
send.sendmail("shantanu.tomar@gmail.com", email, temp);

String sql2= "INSERT into Employee_Table(Emp_ID,F_Name,Profile,Offshore,Email,Password) values('"+id+"','"+empname+"','"+profile+"',"+offshore+",'"+email+"','"+temp+"')";
int i = st.executeUpdate(sql2);
if(i==1)
out.println("Values inserted successfully");
}
catch(Exception e){
    System.out.print(e);
    e.printStackTrace();
    }


%>

値を取得しているURLは::です。

http://localhost:8080/2_8_2012/jsp/Addemployeedatabase.jsp?employeeidname=A12&offshorename=2&emailidname=Mayur.Sharma@gmail.com&profilename=GL&employeenamename=Mayur&projectname=INFRASTRUCTURE

例外 ::

[Microsoft][ODBC Driver Manager] Invalid cursor statejava.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid cursor state

::を使用して解決

while(rs.next) to retrieve values from result set... 
4

1 に答える 1

0

文字通り独立したステートメントを同時に実行する場合は、通常は接続プールを介して管理される複数の接続オブジェクトが必要です。

ただし、すべてのドライバーが接続ごとに複数のステートメントをサポートしているわけではないことに注意してください。特に、JDBC-ODBCブリッジです。

于 2012-04-12T07:01:11.383 に答える