Preface | | xi | |
| | 1 | (22) |
| | 2 | (11) |
| | 2 | (2) |
| | 4 | (1) |
| | 5 | (1) |
| | 6 | (2) |
| | 8 | (5) |
| Microsoft Universal Data Access and DB2 UDB | | | 13 | (3) |
| | 14 | (1) |
| ActiveX Data Objects (ADO) | | | 14 | (1) |
| Universal Access of DB2 UDB | | | 15 | (1) |
| | 16 | (4) |
| | 17 | (3) |
| Using Microsoft Technology | | | 20 | (3) |
| Set Up Application Development Environment | | | 23 | (34) |
| Installing the DB2 UDB Product | | | 24 | (13) |
| | 24 | (13) |
| Creating the Sample Database | | | 37 | (4) |
| | 37 | (4) |
| Microsoft Programming Tools | | | 41 | (1) |
| Microsoft Data Access Components | | | 41 | (2) |
| | 43 | (9) |
| Automated Configuration Using Discovery | | | 43 | (1) |
| | 44 | (2) |
| | 46 | (6) |
| Modeling Your Production Database | | | 52 | (2) |
| | 54 | (3) |
| Introducing Programming Interfaces | | | 57 | (60) |
| DB2 UDB Application Overview | | | 58 | (1) |
| | 59 | (10) |
| | 60 | (5) |
| | 65 | (4) |
| Call Level Interface and ODBC | | | 69 | (4) |
| A DB2 UDB CLI Application | | | 70 | (3) |
| Java Interfaces (JDBC and SQLJ) | | | 73 | (11) |
| | 74 | (1) |
| A Sample JDBC Application | | | 75 | (2) |
| | 77 | (1) |
| | 78 | (1) |
| | 78 | (3) |
| Compiling and Running SQLJ Programs | | | 81 | (3) |
| | 84 | (1) |
| Microsoft Data Objects (DAO, RDO, ADO) | | | 85 | (32) |
| Development of Visual Basic Data Access Methods | | | 85 | (3) |
| Structure of Visual Basic Data Access Methods | | | 88 | (1) |
| | 89 | (8) |
| | 97 | (11) |
| | 108 | (8) |
| | 116 | (1) |
| | 117 | (76) |
| | 118 | (7) |
| | 119 | (1) |
| | 120 | (4) |
| | 124 | (1) |
| User-defined Distinct Types (UDTs) | | | 125 | (2) |
| | 127 | (10) |
| Character Large Objects (CLOB) | | | 127 | (1) |
| Double-byte Character Large Objects (DBCLOB) | | | 128 | (1) |
| Binary Large Object (BLOB) | | | 129 | (1) |
| Manipulating Large Objects | | | 130 | (7) |
| User-Defined Functions (UDFs) | | | 137 | (19) |
| | 138 | (1) |
| | 139 | (1) |
| | 140 | (2) |
| External Scalar Functions | | | 142 | (6) |
| | 148 | (4) |
| OLE DB External Table Functions | | | 152 | (2) |
| Performance Tips for UDFs | | | 154 | (2) |
| | 156 | (4) |
| | 160 | (33) |
| Building Stored Procedures | | | 161 | (17) |
| | 178 | (6) |
| | 184 | (2) |
| Keep Stored Procedure Processes | | | 186 | (1) |
| | 187 | (6) |
| Building Applications Using Visual Basic | | | 193 | (94) |
| | 194 | (26) |
| ODBC Data Source for Accessing Sample Database | | | 194 | (2) |
| Opening the Visual Basic Project | | | 196 | (1) |
| Setting Project References | | | 197 | (2) |
| Creating Forms Using the Data Form Wizard | | | 199 | (19) |
| Visual Data Manager Add-In | | | 218 | (2) |
| | 220 | (16) |
| | 221 | (15) |
| Run Booksales Sample Application on DB2 UDB | | | 236 | (1) |
| DB2 UDB Sample Application | | | 236 | (30) |
| Common Procedures in Main Display Forms | | | 237 | (4) |
| | 241 | (4) |
| | 245 | (1) |
| | 246 | (3) |
| | 249 | (3) |
| | 252 | (4) |
| | 256 | (4) |
| | 260 | (1) |
| | 261 | (2) |
| | 263 | (2) |
| | 265 | (1) |
| Calling DB2 UDB Stored Procedures | | | 266 | (11) |
| Calling a Stored Procedure Returning a Recordset | | | 272 | (5) |
| | 277 | (10) |
| Building Applications Using Visual C++ | | | 287 | (30) |
| Visual C++ Applications with ADO | | | 288 | (16) |
| | 288 | (4) |
| | 292 | (12) |
| Building Applications Using DB2 UDB Add-Ins | | | 304 | (13) |
| Activating DB2 UDB Add-Ins | | | 305 | (2) |
| Developing Stored Procedures Using Add-Ins | | | 307 | (10) |
| Using Microsoft Transaction Server | | | 317 | (36) |
| Benefits of Microsoft Transaction Server | | | 318 | (1) |
| Transaction Processing Concepts | | | 319 | (2) |
| | 321 | (2) |
| MTS and the Supporting Environment | | | 321 | (2) |
| MTS Concepts and Processes | | | 323 | (2) |
| | 323 | (1) |
| | 324 | (1) |
| | 324 | (1) |
| | 325 | (1) |
| | 325 | (1) |
| | 325 | (6) |
| Requirements for MTS Components | | | 325 | (1) |
| Adding Transactional Support | | | 326 | (2) |
| | 328 | (2) |
| Creating Efficient Objects | | | 330 | (1) |
| | 331 | (6) |
| | 332 | (1) |
| Setting Package Properties | | | 333 | (2) |
| Adding Components to a Package | | | 335 | (1) |
| Component Locations and Versioning | | | 336 | (1) |
| Setting Component Properties | | | 337 | (1) |
| | 337 | (6) |
| Declarative Security: Roles and Identities | | | 338 | (1) |
| | 339 | (1) |
| Creating and Assigning Security Roles | | | 339 | (2) |
| | 341 | (2) |
| Getting DB2 UDB and MTS to Work Together | | | 343 | (4) |
| | 343 | (1) |
| Installation and Configuration | | | 344 | (3) |
| Sample Program --- Using ADO with an MTS Component | | | 347 | (6) |
| Steps to Run the Sample Application | | | 347 | (1) |
| | 348 | (1) |
| More About Client and Server Projects | | | 348 | (5) |
| Application Development on IIS | | | 353 | (52) |
| Creating ASP Applications | | | 354 | (1) |
| | 354 | (1) |
| | 354 | (1) |
| | 355 | (3) |
| Coding Active Server Pages | | | 355 | (1) |
| ASP Processing Directives | | | 356 | (1) |
| | 357 | (1) |
| | 358 | (7) |
| | 359 | (3) |
| | 362 | (1) |
| | 363 | (1) |
| | 364 | (1) |
| Using ActiveX Data Objects | | | 365 | (6) |
| Connecting to the Database | | | 366 | (1) |
| Creating a Recordset Object | | | 367 | (4) |
| Security Considerations in ASP | | | 371 | (4) |
| | 371 | (1) |
| | 372 | (2) |
| | 374 | (1) |
| Sample Web Application Using ASP | | | 375 | (30) |
| General Procedure for Installing Web Applications | | | 375 | (11) |
| Creating a Web Application: Microsoft Visual Interdev 6.0 | | | 386 | (19) |
| Tuning Application Performance | | | 405 | (54) |
| | 406 | (6) |
| Specify Only Needed Columns in the Select List | | | 407 | (1) |
| Limit the Number of Rows by Using Predicates | | | 407 | (3) |
| Specify the Optimize For n Rows Clause | | | 410 | (1) |
| Specify the Fetch First n Rows Only Clause | | | 410 | (1) |
| Specify the For Fetch Only Clause | | | 411 | (1) |
| Avoid Data Type Conversions | | | 411 | (1) |
| | 412 | (7) |
| | 413 | (5) |
| | 418 | (1) |
| Locksize Parameter of Alter Table Statement | | | 418 | (1) |
| | 419 | (5) |
| Defining a Declared Temporary Table | | | 420 | (1) |
| Create Table with Not Logged Initially Option | | | 421 | (3) |
| Convert ODBC into Static SQL | | | 424 | (4) |
| Considerations in a Partitioned Environment | | | 428 | (5) |
| | 429 | (1) |
| OLTP Applications in a Partitioned Environment | | | 429 | (4) |
| | 433 | (26) |
| | 434 | (1) |
| | 435 | (5) |
| | 440 | (1) |
| Analyzing the Trace and Finding the Problem | | | 441 | (8) |
| Fixing the Performance Problem | | | 449 | (10) |
Appendix A-Supported Statements for SQL Procedures | | 459 | (6) |
Appendix B-Example DB2 UDB Source Code | | 465 | (16) |
Appendix C-Related Publications | | 481 | |