ADO 教程 (VJ++)

本教程用于新版 ADO/WFC。

ASCimport 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

{

   public static String strConn = "Driver={SQL Server};SERVER=JDO_ODIN;DATABASE=JetQA;UID=testmod;PWD=testmod;";//odbc type conn string

   public static void main(String args[] )

   {

      try

      {

         Connection conn = new Connection();

         Command cmd = new Command();

         Recordset rs = new Recordset();

         int actErrorNum = 0;

         Field fld;

         AdoProperties fldProps;

// 步骤 1—打开连接

         conn.open(strConn);

           

// 步骤 2—创建命令

         cmd.setActiveConnection(conn);

         cmd.setCommandText("SELECT * from authors");

// 步骤 2—将具有源的记录集作为命令对象打开

         rs.setCursorLocation(AdoEnums.CursorLocation.CLIENT);

         rs.setCursorType(AdoEnums.CursorType.DYNAMIC);

         rs.setLockType(AdoEnums.LockType.BATCHOPTIMISTIC);

         rs.open (cmd);

// 步骤 4—操作数据

         fldProps  = rs.getField("au_lname").getProperties();

                           fldProps.getItem("Optimize").setBoolean(true);

         rs.setSort("au_lname");

         rs.setFilter("phone like '415*'");

         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() );

            //将字段的区域代码 415 更改为 779

            fld =  rs.getField("phone");

            strBuf.append( fld.getString());

            strBuf.setCharAt(0, '7');

            strBuf.setCharAt(1, '7');

            strBuf.setCharAt(2,  '9');

            //将字段设置为新值

            fld.setString(strBuf.toString());

            rs.moveNext();

         }

// 步骤 5—更新设置的字段值

         conn.beginTrans();

                 //STEP6 Part A: Conclude the Update

         try

         {

            rs.updateBatch();

            conn.commitTrans();

         }

// 步骤 6—结束更新

         catch(com.ms.wfc.data.AdoException ex)

         {

                

           //出现错误,必须回卷事务

            rs.setFilter(new Integer                        (AdoEnums.FilterGroup.CONFLICTINGRECORDS));

            rs.moveFirst();

            while(!rs.getEOF())

            {

               //打印冲突记录

               System.out.println(" Conflict : Name : "+ rs.getField("au_fname").getString() + " " +

                  rs.getField("au_lname").getString() );

               rs.moveNext();

            }

            conn.rollbackTrans();

         }

             System.out.println("type any character to continue...");

         System.in.read();

      }

      catch(Exception ex)

      {

         ex.printStackTrace();

      }

   }

}

VJ++ tutorial 教程到此结束。