Skip to Content.
Sympa Menu

freetds - transactions and freetds

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • 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());
}
}
}
}
}




Archive powered by MHonArc 2.6.24.

Top of Page