MDAC 2.5 SDK - ADO


 

Type Property Example (Property) (VJ++)

See Also

This example demonstrates the Type property. It is a model of a utility for listing the names and types of a collection, like Properties, Fields, etc.

We do not need to open the Recordset to access its Properties collection; they come into existence when the Recordset object is instantiated. However, setting the CursorLocation property to adUseClient adds several dynamic properties to the Recordset object's Properties collection, making the example a little more interesting. For sake of illustration, we explicitly use the Item property to access each Property object.

import com.ms.wfc.data.*;
import java.io.* ;

public class TypeX
{
   // The main entry point for the application.

   public static void main (String[] args)
   {
      TypeX();
      System.exit(0);
   }

   // TypeX  function

   static void TypeX()
   {
      // Define ADO Objects.
      Recordset rst = null;
      AdoProperty prop = null;

      // Declarations.
      BufferedReader in = 
         new BufferedReader (new InputStreamReader(System.in));
      String strCnn = "DSN=Pubs;Provider=MSDASQL;uid=sa;pwd=;";
      String strMsg;
      int intIndex;
      int intDisplaysize = 15;

      try
      {
         rst = new Recordset();
         rst.setCursorLocation(AdoEnums.CursorLocation.CLIENT);
         for(intIndex = 0; 
            intIndex <= rst.getProperties().getCount() - 1;intIndex++)
         {
            prop = rst.getProperties().getItem(intIndex);
            switch(prop.getType())
            {
            case AdoEnums.DataType.BIGINT :
                  strMsg = "adBigInt";
                  break;
            case AdoEnums.DataType.BINARY :
                  strMsg = "adBinary";
                  break;
            case AdoEnums.DataType.BOOLEAN :
                  strMsg = "adBoolean";
                  break;
            case AdoEnums.DataType.BSTR :
                  strMsg = "adBSTR";
                  break;
            case AdoEnums.DataType.CHAPTER :
                  strMsg = "adChapter";
                  break;
            case AdoEnums.DataType.CHAR :
                  strMsg = "adChar";
                  break;
            case AdoEnums.DataType.CURRENCY :
                  strMsg = "adCurrency";
                  break;
            case AdoEnums.DataType.DATE :
                  strMsg = "adDate";
                  break;
            case AdoEnums.DataType.DBDATE :
                  strMsg = "adDBDate";
                  break;
            case AdoEnums.DataType.DBTIME :
                  strMsg = "adDBTime";
                  break;
            case AdoEnums.DataType.DBTIMESTAMP :
                  strMsg = "adDBTimeStamp";
                  break;
            case AdoEnums.DataType.DECIMAL :
                  strMsg = "adDecimal";
                  break;
            case AdoEnums.DataType.DOUBLE :
                  strMsg = "adDouble";
                  break;
            case AdoEnums.DataType.EMPTY :
                  strMsg = "adEmpty";
                  break;
            case AdoEnums.DataType.ERROR :
                  strMsg = "adError";
                  break;
            case AdoEnums.DataType.FILETIME :
                  strMsg = "adFileTime";
                  break;
            case AdoEnums.DataType.GUID :
                  strMsg = "adGUID";
                  break;
            case AdoEnums.DataType.IDISPATCH :
                  strMsg = "adIDispatch";
                  break;
            case AdoEnums.DataType.INTEGER :
                  strMsg = "adInteger";
                  break;
            case AdoEnums.DataType.IUNKNOWN :
                  strMsg = "adIUnknown";
                  break;
            case AdoEnums.DataType.LONGVARBINARY :
                  strMsg = "adLongVarBinary";
                  break;
            case AdoEnums.DataType.LONGVARCHAR :
                  strMsg = "adLongVarChar";
                  break;
            case AdoEnums.DataType.LONGVARWCHAR :
                  strMsg = "adLongVarWChar";
                  break;
            case AdoEnums.DataType.NUMERIC :
                  strMsg = "adNumeric";
                  break;
            case AdoEnums.DataType.PROPVARIANT :
                  strMsg = "adPropVariant";
                  break;
            case AdoEnums.DataType.SINGLE :
                  strMsg = "adSingle";
                  break;
            case AdoEnums.DataType.SMALLINT :
                  strMsg = "adSmallInt";
                  break;
            case AdoEnums.DataType.TINYINT :
                  strMsg = "adTinyInt";
                  break;
            case AdoEnums.DataType.UNSIGNEDBIGINT :
                  strMsg = "adUnsignedBigInt";
                  break;
            case AdoEnums.DataType.UNSIGNEDINT :
                  strMsg = "adUnsignedInt";
                  break;
            case AdoEnums.DataType.UNSIGNEDSMALLINT :
                  strMsg = "adUnsignedSmallInt";
                  break;
            case AdoEnums.DataType.UNSIGNEDTINYINT :
                  strMsg = "adUnsignedTinyInt";
                  break;
            case AdoEnums.DataType.USERDEFINED :
                  strMsg = "adUserDefined";
                  break;
            case AdoEnums.DataType.VARBINARY :
                  strMsg = "adVarBinary";
                  break;
            case AdoEnums.DataType.VARCHAR :
                  strMsg = "adVarChar";
                  break;
            case AdoEnums.DataType.VARIANT :
                  strMsg = "adVariant";
                  break;
            case AdoEnums.DataType.VARNUMERIC :
                  strMsg = "adVarNumeric";
                  break;
            case AdoEnums.DataType.VARWCHAR :
                  strMsg = "adVarWChar";
                  break;
            case AdoEnums.DataType.WCHAR :
                  strMsg = "adWChar";
                  break;
            default:
                  strMsg = "*UNKNOWN*";
                  break;
            }
            System.out.println("Property " +
                           Integer.toString(intIndex) +
                           " : " +
                           prop.getName() +
                           ", Type = " +
                           strMsg);
            if(intIndex % intDisplaysize == 0 && intIndex != 0)
            {
               System.out.println("\nPress <Enter> to continue..");
               in.readLine();
            }
         }

         System.out.println("\nPress <Enter> to continue..");
         in.readLine();
      }
      catch( AdoException ae )
      {
         // Notify user of any errors that result from ADO.

         // As passing a Recordset, check for null pointer first.
         if (rst != null)
         {
            PrintProviderError(rst.getActiveConnection());
         }
         else
         {
            System.out.println("Exception: " + ae.getMessage());
         }
      }

      // System read requires this catch.
      catch( java.io.IOException je)
      {
         PrintIOError(je);
      }
   }

   // PrintProviderError Function
   static void PrintProviderError(Connection cnn1)
   {
      // Print Provider Errors from Connection Object.
      // ErrItem is an item object in the Connection’s Errors Collection.
      com.ms.wfc.data.Error               ErrItem = null;
      long                                 nCount = 0;
      int                                       i = 0;

      nCount = cnn1.getErrors().getCount();

      // If there are any errors in the collection, print them.
      if ( nCount > 0)
      {
         // Collection ranges from 0 to nCount-1.
         for ( i=0;i<nCount; i++)
         {
            ErrItem = cnn1.getErrors().getItem(i);
            System.out.println("\t Error Number: " + ErrItem.getNumber() 
               + "\t" + ErrItem.getDescription());
         }
      }
   }
   // PrintIOError Function
   static void PrintIOError(java.io.IOException je)
   {
      System.out.println("Error: \n");
      System.out.println("\t Source: " + je.getClass() + "\n");
      System.out.println("\t Description: "+ je.getMessage() + "\n");
   }
}