home *** CD-ROM | disk | FTP | other *** search
/ Cricao de Sites - 650 Layouts Prontos / WebMasters.iso / Servidores / bb98.exe / SOaccess.java < prev    next >
Text File  |  2002-11-09  |  5KB  |  170 lines

  1. //
  2. // The contents of this file are subject to the BadBlue End User License
  3. // Agreement (the "EULA"); you may not use this file except in
  4. // compliance with the EULA.  You may obtain a copy of the EULA at
  5. // http://badblue.com/down.htm .
  6. //
  7. // Software distributed under the EULA is distributed on an "AS IS" basis,
  8. // WITHOUT WARRANTY OF ANY KIND, either express or implied. See the EULA
  9. // for the specific language governing rights and limitations under the
  10. // EULA.
  11. //
  12. // The Initial Developer of this code under the EULA is Working Resources,
  13. // Inc., Atlanta, GA  UNITED STATES.  All Rights Reserved.
  14. //
  15.  
  16. //
  17. package ShareOffice;
  18.  
  19. //
  20. import java.net.*;
  21. import java.io.*;
  22. import ShareOffice.HTTPGet;
  23. import ShareOffice.SOinit;
  24.  
  25. //
  26. public class SOaccess extends SOinit {
  27.     //
  28.     public SOaccess() {
  29.     }
  30.     //    Retrieve Access table or query over specified number of rows.
  31.     //    Inputs:
  32.     //        sAddr: address of BadBlue server (e.g., "127.0.0.1:8080")
  33.     //        sPath: path of shared file in EXT.INI file (e.g., "path3")
  34.     //        sFile: name of Excel file to examine (e.g., "invoice.xls")
  35.     //        sTable: name of table or query to retrieve
  36.     //        nRowStart: row number to start fetching (zero-based counting)
  37.     //        nRows: number of rows to fetch
  38.     //        sUser: (optional) user-name to get access to file
  39.     //        sPassword: (optional) password to get access to file
  40.     //    Outputs:
  41.     //        sData[][]: two-dimensional array returned with data
  42.     //            (if error occurs, array will be 1x1 and contain an
  43.     //             error message)
  44.     //
  45.     public String[][] GetAccessData(
  46.         String        sAddr,
  47.         String        sPath,
  48.         String        sFile,
  49.         String        sTable,
  50.         int            nRowStart,
  51.         int            nRows,
  52.         String        sUser,
  53.         String        sPassword
  54.     ) {
  55.         String[][]    aasData;
  56.         String        sError = "";
  57.         try {
  58.  
  59.             //    General setup.
  60.             //
  61.             int i, j, bOutOfData;
  62.             int nColumns = 255;
  63.             int nCursor, nCursor2, nCursorEOC;
  64.             String sTemp, sVal, sTemp2;
  65.             aasData = new String[nRows][255];
  66.  
  67.             //    Construct the URL and read it.
  68.             //
  69.             String sURL = 
  70.                 "http://"+sAddr+"/ext.dll?MfcISAPICommand=LoadPage&"+
  71.                 "page=mdb.htx&a0=/get/"+sPath+"/"+URLEncoder.encode(sFile, "UTF-8")+
  72.                 "&a1="+URLEncoder.encode(sTable, "UTF-8")+"&a2=V&"+
  73.                 "a3=&a4="+Integer.toString(nRowStart)+
  74.                 "&a8="+Integer.toString(nRows);
  75.             HTTPGet h = new HTTPGet();
  76.             String sPage;
  77.             if (sUser.length() > 0) {
  78.                 sPage = h.Read(sURL, sUser, sPassword);
  79.             } else {
  80.                 sPage = h.Read(sURL);
  81.             }
  82.  
  83.             //    Skip past table name.
  84.             //
  85.             sTemp = "<td class=fXL";
  86.             if ((nCursor = sPage.indexOf(sTemp)) > 0) {
  87.                 sPage = sPage.substring(nCursor + sTemp.length());
  88.             }
  89.  
  90.             //    Rip through multiple rows of data...
  91.             //
  92.             for (i = bOutOfData = 0; i < nRows; i++) {
  93.                 for (j = 0; j < nColumns; j++) {
  94.                     //
  95.                     sTemp = "<td class=fXL";
  96.                     if ((nCursor = sPage.indexOf(sTemp)) < 0) {
  97.                         bOutOfData = 1;
  98.                         break;
  99.                     }
  100.                     //
  101.                     if (j > 0  &&  nColumns == 255) {
  102.                         sTemp2 = "</tr";
  103.                         nCursorEOC = sPage.indexOf(sTemp2);
  104.                         if (nCursorEOC >= 0  &&  nCursorEOC < nCursor) {
  105.                             nColumns = j;
  106.                             break;
  107.                         }
  108.                     }
  109.                     //
  110.                     nCursor += sTemp.length();
  111.                     if ((nCursor = sPage.indexOf(">", nCursor)) < 0) {
  112.                         sError = "Invalid template file (3)";
  113.                         break;
  114.                     }
  115.                     nCursor++;
  116.                     //
  117.                     if (nCursor + 255  >  (nCursor2 = sPage.length())) {
  118.                         nCursor2--;
  119.                     } else {
  120.                         nCursor2 = nCursor + 255;
  121.                     }
  122.                     sVal = sPage.substring(nCursor, nCursor2);
  123.                     if ((nCursor2 = sVal.indexOf("<")) >= 0) {
  124.                         sVal = sVal.substring(0, nCursor2);
  125.                     }
  126.                     //
  127.                     sPage = sPage.substring(nCursor + nCursor2);
  128.                     aasData[i][j] = sVal;
  129.                     //
  130.                     // System.out.println("A["+Integer.toString(i)+"]["+Integer.toString(j)+"]="+sVal);
  131.                 }
  132.                 if (bOutOfData != 0  ||  sError.length() > 0) {
  133.                     break;
  134.                 }
  135.                 sTemp = "</tr";
  136.                 if ((nCursor = sPage.indexOf(sTemp)) < 0) {
  137.                     sError = "Invalid template file (6)";
  138.                     break;
  139.                 }
  140.                 sPage = sPage.substring(nCursor + sTemp.length());
  141.             }
  142.             if (sError.length() > 0) {
  143.                 aasData = new String[1][1];
  144.                 aasData[0][0] = "Error: " + sError;
  145.             }
  146.             return (aasData);
  147.  
  148.         //    ...end SP.
  149.         //
  150.         } catch (StringIndexOutOfBoundsException e) {
  151.             aasData = new String[1][1];
  152.             aasData[0][0] = "Error: string out of bounds: " + e.getMessage();
  153.             return (aasData);
  154.  
  155.         //    ...end SP.
  156.         //
  157.         } catch (Exception e) {
  158.             aasData = new String[1][1];
  159.             aasData[0][0] = "Error: no data available: " + e.getMessage();
  160.             return (aasData);
  161.         }
  162.     }
  163.  
  164.     //    Private members.
  165.     //
  166. }
  167.  
  168. //    <EOF>
  169. //
  170.