freetds AT lists.ibiblio.org
Subject: FreeTDS Development Group
List archive
- From: "Martin Fibiger" <martin.fibiger AT 1pf.cz>
- To: freetds AT franklin.oit.unc.edu
- Subject: transactions and freetds
- Date: Sun, 22 Apr 2001 10:03:39 -0400
Hello all,
we are evaluating the free tds jdbc driver. As we have jdk 3.0 we tried
the snapshot version freetdsjdbcsnapshot.jar2_0 and we have problem with
transactions against MS SQL server..
We tried command connection.setAutoCommit(false) and after first update
command it hangs. Does the driver supports transactions or do we something
wrong?
see my code below
thanx for any answer
Martin Fibiger
-------------------------------------
package mujbalik;
import java.sql.*;
public class TransactionPairs {
public static void main(String args[]) {
Connection con = null;
Statement stmt;
PreparedStatement updateSales;
PreparedStatement updateTotal;
String updateString = "update COFFEES " +
"set SALES = ? where
COF_NAME like ?";
String updateStatement = "update COFFEES " +
"set TOTAL = TOTAL + ? where COF_NAME like
?";
String query = "select COF_NAME, SALES, TOTAL from
COFFEES";
try {
Class.forName("com.internetcds.jdbc.tds.Driver");
} catch(java.lang.ClassNotFoundException e) {
System.err.print("ClassNotFoundException: ");
System.err.println(e.getMessage());
}
try {
con =
DriverManager.getConnection("jdbc:freetds:sqlserver://challenger:1433/test",
"NEW", "");
updateSales = con.prepareStatement(updateString);
updateTotal =
con.prepareStatement(updateStatement);
int [] salesForWeek = {175, 150, 60, 155, 90};
String [] coffees = {"Colombian", "French_Roast",
"Espresso", "Colombian_Decaf",
"French_Roast_Decaf"};
int len = coffees.length;
con.setAutoCommit(false);
for (int i = 0; i < len; i++) {
updateSales.setInt(1, salesForWeek[i]);
updateSales.setString(2, coffees[i]);
updateSales.executeUpdate();
updateTotal.setInt(1, salesForWeek[i]);
updateTotal.setString(2, coffees[i]);
updateTotal.executeUpdate();
con.commit();
}
con.setAutoCommit(true);
updateSales.close();
updateTotal.close();
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
String c = rs.getString("COF_NAME");
int s = rs.getInt("SALES");
int t = rs.getInt("TOTAL");
System.out.println(c + " " + s + "
" + t);
}
stmt.close();
con.close();
} catch(SQLException ex) {
System.err.println("SQLException: " +
ex.getMessage());
if (con != null) {
try {
System.err.print("Transaction is
being ");
System.err.println("rolled back");
con.rollback();
} catch(SQLException excep) {
System.err.print("SQLException:
");
System.err.println(excep.getMessage());
}
}
}
}
}
-
transactions and freetds,
Martin Fibiger, 04/22/2001
- <Possible follow-up(s)>
- Re: transactions and freetds, Curt Hagenlocher, 04/22/2001
Archive powered by MHonArc 2.6.24.