これは、ADO/WFC クラスを中心とした、Microsoft Visual J++ でコーディングされた ADO チュートリアルです。このチュートリアルの目的については、「ADO チュートリアル」を参照してください。
import com.ms.wfc.data.*;
/**
* ADOTutorial:
* Purpose: Demonstrates the usage of Ado in Java.
* Opens a recordset through a command object
* and illustrates update within a transaction
*/
public class ADOTutorial
{
//odbc-style connection string
public static String strConn =
"Driver={SQL Server};SERVER=YourServer;DATABASE=Pubs;" +
"UID=testmod;PWD=testmod;";
public static void main(String args[] ) // Tutorial in VJ
{
try
{
Connection conn = new Connection();
Command cmd = new Command();
Recordset rs = new Recordset();
Field fld;
AdoProperties fldProps;
// STEP 1: Open the connection
conn.open(strConn);
// STEP 2: Create a command
cmd.setActiveConnection(conn);
cmd.setCommandText("SELECT * from Authors");
// STEP 3: Open the recordset with the source as a command object
rs.setCursorLocation(AdoEnums.CursorLocation.CLIENT);
rs.setCursorType(AdoEnums.CursorType.DYNAMIC);
rs.setLockType(AdoEnums.LockType.BATCHOPTIMISTIC);
rs.open (cmd);
// STEP 4: Manipulate the data
fldProps = rs.getField("au_lname").getProperties();
fldProps.getItem("Optimize").setBoolean(true);
rs.setSort("au_lname");
rs.setFilter("phone like '415 5*'");
rs.moveFirst();
while ( !rs.getEOF())
{
StringBuffer strBuf = new StringBuffer();
System.out.println( " Name: " +
rs.getField("au_fname").getString() +
" " + rs.getField("au_lname").getString() +
" Phone : " + rs.getField("phone").getString() );
//Change area code 415 to 777.
fld = rs.getField("phone");
strBuf.append( fld.getString());
strBuf.setCharAt(0, '7');
strBuf.setCharAt(1, '7');
strBuf.setCharAt(2, '7');
//set the field to the new value
fld.setString(strBuf.toString());
rs.moveNext();
}
rs.setFilter(new Integer(AdoEnums.FilterGroup.NONE));
// STEP 5: Update the data
conn.beginTrans();
try
{
rs.updateBatch();
// STEP 6 PART A: Conclude the Update - Accept changes
conn.commitTrans();
}
// STEP 6 PART B: Conclude the Update - Reject changes
catch(AdoException ex)
{
rs.setFilter(new Integer
(AdoEnums.FilterGroup.CONFLICTINGRECORDS));
rs.moveFirst();
while(!rs.getEOF())
{
//print conflicting records
System.out.println("Conflict : Name : " +
rs.getField("au_fname").getString() + " " +
rs.getField("au_lname").getString() );
rs.moveNext();
}
conn.rollbackTrans();
}
rs.close();
conn.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
これで Visual J++ チュートリアルを終了します。