Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » MobiLink - 入门 » MobiLink 教程 » 教程:直接行处理简介 » 第 3 课:为处理直接行处理编写 Java 或 .NET 逻辑

 

完整的 MobiLinkOrders 列表 (Java)

以下是适用于 Java 直接行处理的完整的 MobiLinkOrders 列表。有关分步说明,请参见第 3 课:为处理直接行处理编写 Java 或 .NET 逻辑

import ianywhere.ml.script.*;
import java.io.*;
import java.sql.*;
    
public class MobiLinkOrders {
    
    // class level DBConnectionContext
    DBConnectionContext _cc;
        
    // java objects for file i/o
    FileWriter my_writer;
    BufferedReader my_reader;
    public MobiLinkOrders( DBConnectionContext cc )
        throws IOException, FileNotFoundException
    {
        // declare a class-level DBConnectionContext
        _cc = cc; 
    }
    
    public void writeOrderComment( int _commentID, int _orderID, String _comments ) 
        throws IOException
    {
        if (my_writer == null)
            // a FileWriter for writing order comments
            my_writer = new FileWriter( "C:\\MLdirect\\orderComments.txt",true);
              
        // write out the order comments to remoteOrderComments.txt
        my_writer.write(_commentID + "\t" + _orderID + "\t" + _comments);
        my_writer.write( "\n" );
        my_writer.flush();
    }
    
    //  method for the handle_UploadData synchronization event
    public void GetUpload( UploadData ut ) 
        throws SQLException, IOException
    {
        //  get an UploadedTableData for OrderComments
        UploadedTableData orderCommentsTbl = ut.getUploadedTableByName("OrderComments");
         
        // get inserts uploaded by the MobiLink client
        ResultSet insertResultSet = orderCommentsTbl.getInserts();
         
        while ( insertResultSet.next() ) 
        {
            // get order comments
            int _commentID = insertResultSet.getInt("comment_id");
            int _orderID = insertResultSet.getInt("order_id");
            String _specialComments = insertResultSet.getString("order_comment");              
            if (_specialComments != null)
            {
                writeOrderComment(_commentID,_orderID,_specialComments);
            }
        }
        insertResultSet.close();
    }
        
    public void SetDownload() 
        throws SQLException, IOException
    {
        DownloadData download_d = _cc.getDownloadData();
         
        DownloadTableData download_td = download_d.getDownloadTableByName( "OrderComments" );
          
        PreparedStatement update_ps = download_td.getUpsertPreparedStatement();
        // a BufferedReader for reading in responses
        if (my_reader == null)
            my_reader = new BufferedReader(new FileReader( "c:\\MLdirect\\orderResponses.txt"));
          
        // get the next line from orderResponses
        String commentLine;
        commentLine = my_reader.readLine();
          
        // send comment responses down to clients
        while (commentLine != null)
        {
            // get the next line from orderResponses.txt
            String[] response_details = commentLine.split("\t");
            
            if (response_details.length != 3)
            {
                System.err.println("Error reading from orderResponses.txt");
                System.err.println("Error setting direct row handling download");
                return;
            }
            int comment_id = Integer.parseInt(response_details[0]);
            int order_id = Integer.parseInt(response_details[1]);
            String updated_comment = response_details[2];
            
            // set an order comment response in the MobiLink download
            update_ps.setInt(1, comment_id);
            update_ps.setInt(2, order_id);
            update_ps.setString(3, updated_comment);
            update_ps.executeUpdate();
               
            // get next line
            commentLine = my_reader.readLine();
        }
        update_ps.close();
    }
    
    public void EndDownload() 
        throws IOException
    {
        // close i/o resources
        if (my_reader != null) my_reader.close();
        if (my_writer != null) my_writer.close();
    }
}