Dobry den,
byl bych velice vdecen za radu jelikoz uz nevim co stim.
Mam cvs soubor, ze ktereho dostavam jazykove verze a ty ukladam do databaze (
DB2 )
kazdy zaznam v souboru ma svoje id. Ja ty zaznamy vypisuji cyklem a v tom cyklu
volam nize uvedeny kod, ktery overi jestli existuje nejaky zaznam s konkretnim
id uz v databazi a pokud ano, tak jej smaze a nasledne vlozi jazykove verze.
Problem mam prave v casti ktera zjistuje jestli nejaky uz existuje a kdyztak jej
maze. Porad at to zkousim jak chci, pokud zaznam existuje dostavam error:
java.sql.SQLException: Cursor state not valid.
A nevim co stim.
Omlouvam se za lama dotaz. Je mi jasny, ze chyba je mezi zidli a klavesnici.
Predem diky za radu.
Class.forName("com.ibm.as400.access.AS400JDBCDriver");
// register driver
java.sql.DriverManager.registerDriver (new
com.ibm.as400.access.AS400JDBCDriver());
// create connection
Connection con = DriverManager.getConnection("jdbc:as400/ip", "user", "pass");
// create statement
Statement statement = con.createStatement();
// enable making safety query
statement.setEscapeProcessing(true);
// check if some item with current id exist in table
ResultSet r = statement.executeQuery("SELECT COUNT(text_id) AS c FROM
LIB.HTML_TEXT WHERE text_id='" + id + "'");
// if item is exist remove it
while ( r.next() )
{
if ( Integer.parseInt(r.getString("c")) > 0 )
{
statement.execute("DELETE FROM LIB.HTML_TEXT WHERE text_id='" + id + "'
");
}
}
// crete query for german version
String sql1 = "INSERT INTO LIB.HTML_TEXT (text_id, text_language, html_text,
app_s) " + "VALUES ('"+id+"', 'GER', '"+ger+"', 1)";
// create query for english version
String sql2 = "INSERT INTO LIB.HTML_TEXT (text_id, text_language, html_text,
app_s) " + "VALUES ('"+id+"', 'EN', '"+en+"', 1)";
// create query for french version
String sql3 = "INSERT INTO LIB.HTML_TEXT (text_id, text_language, html_text,
app_s) " + "VALUES ('"+id+"', 'FR', '"+fr+"', 1)";
//execute queries and dump messages
if ( statement.execute(sql1) == true )
{
System.out.println(id + " sql1 item has been inserted");
}
if ( statement.execute(sql2) == true )
{
System.out.println(id + " sql2 item has been inserted");
}
if ( statement.execute(sql3) == true )
{
System.out.println(id + " sql3 item has been inserted");
}
con.close();
Zdenek Kasparek
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.