This example demonstrates the Value property with Field and Property objects by displaying field and property values for the Employees table.
import java.io.*;
import com.ms.wfc.data.*;
import com.ms.com.*;
public class ValueX
{
// Main Function
public static void main (String[] args)
{
ValueX();
System.exit(0);
}
static void ValueX()
{
// Define ADO Objects.
Recordset rstEmployees = null;
Field fldLoop = null;
AdoProperty prpLoop = null;
// Declarations.
String strCnn = "Provider=sqloledb; Data Source= srv;" +
"Initial Catalog=Pubs; User Id=sa; Password=;";
int intLoop;
BufferedReader in = new
BufferedReader(new InputStreamReader(System.in));
Variant varPropertyValue;
String strMessage;
try
{
// Open a Recordset with data from Employees table.
rstEmployees = new Recordset();
rstEmployees.open("employee", strCnn,
AdoEnums.CursorType.FORWARDONLY, AdoEnums.LockType.READONLY,
AdoEnums.CommandType.TABLE);
System.out.println("Field values in rstEmployees\n");
// Enumerate the Fields collection of the Employees
// table.
for(intLoop = 0;
intLoop<rstEmployees.getFields().getCount();intLoop++)
{
fldLoop = rstEmployees.getFields().getItem(intLoop);
// Because Value is the default property of a
// Field object, the use of the actual keyword
// here is optional.
System.out.println("\t" + fldLoop.getName() + " = " +
fldLoop.getValue());
}
System.out.println("\nPress <Enter> to continue..");
in.readLine();
System.out.println("Property values in rstEmployees\n");
// Enumerate the Properties collection of the
// Recordset object.
int intCount = 0;
for(intLoop = 0;
intLoop<rstEmployees.getProperties().getCount();intLoop++)
{
prpLoop = rstEmployees.getProperties().getItem(intLoop);
// Because Value is the default property of a
// Field object, the use of the actual keyword
// here is optional.
strMessage = "\t" + prpLoop.getName() + " = ";
varPropertyValue = prpLoop.getValue();
short vttype =varPropertyValue.getvt();
switch (vttype)
{
case Variant.VariantBoolean :
{
if (varPropertyValue.getBoolean())
strMessage +="True";
else
strMessage +="False";
}
break;
case Variant.VariantInt :
strMessage += varPropertyValue.getInt();
break;
default :
break;
}
System.out.println(strMessage);
intCount++;
// Loop used to display records
if (intCount % 15 == 0)
{
System.out.println("\nPress <Enter> to continue..");
in.readLine();
intCount = 0;
}
}
// Cleanup objects before exit.
rstEmployees.close();
System.out.println("\nPress <Enter> to continue..");
in.readLine();
}
// System read requires this catch.
catch(java.io.IOException je)
{
PrintIOError(je);
}
catch(AdoException ae)
{
// Notify the user of any errors that result from ADO.
// As passing a recordset, check for null pointer first.
if(rstEmployees != null)
{
PrintProviderError(rstEmployees.getActiveConnection());
}
else
{
System.out.println("Exception: " + ae.getMessage());
}
}
}
// 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");
}
}