ing a set of individual references。 This causes a mismatch; and trying to bind to the two technologies is difficult。 So when you are writing database code; you are trying to automate the fitting of a square peg into a round hole。 You get many extremely creative ideas and results; but at the end of the day; you are still fitting a square peg into a round hole。 The essence of the problem when dealing with sets of data in a programming language is how to integrate the two。 There is light at the end of the tunnel; in the form of programming language alterations such as LINQ。 LINQ will be discussed in the next chapter。 Accessing Relational Databases Regardless of the database implementation that you use; a mon architecture is employed; as illustrated in Figure 14…1。 …………………………………………………………Page 398…………………………………………………………… 376 CH AP T E R 1 4 ■ L E A R N I N G A B OU T R E L A TI O N AL DA TA B AS E D AT A Figure 14…1。 mon database architecture Most relational database servers are separate applications that run on their own。 To interact with a running relational database; the database vendor provides a database driver。 In ; a database driver is a piece of proprietary code that talks to the relational database server; but exposes its functionality using the ADO layer。 The ADO layer is a technology that abstracts the database client into a neutral set of interfaces。 By itself; ADO does not implement any technologies; but it defines the inter faces that a database needs to have implemented。 ADO is similar to the lighting manager application introduced in Chapter 8; where specific lighting implementations need to imple ment interfaces。 The ADO code can be accessed directly in your application by your code。 However; doing that means accessing the individual rows; columns; and database tables。 It is not a difficult undertaking; but it means you need to do everything manually。 With respect to the lottery example; it means manipulating the lottery winners and the lottery draws tables。 Visual Basic Express and other Visual Studio editions have a number of tools that will generate code that automatically binds to tables and rows; reducing the amount of work that you need to do。 In Figure 14…1; the user code has arrows pointing to both the Visual Studio–generated code and the ADO code。 These arrows indicate that your code does not need to use the Visual Studio–generated code; it is optional。 But the advantage of using the Visual Studio code is that it reduces the amount of grunt work that your code needs to do。 The Visual Studio– generated code is a thin functional layer on top of the ADO code that maps directly to the tables that you are manipulating。 When you are developing an application that accesses a relational database; you need to consider the following issues: ADO drivers : When you write ADO code; you will need an ADO driver for each database。 Thus; if you wish to use MySQL; you will need a MySQL driver。 However; for the most part; the code that you write in your application will remain identical; regard less of which type of database you are using。 Abstraction : There will always be differences in the code used to access different relational databases。 Be prepared to abstract your database code if you access the database directly using ADO。 …………………………………………………………Page 399…………………………………………………………… C HA P TE R 1 4 ■ L E AR N I N G AB O U T R E L AT IO N A L D AT AB A SE D A TA 377 Designing a Database Using Visual Basic Express Visual Basic Express is very helpful when designing and building database applications。 It provides interface…based tools for designing the database; managing connections; and managing data access。 With Visual Basic Express; you can directly integrate the ADO drivers for only Microsoft SQL Server。 (This does not mean you cannot use a different ADO driver using code。) If you want to use the GUI tools for a database driver other than for SQL Server; you will need to upgrade your Visual Studio edition。 For this chapter’s examples; we’ll use the SQL Server Express Edition driver (http://msdn。microsoft。/vstudio/express/sql/)。 You can add the GUI tool…based database support to any Visual Basic project type。 For this chapter; we’ll use a console project called DatabaseConsoleEx。 After you have created the DatabaseConsoleEx console project in Visual Basic Express (using the procedure outlined in Chapter 1); you can set up the database; and then add tables to your new database。 Configuring the Data Source Using the Visual Basic Express Data Source Configuration Wizard; you can add a database as your data source; set up the database connection; and select database objects to include in the project。 Follow these steps to use the wizard: 1。 Select Data Add New Data Source to start the Data Source Configuration Wizard。 2。 Choose Database as the data source and click Next。 3。 You’re asked to choose a data connection。 When choosing the data connection; you are defining the connection settings to your relational database。 Since we are creating a new database in this example; click the New Connection button。 4。 Choose Microsoft SQL Server Database File and click Continue。 5。 In the Add Connection dialog box; fill in the database file name。 For this example; enter the name lot