この例では、ActiveCommand プロパティの機能を示します。
サブルーチンに Recordset オブジェクトを渡し、その Recordset オブジェクトの ActiveCommand プロパティを使って、その Recordset を作成したコマンド テキストとパラメータを表示します。
import com.ms.wfc.data.*;
import java.io.* ;
public class ActiveCommandX
{
// The main entry point for the application.
public static void main (String[] args)
{
ActiveCommandX();
System.exit(0);
}
// ActiveCommandX function
static void ActiveCommandX()
{
// Define ADO Objects.
Connection cnConn1 = null;
Command cmd = null;
Recordset rstAuthors = null;
// Declarations.
BufferedReader in =
new BufferedReader (new InputStreamReader(System.in));
String strCnn = "DSN=pubs;Provider=MSDASQL;uid=sa;pwd=;";
String strName;
try
{
System.out.println("Enter an author's name (e.g., Ringer): ");
strName = in.readLine().trim();
cmd = new Command();
cmd.setCommandText("SELECT * FROM authors WHERE au_lname = ?");
cmd.getParameters().append(cmd.createParameter("LastName",
AdoEnums.DataType.CHAR,
AdoEnums.ParameterDirection.INPUT, 20, strName));
cnConn1 = new Connection();
cnConn1.open(strCnn);
cmd.setActiveConnection(cnConn1);
rstAuthors = cmd.execute(null,AdoEnums.CommandType.TEXT);
ActiveCommandXprint(rstAuthors);
// Cleanup objects before exit.
rstAuthors.close();
cnConn1.close();
}
catch( AdoException ae )
{
// Notify user of any errors that result from ADO.
// As passing a Recordset, check for null pointer first.
if (rstAuthors != null)
{
PrintProviderError(rstAuthors.getActiveConnection());
}
else
{
System.out.println("Exception: " + ae.getMessage());
}
}
// System read requires this catch.
catch( java.io.IOException je)
{
PrintIOError(je);
}
}
// ActiveCommandXprint function
static void ActiveCommandXprint(Recordset rstp)
{
// Declarations.
BufferedReader in =
new BufferedReader (new InputStreamReader(System.in));
String strName;
try
{
strName = rstp.getActiveCommand().getParameters().
getItem("LastName").getValue().toString();
System.out.println("\nCommand text = '" +
rstp.getActiveCommand().getCommandText() + "'");
System.out.println("Parameter = '" + strName + "'");
if(rstp.getBOF())
{
System.out.println("Name = '" + strName + "', not found.");
}
else
{
System.out.println("Name = '" +
rstp.getField("au_fname").getString() + " " +
rstp.getField("au_lname").getString() +
"', author ID = '" +
rstp.getField("au_id").getString() + "'");
}
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 (rstp != null)
{
PrintProviderError(rstp.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("\tSource = " + je.getClass() + "\n");
System.out.println("\tDescription = " + je.getMessage() + "\n");
}
}