Welcome to Certifiable, your exam prep headquarters. Here you'll find questions about some of the tricky areas that are fair game for the certification exams. Following the questions, you'll find the correct answers and explanatory text. We change the questions weekly.

Questions (April 6, 2001)
Answers (April 6, 2001)

Ron Kincaid wrote asking for more coverage of the MCSD exams. We've covered the SQL Server 7.0 exams (70-028 and 70-029) in recent issues, but I agree that other certification exams need equal time. Starting this week, I'll cover all the MCSE, MCSD, and Microsoft Certified Database Administrator (MCDBA) elective exams, as well as the MCSD core exam, while Jon Bischke covers the MCSE core exams on alternate weeks.

Because covering every exam topic would take more than 10 years of biweekly columns, I'd like to focus on the topics that you're having the most problems with. If there are particular exam topics you'd like me to address, email me at morris@holistech.com or post them as a Reader Comment to this article.

I took the Visual Basic (VB) 6.0 exams (Exam 70-175: Designing and Implementing Distributed Applications with Microsoft Visual Basic 6.0 and Exam 70-176: Designing and Implementing Desktop Applications with Microsoft Visual Basic 6.0) a couple of years ago, but I remember that the topics in this week's questions were considered important ones for VB 6.0 developers. As I always tell my students, any new feature in a product is very likely to be the topic of one or two questions on the exam; therefore, you should weight your study time toward learning about the new features.

Questions (April 6, 2001)

Question 1
For your application, you need to create a report that displays information based on a customer having multiple orders. The Company table holds customer information, and the Orders table contains order information.

Required Result

  • The report should show all orders grouped for each company.

Optional Results

  • The report should use the data from the database only (no supplemental labels or field names).
  • The report should use the minimum amount of space in its output.

Proposed Solution

  1. Add a Data Environment to your program.
  2. Set the necessary properties of the Connection object.
  3. Add two Command objects—one using the Company table, and one child Command object using the Orders table.
  4. Set the relation property in the Orders Command object.
  5. Drag the fields to the appropriate bands on the report designer.

Which of the following best describes the solution?

  1. The proposed solution satisfies the required and optional results.
  2. The proposed solution satisfies the required result only.
  3. The proposed solution satisfies the optional result only.
  4. The proposed solution is inaccurate and won't function as described.

Question 2
The design criteria for one of your COM classes dictates that a class user can retrieve data for a specific property but not set data for it. What must you do to meet this criteria?

  1. Create a Get function procedure without a corresponding Set function procedure.
  2. Create a Get procedure without a corresponding Let/Set procedure.
  3. Create a Friend Get function only.
  4. Create a Property Get procedure without a corresponding Property Let/Set procedure.

Question 3
What statement best describes the reason for changing the DLL Base Address?

  1. Changing the DLL Base Address for all your in-process components to the same number gives the OS a shared entry point so the component loads into memory only once.
  2. Changing the DLL Base Address isn't recommended; the option is for expert users only.
  3. Changing the DLL Base Address for all of your in-process components to different numbers makes the component available to many clients, although it loads into memory only once.
  4. You can set the DLL Base Address to a number between 16MB and 256MB.

Answers (April 6, 2001)

Answer to Question 1
The correct answer is B—The proposed solution satisfies the required result only. To create a hierarchical report as described in the question and to satisfy all results, you need to perform the following steps:

  1. Add a Data Environment and a Data Report to your program.
  2. Fill in the properties by right-clicking the Connection object.
  3. Add a parent Command pointing to the Company table.
  4. Add a child Command pointing to the Orders table. Set the CustomerID relation between the two tables.
  5. Drag fields as appropriate to the report designer.
  6. Minimize the screen real estate used in the designer.
  7. Delete the labels made on the designer when the field is dropped on the designer.

Answer to Question 2
The correct answer is D—Create a Property Get procedure without a corresponding Property Let/Set procedure. Creating only a Property Get procedure without a corresponding Property Let/Set procedure causes Visual Basic (VB) to create a read-only member for a class. A Get function without a corresponding Set function isn't a property procedure, and the question asks for a property. A Friend Get function is wrong for the same reason.

Answer to Question 3
The correct answer is C—Changing the DLL Base Address for all of your in-process components to different numbers makes the component available to many clients, although it loads into memory only once. If an you can load an in-process component into its Base Address, other processes can share its code. If other components use that memory address, the OS must recalculate the logical memory locations where code and data are loaded. Setting each of your in-process components to a different number limits the possibility of this recalculation occurring.