Foreword |
|
1 | (1) |
|
|
2 | (1) |
|
What Does This Book Cover? |
|
|
2 | (2) |
|
What Do I Need To Use This Book? |
|
|
4 | (1) |
|
|
4 | (1) |
|
|
5 | (4) |
|
How to Download Sample Code for this Book |
|
|
5 | (1) |
|
|
6 | (1) |
|
|
6 | (1) |
|
|
7 | (1) |
|
Why This System Offers the Best Support |
|
|
7 | (2) |
|
``Classic'' Visual Basic in the .NET World |
|
|
9 | (14) |
|
VB -- A Product of its Environment? |
|
|
11 | (5) |
|
|
16 | (1) |
|
|
17 | (1) |
|
|
17 | (1) |
|
Simple Object Access Protocol -- SOAP |
|
|
18 | (1) |
|
What Else is Important to Learn Now? |
|
|
19 | (1) |
|
|
20 | (3) |
|
|
23 | (22) |
|
Development Methodologies |
|
|
24 | (2) |
|
A Structured Formal Methodology |
|
|
24 | (1) |
|
|
24 | (1) |
|
|
24 | (1) |
|
|
25 | (1) |
|
|
25 | (1) |
|
Maintaining/Evolving Phase |
|
|
25 | (1) |
|
|
25 | (1) |
|
Architecture Considerations |
|
|
26 | (8) |
|
|
26 | (1) |
|
Application Architectures |
|
|
27 | (1) |
|
|
27 | (1) |
|
|
28 | (1) |
|
Single-Tier Physical Model |
|
|
28 | (3) |
|
|
31 | (1) |
|
Three-Tier Physical Model |
|
|
31 | (1) |
|
|
32 | (1) |
|
|
32 | (1) |
|
Integration Considerations |
|
|
32 | (1) |
|
Component Object Model (COM+) |
|
|
32 | (1) |
|
Distributed Component Object Model (DCOM) |
|
|
33 | (1) |
|
|
33 | (1) |
|
|
34 | (1) |
|
Design Patterns in Visual Basic 6 |
|
|
34 | (8) |
|
What is a Design Pattern? |
|
|
34 | (1) |
|
|
35 | (1) |
|
Benefits of Design Patterns |
|
|
35 | (1) |
|
Applying Design Patterns to Visual Basic |
|
|
35 | (1) |
|
The Singleton Design Pattern |
|
|
35 | (1) |
|
The Repository Design Pattern |
|
|
36 | (3) |
|
The Adapter Design Pattern |
|
|
39 | (2) |
|
The Abstract Factory Design Pattern |
|
|
41 | (1) |
|
|
42 | (3) |
|
|
45 | (50) |
|
|
45 | (1) |
|
|
46 | (3) |
|
|
47 | (1) |
|
Setting a Reference to ADO |
|
|
48 | (1) |
|
|
49 | (6) |
|
Creating a Connection Object |
|
|
49 | (1) |
|
Setting the Connection String |
|
|
50 | (1) |
|
OLE DB Provider for ODBC Drivers |
|
|
51 | (2) |
|
|
53 | (1) |
|
|
54 | (1) |
|
|
54 | (1) |
|
|
55 | (11) |
|
Creating a Command Object |
|
|
55 | (1) |
|
Building the Command Text |
|
|
56 | (1) |
|
|
57 | (1) |
|
The Execute Method's Optional Arguments |
|
|
57 | (1) |
|
|
58 | (1) |
|
Other Command Object Functionality |
|
|
58 | (1) |
|
Executing a Command Without a Command Object |
|
|
58 | (1) |
|
Using a Connection Object |
|
|
59 | (1) |
|
|
59 | (2) |
|
|
61 | (1) |
|
Creating a Parameter Object |
|
|
61 | (2) |
|
The Parameters Collection |
|
|
63 | (1) |
|
Passing Parameters into a Stored Procedure |
|
|
64 | (2) |
|
Viewing and Editing Records |
|
|
66 | (18) |
|
Navigating through the Recordset |
|
|
66 | (1) |
|
|
67 | (1) |
|
Moving by More than One Record |
|
|
68 | (1) |
|
|
69 | (1) |
|
Locating Records in the Recordset |
|
|
69 | (1) |
|
|
70 | (1) |
|
|
71 | (1) |
|
Retrieving Rows into an Array |
|
|
72 | (1) |
|
|
73 | (1) |
|
|
73 | (1) |
|
|
73 | (1) |
|
|
74 | (1) |
|
|
75 | (1) |
|
|
76 | (1) |
|
|
77 | (1) |
|
|
78 | (1) |
|
|
78 | (1) |
|
|
79 | (1) |
|
|
80 | (1) |
|
|
80 | (1) |
|
|
80 | (2) |
|
|
82 | (1) |
|
Disconnected and Persisted Recordsets |
|
|
83 | (1) |
|
|
84 | (5) |
|
|
84 | (1) |
|
|
84 | (1) |
|
|
85 | (1) |
|
The ConnectComplete Event |
|
|
86 | (1) |
|
|
87 | (1) |
|
|
87 | (1) |
|
|
88 | (1) |
|
The RecordChangeComplete Event |
|
|
88 | (1) |
|
|
89 | (3) |
|
|
89 | (1) |
|
|
90 | (2) |
|
Binding to VB Controls with ADO |
|
|
92 | (1) |
|
|
93 | (2) |
|
Working with the ADO Data Control |
|
|
95 | (32) |
|
|
95 | (1) |
|
|
96 | (5) |
|
Building the Front-End Application |
|
|
101 | (21) |
|
|
101 | (1) |
|
Building the Connection String |
|
|
102 | (3) |
|
Setting the RecordSource Property |
|
|
105 | (1) |
|
Setting the Other Properties |
|
|
106 | (1) |
|
Building a User Interface |
|
|
106 | (3) |
|
|
109 | (1) |
|
|
110 | (1) |
|
Creating a Navigation Bar |
|
|
111 | (1) |
|
|
112 | (2) |
|
Updating the Status Label |
|
|
114 | (1) |
|
|
114 | (2) |
|
|
116 | (1) |
|
|
117 | (1) |
|
|
117 | (1) |
|
|
118 | (1) |
|
|
118 | (3) |
|
Testing the Search Mechanism |
|
|
121 | (1) |
|
|
122 | (3) |
|
|
122 | (1) |
|
|
122 | (1) |
|
The Picture and Image Controls |
|
|
122 | (1) |
|
|
122 | (1) |
|
The Hierarchical FlexGrid Control |
|
|
123 | (1) |
|
The DataList and DataCombo Controls |
|
|
124 | (1) |
|
The OLE Container Control |
|
|
124 | (1) |
|
|
124 | (1) |
|
|
125 | (1) |
|
The Data Repeater Control |
|
|
125 | (1) |
|
|
125 | (2) |
|
Views, Stored Procedures, and Triggers |
|
|
127 | (24) |
|
|
128 | (5) |
|
Views in the Northwind Database |
|
|
129 | (1) |
|
Creating a New View with SQL |
|
|
130 | (1) |
|
Creating a New View Graphically |
|
|
131 | (1) |
|
Modifying Data Using a View |
|
|
132 | (1) |
|
|
133 | (12) |
|
Stored Procedures in the Northwind Database |
|
|
134 | (1) |
|
Creating Stored Procedures Using SQL |
|
|
135 | (1) |
|
Executing Stored Procedures from Visual Basic |
|
|
136 | (5) |
|
|
141 | (2) |
|
System-Level Stored Procedures |
|
|
143 | (2) |
|
|
145 | (4) |
|
A Note on the Mode of Operation of Triggers |
|
|
146 | (1) |
|
|
147 | (1) |
|
|
148 | (1) |
|
|
149 | (2) |
|
Data Validation, Transactions, and Error Trapping |
|
|
151 | (26) |
|
|
152 | (11) |
|
Data Validation on the Server |
|
|
152 | (1) |
|
Exploring Constraints in SQL Server |
|
|
153 | (6) |
|
Exploring Constraints in Microsoft Access |
|
|
159 | (1) |
|
Adding Validation Constraints with SQL |
|
|
159 | (2) |
|
Data Validation at the Application Level |
|
|
161 | (2) |
|
|
163 | (7) |
|
BeginTrans, CommitTrans and RollBackTrans |
|
|
165 | (5) |
|
ADO and OLE DB Provider Errors |
|
|
170 | (5) |
|
|
175 | (2) |
|
|
177 | (28) |
|
The ADO Disconnected Recordset |
|
|
178 | (5) |
|
Advanced Features of Disconnected Recordsets |
|
|
180 | (1) |
|
|
180 | (1) |
|
|
181 | (1) |
|
|
182 | (1) |
|
|
183 | (9) |
|
|
186 | (6) |
|
|
192 | (5) |
|
|
193 | (2) |
|
Persisting a Recordset to a Stream Object |
|
|
195 | (1) |
|
|
196 | (1) |
|
|
197 | (6) |
|
|
197 | (1) |
|
|
198 | (1) |
|
|
198 | (1) |
|
|
198 | (1) |
|
|
199 | (1) |
|
|
200 | (1) |
|
Executing XPath Queries with ADO Command |
|
|
201 | (2) |
|
|
203 | (2) |
|
|
205 | (44) |
|
|
206 | (2) |
|
|
206 | (1) |
|
|
207 | (1) |
|
|
208 | (1) |
|
|
208 | (1) |
|
|
208 | (1) |
|
|
209 | (1) |
|
|
209 | (8) |
|
|
211 | (1) |
|
Processes, Threads, and Apartments |
|
|
212 | (1) |
|
|
212 | (1) |
|
|
212 | (1) |
|
|
213 | (1) |
|
|
213 | (1) |
|
|
214 | (1) |
|
|
215 | (1) |
|
|
215 | (2) |
|
Interfaces -- COM's Binary Standard |
|
|
217 | (3) |
|
|
218 | (1) |
|
|
218 | (1) |
|
|
218 | (1) |
|
|
219 | (1) |
|
GUIDs and the Windows Registry |
|
|
220 | (4) |
|
|
220 | (1) |
|
Building our own COM Component |
|
|
221 | (3) |
|
|
224 | (4) |
|
|
225 | (1) |
|
Method-level Role-based Security |
|
|
225 | (1) |
|
|
225 | (1) |
|
Resource Dispenser and Notification Services |
|
|
226 | (1) |
|
Improved Object Instantiation |
|
|
226 | (1) |
|
|
226 | (1) |
|
|
226 | (1) |
|
|
227 | (1) |
|
|
228 | (1) |
|
|
228 | (8) |
|
|
230 | (2) |
|
|
232 | (1) |
|
|
232 | (1) |
|
|
233 | (1) |
|
|
233 | (1) |
|
|
234 | (1) |
|
|
235 | (1) |
|
COM+ Object Communication |
|
|
236 | (1) |
|
COM+ Components, Interfaces, and Methods |
|
|
236 | (6) |
|
|
236 | (1) |
|
|
237 | (2) |
|
|
239 | (2) |
|
|
241 | (1) |
|
|
242 | (1) |
|
|
242 | (1) |
|
|
242 | (3) |
|
|
242 | (1) |
|
|
243 | (1) |
|
|
243 | (1) |
|
|
243 | (1) |
|
|
244 | (1) |
|
|
244 | (1) |
|
|
245 | (4) |
|
|
249 | (48) |
|
Introducing Business Objects |
|
|
249 | (2) |
|
|
250 | (1) |
|
|
250 | (1) |
|
UI Logic versus Business Logic |
|
|
250 | (1) |
|
Building Components in Visual Basic |
|
|
251 | (1) |
|
Creating a COM+ Component in VB |
|
|
252 | (1) |
|
|
252 | (7) |
|
|
253 | (1) |
|
|
254 | (1) |
|
|
254 | (1) |
|
|
255 | (1) |
|
|
255 | (3) |
|
|
258 | (1) |
|
|
259 | (22) |
|
|
260 | (1) |
|
|
261 | (1) |
|
|
262 | (1) |
|
|
262 | (1) |
|
|
263 | (1) |
|
|
264 | (1) |
|
|
264 | (1) |
|
|
265 | (3) |
|
The Phone and EMail Properties |
|
|
268 | (2) |
|
|
270 | (3) |
|
|
273 | (4) |
|
|
277 | (1) |
|
Building the Component Server |
|
|
277 | (1) |
|
Compiling a COM+ Object Under VB |
|
|
277 | (1) |
|
|
278 | (1) |
|
|
279 | (1) |
|
|
280 | (1) |
|
|
281 | (7) |
|
Object and Component Usability |
|
|
281 | (3) |
|
|
284 | (2) |
|
|
286 | (2) |
|
Designing for COM+ Services |
|
|
288 | (5) |
|
|
288 | (1) |
|
Coding: Properties, Objects, Parameters, and More |
|
|
289 | (1) |
|
Just-In-Time (JIT) Activation |
|
|
290 | (1) |
|
|
290 | (1) |
|
|
290 | (2) |
|
|
292 | (1) |
|
|
293 | (4) |
|
|
297 | (36) |
|
|
297 | (3) |
|
Requirements for a Transactional System |
|
|
298 | (1) |
|
Why Do We Need Transactions? |
|
|
298 | (2) |
|
Transaction Processing Systems |
|
|
300 | (4) |
|
|
301 | (1) |
|
Compensating Resource Managers |
|
|
302 | (1) |
|
|
303 | (1) |
|
The Distributed Transaction Coordinator |
|
|
303 | (1) |
|
Two-Phase Commit Protocol |
|
|
303 | (1) |
|
|
304 | (1) |
|
Transactional Support in COM+ |
|
|
304 | (13) |
|
Root and Interior Objects |
|
|
305 | (1) |
|
The Transactional Support Property |
|
|
305 | (2) |
|
|
307 | (1) |
|
The IObjectContext Interface |
|
|
307 | (1) |
|
|
308 | (3) |
|
|
311 | (5) |
|
|
316 | (1) |
|
Building Transactional Applications in VB 6 |
|
|
317 | (14) |
|
Transactional Support for VB 6 Classes |
|
|
317 | (2) |
|
Creating Interior COM+ Objects in VB |
|
|
319 | (2) |
|
The Compensating Resource Manager |
|
|
321 | (1) |
|
|
322 | (4) |
|
|
326 | (4) |
|
Configuring and Using the FileSystemCRM |
|
|
330 | (1) |
|
|
331 | (2) |
|
COM+ Distributed and Queued Components |
|
|
333 | (46) |
|
Distributed Processing with COM+ |
|
|
333 | (2) |
|
|
334 | (1) |
|
Security and Authentication |
|
|
334 | (1) |
|
|
334 | (1) |
|
|
335 | (1) |
|
|
335 | (11) |
|
|
338 | (1) |
|
Deploying Components with COM+ |
|
|
338 | (1) |
|
Configuring Our COM+ Application |
|
|
339 | (2) |
|
Packaging a Component for Export |
|
|
341 | (1) |
|
Configuring the Remote Client |
|
|
342 | (1) |
|
Implications for Real World Applications |
|
|
342 | (1) |
|
Stateful Components and Network Round Trips |
|
|
343 | (1) |
|
|
343 | (1) |
|
Platform Incompatibilities |
|
|
343 | (1) |
|
|
344 | (1) |
|
|
345 | (1) |
|
|
346 | (20) |
|
|
347 | (1) |
|
|
347 | (1) |
|
The Nature of MSMQ Queues |
|
|
348 | (1) |
|
|
349 | (1) |
|
|
349 | (1) |
|
|
349 | (1) |
|
|
349 | (1) |
|
|
349 | (2) |
|
|
351 | (1) |
|
|
351 | (1) |
|
|
352 | (1) |
|
|
353 | (1) |
|
|
354 | (2) |
|
|
356 | (1) |
|
|
356 | (1) |
|
|
356 | (1) |
|
|
357 | (1) |
|
MSMQCoordinatedTransactionDispenser |
|
|
357 | (1) |
|
|
358 | (1) |
|
|
358 | (1) |
|
|
359 | (1) |
|
|
360 | (2) |
|
|
362 | (3) |
|
|
365 | (1) |
|
MSMQ Queued COM+ Components |
|
|
365 | (1) |
|
|
366 | (6) |
|
Queued Components Architecture |
|
|
367 | (1) |
|
|
368 | (4) |
|
|
372 | (4) |
|
How Do Events and Callbacks Work? |
|
|
372 | (1) |
|
|
372 | (4) |
|
|
376 | (3) |
|
|
379 | (36) |
|
|
379 | (3) |
|
|
380 | (1) |
|
|
381 | (1) |
|
Introducing Active Server Pages |
|
|
382 | (4) |
|
|
382 | (1) |
|
|
383 | (1) |
|
|
383 | (1) |
|
The Default Scripting Language |
|
|
383 | (1) |
|
|
384 | (1) |
|
|
385 | (1) |
|
The Active Server Pages Object Model |
|
|
386 | (17) |
|
|
387 | (1) |
|
Iterating the Contents Collection |
|
|
387 | (1) |
|
Removing an Item from the Contents Collection |
|
|
388 | (1) |
|
|
388 | (1) |
|
The Request Object's Collections |
|
|
389 | (3) |
|
Request Object Properties and Methods |
|
|
392 | (1) |
|
|
393 | (1) |
|
The Response Object's Collections |
|
|
393 | (1) |
|
The Response Object's Methods |
|
|
394 | (2) |
|
The Response Object's Properties |
|
|
396 | (1) |
|
The Application and Session Objects |
|
|
397 | (1) |
|
|
397 | (1) |
|
|
397 | (1) |
|
|
398 | (1) |
|
|
398 | (1) |
|
|
398 | (1) |
|
|
398 | (1) |
|
|
399 | (1) |
|
|
399 | (1) |
|
|
399 | (1) |
|
|
400 | (1) |
|
|
400 | (1) |
|
|
401 | (1) |
|
|
401 | (1) |
|
|
401 | (2) |
|
|
403 | (1) |
|
|
403 | (1) |
|
|
403 | (1) |
|
Using Active Server Pages Effectively |
|
|
403 | (9) |
|
|
403 | (2) |
|
Creating the global.asa File |
|
|
405 | (1) |
|
|
405 | (3) |
|
|
408 | (3) |
|
|
411 | (1) |
|
|
412 | (3) |
|
|
415 | (38) |
|
|
416 | (7) |
|
Putting XML in Perspective |
|
|
419 | (1) |
|
|
419 | (1) |
|
|
420 | (1) |
|
|
420 | (1) |
|
|
421 | (2) |
|
|
423 | (1) |
|
|
423 | (2) |
|
|
424 | (1) |
|
Extensible Style Language (XSL) |
|
|
425 | (5) |
|
|
426 | (1) |
|
Transforming XML for Display Using XSL |
|
|
426 | (4) |
|
|
430 | (11) |
|
Generating XML Using Visual Basic 6 |
|
|
430 | (1) |
|
Using the ADO Save Method to Save a Recordset as XML |
|
|
430 | (2) |
|
Saving a Recordset as XML Using Custom Code |
|
|
432 | (6) |
|
Saving a Recordset as XML Using The DOM |
|
|
438 | (3) |
|
|
441 | (4) |
|
Generating HTML from XML Server-Side |
|
|
441 | (4) |
|
Uploading XML to the Server |
|
|
445 | (6) |
|
Using the ServerXMLHTTP Object |
|
|
445 | (3) |
|
Receiving an XML File on the Server |
|
|
448 | (1) |
|
Receiving XML Using an ASP Script |
|
|
448 | (1) |
|
Receiving XML Using a Visual Basic IIS Application |
|
|
448 | (2) |
|
|
450 | (1) |
|
|
451 | (2) |
|
SOAP and XML Web Services |
|
|
453 | (34) |
|
|
454 | (1) |
|
|
454 | (1) |
|
|
455 | (1) |
|
|
455 | (1) |
|
|
456 | (1) |
|
|
456 | (1) |
|
|
456 | (1) |
|
The Microsoft SOAP Toolkit |
|
|
457 | (1) |
|
|
457 | (1) |
|
|
458 | (1) |
|
|
458 | (11) |
|
|
459 | (3) |
|
|
462 | (1) |
|
|
463 | (2) |
|
|
465 | (4) |
|
Consuming a .NET Web Service with SoapClient30 |
|
|
469 | (1) |
|
|
469 | (1) |
|
|
470 | (1) |
|
Handling User-Defined Data Types |
|
|
470 | (14) |
|
A Little Help From DataSet |
|
|
470 | (2) |
|
|
472 | (2) |
|
XML DataSet to ADODB.Recordset |
|
|
474 | (6) |
|
|
480 | (4) |
|
Limitations of the Conversion Routine |
|
|
484 | (1) |
|
|
484 | (3) |
|
|
487 | (20) |
|
|
488 | (1) |
|
The Implications for Visual Basic |
|
|
488 | (1) |
|
Why Move From VB 6 to .NET? |
|
|
489 | (1) |
|
Architecting VB 6 Applications with a View to .NET |
|
|
489 | (5) |
|
|
490 | (1) |
|
|
491 | (1) |
|
|
491 | (1) |
|
VB 6 Programming Recommendations |
|
|
492 | (1) |
|
Explicitly Declare your Variables |
|
|
492 | (1) |
|
Take Care with Parameters |
|
|
492 | (1) |
|
|
493 | (1) |
|
|
493 | (1) |
|
|
494 | (6) |
|
|
494 | (1) |
|
|
494 | (1) |
|
|
494 | (1) |
|
Parameterized Constructors |
|
|
495 | (1) |
|
Declaration and Initialization |
|
|
495 | (1) |
|
Structured Exception Handling |
|
|
496 | (1) |
|
|
496 | (1) |
|
|
496 | (1) |
|
|
496 | (1) |
|
|
497 | (1) |
|
|
497 | (1) |
|
|
497 | (1) |
|
|
497 | (3) |
|
|
500 | (1) |
|
|
500 | (1) |
|
|
500 | (5) |
|
|
505 | (2) |
Appendix A: Visual Basic Tips and Tricks |
|
507 | (20) |
|
|
507 | (1) |
|
List boxes and Combo boxes |
|
|
507 | (2) |
|
Intercepting Windows Messages -- Subclassing |
|
|
509 | (1) |
|
|
510 | (2) |
|
|
512 | (1) |
|
|
512 | (1) |
|
|
512 | (1) |
|
|
513 | (1) |
|
Always Close Recordsets and Connections |
|
|
514 | (1) |
|
Disconnected Recordsets and Firehose Cursors |
|
|
515 | (1) |
|
|
515 | (1) |
|
|
515 | (1) |
|
|
516 | (1) |
|
|
516 | (1) |
|
Center a Form on the Screen Programmatically |
|
|
516 | (1) |
|
|
516 | (1) |
|
Catching Errors on Form_Load |
|
|
517 | (1) |
|
Looping Through a Form's Controls |
|
|
518 | (1) |
|
Looping Through the Forms Collection |
|
|
519 | (1) |
|
|
519 | (1) |
|
Reading and Writing Files |
|
|
519 | (1) |
|
|
520 | (1) |
|
|
520 | (1) |
|
|
520 | (1) |
|
|
521 | (1) |
|
|
521 | (1) |
|
|
522 | (1) |
|
|
523 | (1) |
|
|
523 | (1) |
|
|
523 | (1) |
|
|
523 | (1) |
|
|
524 | (1) |
|
|
524 | (3) |
Appendix B: Visual Studio Installer |
|
527 | (24) |
|
Microsoft Windows Installer |
|
|
527 | (2) |
|
Installing Visual Studio Installer |
|
|
529 | (1) |
|
Installing the Installer Engine |
|
|
529 | (1) |
|
Creating an Installer Package |
|
|
529 | (8) |
|
Creating a Visual Studio Installer Project |
|
|
530 | (1) |
|
|
531 | (1) |
|
Configuring the Visual Studio Installer Project |
|
|
532 | (1) |
|
|
533 | (1) |
|
|
534 | (1) |
|
|
534 | (1) |
|
|
534 | (1) |
|
|
535 | (1) |
|
|
535 | (1) |
|
|
535 | (1) |
|
Organizing Component Properties |
|
|
535 | (1) |
|
Modifying the File System |
|
|
536 | (1) |
|
Initializing the Registry |
|
|
536 | (1) |
|
Guiding the User through the Install Process |
|
|
537 | (1) |
|
Compiling the Installer Project |
|
|
537 | (1) |
|
|
537 | (5) |
|
Registering the Component |
|
|
538 | (1) |
|
|
538 | (1) |
|
|
539 | (2) |
|
|
541 | (1) |
|
Creating a Merge Module Package |
|
|
542 | (2) |
|
Creating a Visual Studio Merge Module Project |
|
|
542 | (1) |
|
Deploying and Consuming a Merge Module Package |
|
|
543 | (1) |
|
Isolating a Merge Module Package |
|
|
544 | (1) |
|
Testing and Deploying Installer Packages |
|
|
544 | (1) |
|
Testing Installer Packages and Merge Modules |
|
|
545 | (1) |
|
Deploying Installer Packages |
|
|
545 | (1) |
|
Advanced Packaging Concepts |
|
|
545 | (3) |
|
|
545 | (1) |
|
Creating a Package with a Custom Application Path |
|
|
546 | (1) |
|
Creating Per-Machine Install Packages |
|
|
547 | (1) |
|
|
548 | (3) |
Appendix C: Deployment Techniques -- Wise Installation System |
|
551 | (18) |
|
|
551 | (10) |
|
|
552 | (1) |
|
|
552 | (1) |
|
|
553 | (1) |
|
|
553 | (1) |
|
|
553 | (1) |
|
Installation Details Group |
|
|
554 | (1) |
|
|
554 | (1) |
|
|
555 | (1) |
|
|
555 | (1) |
|
|
556 | (1) |
|
|
556 | (1) |
|
|
556 | (1) |
|
|
556 | (1) |
|
|
556 | (1) |
|
|
557 | (1) |
|
|
557 | (1) |
|
|
557 | (1) |
|
|
557 | (1) |
|
|
557 | (1) |
|
|
557 | (1) |
|
|
557 | (1) |
|
|
557 | (1) |
|
|
557 | (2) |
|
|
559 | (1) |
|
|
559 | (1) |
|
|
559 | (1) |
|
|
559 | (1) |
|
|
559 | (1) |
|
|
559 | (1) |
|
|
559 | (1) |
|
|
559 | (1) |
|
|
560 | (1) |
|
|
560 | (1) |
|
|
560 | (1) |
|
|
560 | (1) |
|
Installation Expert Summary |
|
|
561 | (1) |
|
|
561 | (4) |
|
|
561 | (1) |
|
|
562 | (1) |
|
|
562 | (1) |
|
|
562 | (1) |
|
|
562 | (1) |
|
|
563 | (1) |
|
|
563 | (1) |
|
|
564 | (1) |
|
|
564 | (1) |
|
Self-Register OCXs/DLLs/EXEs |
|
|
564 | (1) |
|
|
564 | (1) |
|
|
565 | (1) |
|
|
565 | (1) |
|
|
566 | (1) |
|
|
567 | (2) |
Appendix D: ADO Object Summary |
|
569 | (20) |
|
|
569 | (1) |
|
|
570 | (2) |
|
|
572 | (2) |
|
|
574 | (1) |
|
|
574 | (1) |
|
|
575 | (1) |
|
|
576 | (1) |
|
|
576 | (1) |
|
The Parameters Collection |
|
|
577 | (1) |
|
The Properties Collection |
|
|
578 | (1) |
|
|
578 | (1) |
|
|
578 | (1) |
|
|
579 | (4) |
|
|
583 | (2) |
|
ADO Method Calls -- Quick Reference |
|
|
585 | (1) |
|
|
585 | (1) |
|
Connection Object Methods |
|
|
585 | (1) |
|
Errors Collection Methods |
|
|
585 | (1) |
|
|
585 | (1) |
|
Fields Collection Methods |
|
|
585 | (1) |
|
|
585 | (1) |
|
Parameters Collection Methods |
|
|
586 | (1) |
|
Properties Collection Methods |
|
|
586 | (1) |
|
|
586 | (1) |
|
|
586 | (1) |
|
|
587 | (2) |
Appendix E: SQL Reference |
|
589 | (36) |
|
|
589 | (1) |
|
|
590 | (1) |
|
|
590 | (1) |
|
|
590 | (1) |
|
|
591 | (1) |
|
|
591 | (1) |
|
Data Definition Language (DDL) |
|
|
591 | (1) |
|
Data Manipulation Language (DML) |
|
|
592 | (1) |
|
Data Control Language (DCL) |
|
|
592 | (1) |
|
|
592 | (10) |
|
Explicit Transaction Commands |
|
|
592 | (1) |
|
|
592 | (9) |
|
ANSI SQL-92 Aggregate Functions |
|
|
601 | (1) |
|
SQL Server and Transact-SQL |
|
|
602 | (11) |
|
General ANSI SQL-92 Compatibility |
|
|
602 | (1) |
|
|
602 | (1) |
|
|
602 | (1) |
|
Explicit Transaction Commands |
|
|
603 | (1) |
|
ANSI SQL-92 Commands in Transact-SQL |
|
|
603 | (7) |
|
ANSI SQL-92 Functions in Transact-SQL |
|
|
610 | (1) |
|
|
610 | (1) |
|
Non-ANSI SQL-92 Mathematical Functions |
|
|
611 | (1) |
|
|
612 | (1) |
|
|
613 | (1) |
|
|
613 | (1) |
|
|
613 | (1) |
|
Commands Not Part of ANSI SQL-92 |
|
|
613 | (3) |
|
|
615 | (1) |
|
Other SQL Server Data Types |
|
|
615 | (1) |
|
Microsoft Access Database Engine (Jet) |
|
|
616 | (9) |
|
General SQL-92 Compatibility Issues |
|
|
617 | (1) |
|
|
617 | (4) |
|
ANSI SQL-92 Functions in Microsoft Access |
|
|
621 | (1) |
|
Non ANSI SQL-92 Mathematical Functions |
|
|
622 | (1) |
|
|
622 | (1) |
|
|
622 | (1) |
|
|
622 | (1) |
|
Commands Not Part of ANSI SQL-92 |
|
|
622 | (1) |
|
|
623 | (2) |
Index |
|
625 | |