此頁(yè)沒有內(nèi)容條目
內(nèi)容

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—?jiǎng)?chuàng)建命令

         cmd.setActiveConnection(conn);

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

// 步驟 2—將具有源的記錄集作為命令對(duì)象打開

         rs.setCursorLocation(AdoEnums.CursorLocation.CLIENT);

         rs.setCursorType(AdoEnums.CursorType.DYNAMIC);

         rs.setLockType(AdoEnums.LockType.BATCHOPTIMISTIC);

         rs.open (cmd);

// 步驟 4—操作數(shù)據(jù)

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

            //將字段的區(qū)域代碼 415 更改為 779

            fld =  rs.getField("phone");

            strBuf.append( fld.getString());

            strBuf.setCharAt(0, '7');

            strBuf.setCharAt(1, '7');

            strBuf.setCharAt(2,  '9');

            //將字段設(shè)置為新值

            fld.setString(strBuf.toString());

            rs.moveNext();

         }

// 步驟 5—更新設(shè)置的字段值

         conn.beginTrans();

                 //STEP6 Part A: Conclude the Update

         try

         {

            rs.updateBatch();

            conn.commitTrans();

         }

// 步驟 6—結(jié)束更新

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

         {

                

           //出現(xiàn)錯(cuò)誤,必須回卷事務(wù)

            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 教程到此結(jié)束。