did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780321223678

Macromedia ColdFusion MX 7 Web Application Construction Kit

by ; ; ;
  • ISBN13:

    9780321223678

  • ISBN10:

    0321223675

  • Edition: 1st
  • Format: Paperback
  • Copyright: 2005-03-23
  • Publisher: Macromedia Press
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $59.99

Summary

Best-selling ColdFusion reference and tutorial returns - completely revised to cover the latest (and greatest) version!

Author Biography

Ben Forta is Macromedia's Senior ColdFusion Product Evangelist , has two decades of experience in the computer industry and is a much sought after speaker and lecturer. Ben is also the author of this book’s popular companion volume Advanced ColdFusion Application Development as well as books on SQL, JSP (JavaServer Pages), WAP, and other technologies.

Table of Contents

Introduction xli
PART 1 Getting Started
1(160)
Introducing ColdFusion
3(24)
The Basics
3(14)
The Internet
4(2)
Internet Applications
6(1)
DNS
7(2)
Intranets, Extranets, and Portals
9(1)
Web Servers
9(3)
Web Pages
12(1)
Web Browsers
12(2)
URLs
14(2)
Hosts and Virtual Hosts
16(1)
Understanding ColdFusion
17(4)
The Dynamic Page Advantage
17(1)
Understanding Web Applications
18(2)
What Is ColdFusion?
20(1)
ColdFusion and Your Intranet, Extranet, and Portal
20(1)
ColdFusion Explained
21(5)
The ColdFusion Application Server
21(1)
The ColdFusion Markup Language
22(1)
Linking to External Applications
23(1)
Extending ColdFusion
24(1)
Beyond the Web
24(1)
Inside ColdFusion MX 7
24(2)
Powered by ColdFusion
26(1)
Introducing Macromedia Dreamweaver MX 2004
27(46)
Dreamweaver MX 2004 Overview
27(1)
Preparing to Use Dreamweaver
28(3)
Creating the Application Root
29(1)
Starting Dreamweaver for the First Time
29(2)
Site Definitions
31(7)
Creating the Site
32(5)
About the Advanced Site Definition Dialog
37(1)
Working with Files
38(3)
Creating a Work Directory and File
39(1)
Saving, Closing, and Opening Files
40(1)
Testing the Page
40(1)
The Dreamweaver Workspace
41(3)
The Files Panel
41(2)
The Document Window
43(1)
Managing Panels
44(3)
Code Editing
47(10)
Code Hints and Tag Completion
47(2)
The Code Panel Group
49(3)
The Application Panel Group
52(5)
Design Tools
57(7)
The Design Panel Group
57(1)
The Insert Bar
58(5)
The Property Inspector
63(1)
Customizing Dreamweaver
64(7)
Commands
65(1)
Keyboard Shortcuts
65(2)
Extensions
67(1)
Preferences
68(3)
Getting Help
71(2)
The Macromedia Forums
72(1)
Accessing the ColdFusion Administrator
73(10)
Logging Into (and Out of) the ColdFusion Administrator
74(2)
Using the ColdFusion Administrator
76(7)
Creating a Data Source
77(1)
Defining a Mail Server
77(1)
Enabling Debugging
78(2)
Viewing Settings
80(3)
Previewing ColdFusion
83(20)
Preparing to Learn ColdFusion
83(2)
Using Dreamweaver MX Code Generation
85(12)
Preparing to Create an Application
85(3)
Creating an Application in Dreamweaver MX
88(9)
Trying It Yourself
97(3)
Browsing the Examples and Tutorials
100(3)
Building the Databases
103(28)
Database Fundamentals
103(5)
Databases: A Definition
104(1)
Where Are Databases Used?
104(1)
Clarification of Database-Related Terms
105(1)
Data Types
105(3)
Using a Database
108(3)
A Database Primer
110(1)
Understanding Relational Databases
111(7)
Primary and Foreign Keys
112(1)
Different Kinds of Relationships
113(1)
Multi-Table Relationships
113(2)
Indexes
115(1)
Using Indexes
116(1)
Indexing on More than One Column
117(1)
Understanding the Various Types of Database Applications
118(4)
Shared-File--Based Databases
118(1)
Client/Server--Based Databases
119(2)
Which Database Product to Use
121(1)
Understanding the OWS Database Tables
122(9)
The Films Table
122(1)
The Expenses Table
123(1)
The Directors Table
124(1)
The FilmsDirectors Table
124(1)
The Actors Table
124(1)
The FilmsActors Table
125(1)
The FilmsRatings Table
126(1)
The UserRoles Table
126(1)
The Contacts Table
126(1)
The Merchandise Table
127(1)
The MerchandiseOrders Table
128(1)
The MerchandiseOrdersItems Table
128(3)
Introducing SQL
131(22)
Understanding Data Sources
132(1)
Creating A Data Source
133(6)
Creating a Data Source From Within Dreamweaver
133(3)
Creating a Data Source Using The ColdFusion Administrator
136(3)
Preparing to Write SQL Queries
139(1)
Creating Queries
140(3)
Sorting Query Results
143(2)
Filtering Data
145(8)
Filtering on a Single Column
146(1)
Filtering on Multiple Columns
146(1)
The And and Or Operators
147(1)
Evaluation Precedence
148(1)
Where Conditions
148(5)
SQL Data Manipulation
153(8)
Adding Data
153(4)
Using the Insert Statement
154(1)
Understanding Insert
155(2)
Modifying Data
157(2)
Understanding Update
158(1)
Making Global Updates
158(1)
Deleting Data
159(2)
PART 2 Using ColdFusion
161(350)
Using ColdFusion
163(26)
Working with Templates
163(1)
Creating Templates
163(1)
Saving Templates
164(1)
Executing Templates
164(2)
Templates Explained
166(1)
Using Functions
166(5)
Using Variables
171(6)
Variable Naming
175(1)
Using Prefixes
175(2)
Working with Expressions
177(2)
Building Expressions
177(1)
When To Use #, and When Not To
178(1)
Using ColdFusion Data Types
179(8)
Lists
179(2)
Arrays
181(2)
Structures
183(2)
``Dumping'' Expressions
185(2)
Commenting Your Code
187(2)
CFML Basics
189(28)
Working with Conditional Processing
189(1)
If Statements
189(18)
Switch Statements
205(2)
Using Looping
207(5)
The Index Loop
207(2)
The List Loop
209(1)
Nested Loops
210(2)
Reusing Code
212(4)
Revisiting Variables
216(1)
Creating Data-Driven Pages
217(46)
Accessing Databases
217(8)
Static Web Pages
217(2)
Dynamic Web Pages
219(1)
Understanding Data-Driven Templates
220(4)
The Dynamic Advantage
224(1)
Displaying Database Query Results
225(9)
Displaying Data Using Lists
225(3)
Displaying Data Using Tables
228(6)
Using Query Variables
234(5)
Grouping Result Output
239(4)
Using Data Drill-Down
243(18)
Introducing Dynamic SQL
243(3)
Implementing Data Drill-Down Interfaces
246(11)
Displaying Data Using Frames
257(4)
Debugging Dynamic Database Queries
261(2)
The Basics of Structured Development
263(30)
Understanding Structured Development
263(3)
Single-Tier Applications
265(1)
Multi-Tier Applications
265(1)
Introducing ColdFusion Components
266(23)
Creating Your First CFC
267(5)
Using ColdFusion Components
272(1)
Using Dreamweaver CFC Support
273(16)
More On Using ColdFusion Components
289(4)
ColdFusion Forms
293(36)
Using Forms
293(1)
Creating Forms
293(3)
Using HTML Form Tags
295(1)
Form Submission Error Messages
295(1)
Processing Form Submissions
296(15)
Processing Text Submissions
297(1)
Processing Check Boxes and Radio Buttons
297(6)
Processing List Boxes
303(2)
Processing Text Areas
305(4)
Processing Buttons
309(2)
Creating Dynamic SQL Statements
311(4)
Building Truly Dynamic Statements
315(10)
Understanding Dynamic SQL
318(2)
Concatenating SQL Clauses
320(5)
Creating Dynamic Search Screens
325(4)
Form Data Validation
329(26)
Understanding Form Validation
329(2)
Comparing Server-Side and Client-Side Validation
330(1)
Pros and Cons of Each Option
331(1)
Using Server-Side Validation
331(12)
Using Manual Server-Side Validation
331(4)
Using <cfparam> Server-Side Validation
335(3)
Using Automatic Server-Side Validation
338(5)
Using Client-Side Validation
343(10)
Understanding Client-Side Validation
343(1)
Client-Side Validation Via <cfform>
344(5)
Extending <cfinput> Validation Options
349(1)
Specifying An Input Mask
350(2)
Validating On The Server And Client
352(1)
Preventing Multiple Form Submissions
352(1)
Putting It All Together
353(2)
Using Forms to Add or Change Data
355(44)
Adding Data with ColdFusion
355(7)
Creating an Add Record Form
356(4)
Processing Additions
360(2)
Introducing <cfinsert>
362(10)
Controlling <cfinsert> Form Fields
367(4)
Collecting Data for More Than One Insert
371(1)
<cfinsert> Versus SQL Insert
371(1)
Updating Data with ColdFusion
372(6)
Building a Data Update Form
372(5)
Processing Updates
377(1)
Introducing <cfupdate>
378(1)
<cfupdate> Versus SQL Update
379(1)
Deleting Data with ColdFusion
379(1)
Reusing Forms
380(6)
Creating a Complete Application
386(13)
Beyond HTML Forms: Flash and XForms
399(36)
Using Flash Forms
400(26)
A Brief Introduction to Flash
400(1)
Introducing Flash Forms
401(1)
Getting Started With Flash Forms
401(4)
Flash Forms Controls
405(9)
Managing Form Layout
414(6)
Controlling Form Appearance
420(1)
Using Data Bindings
421(5)
Using XForms
426(9)
Understanding XForms
426(1)
Barriers to XForms Adoption
427(1)
ColdFusion and XForms
427(6)
Where Do XSL Files Go?
433(2)
Graphing, Printing, and Reporting
435(52)
Generating Graphs
435(22)
Building Simple Charts
436(5)
Formatting Your Charts
441(7)
Using Multiple Data Series
448(2)
Drilling Down from Charts
450(5)
Additional Charting Topics
455(2)
Creating Printable Pages
457(11)
Using the <cfdocument> Tag
458(7)
Controlling Output using The <cfdocumentitem> Tag
465(3)
Defining Sections with <cfdocumentsection>
468(1)
Generating Reports
468(19)
Debugging and Troubleshooting
487(24)
Troubleshooting ColdFusion Applications
487(13)
Understanding What Can Go Wrong
487(1)
Debugging Web Server Configuration Problems
488(1)
Debugging Data Driver Errors
489(2)
Debugging SQL Statement or Logic Errors
491(3)
Debugging ColdFusion Syntax Errors
494(1)
Inspecting Variable Contents
495(1)
Using the Document Validator
496(2)
Debugging URL and Path Problems
498(1)
Debugging Form Problems
498(2)
Using the ColdFusion Debugging Options
500(4)
Classic Debugging
500(1)
Dockable Debugging
501(1)
Dreamweaver Debugging
501(2)
Using Debugging Options
503(1)
Using Tracing
503(1)
Using the ColdFusion Log Files
504(3)
Preventing Problems
507(4)
PART 3 Building ColdFusion Applications
511(456)
Planning an Application
513(14)
Getting Started on Your Application
513(7)
Defining the Project
513(4)
Knowing the Players
517(1)
Fact Finding
517(3)
Planning the Process
520(3)
Design Documents
520(1)
Planning the Testing Phase
521(2)
While You Are Working
523(4)
Charting Page Flow
523(1)
Include Files and Custom Tags
523(1)
Commenting Style
524(1)
Naming Conventions
524(1)
Keeping the Directory Structure in Mind
525(1)
Moving Targets and Feature Creep
526(1)
Introducing the Web Application Framework
527(42)
Using Application.cfc
528(6)
Using OnRequestEnd()
531(3)
Using Application Variables
534(8)
What Are Application Variables?
534(1)
When to Use Application Variables
535(1)
Using the Application.cfc Component
535(1)
Using Application Variables
536(1)
Initializing Application Variables
536(3)
Putting Application Variables to Work
539(3)
Customizing the Look of Error Messages
542(11)
Introducing the <cferror> Tag
542(1)
Request vs. Exception Error Templates
543(1)
Creating a Customized Request Error Page
544(3)
Additional Error Variables
547(1)
Creating a Customized Exception Error Page
548(1)
Creating a Customized Validation Error Page
549(2)
Using the OnError Method
551(2)
Using Locks to Protect Against Race Conditions
553(12)
What Is A Race Condition?
554(2)
<cflock> Tag Syntax
556(1)
Using Exclusive Locks
557(2)
Using ReadOnly Locks
559(3)
Using Named Locks instead of Scope
562(2)
Nested Locks and Deadlocks
564(1)
Locking with ColdFusion 5 and Earlier
564(1)
Application Variable Timeouts
565(4)
Adjusting Timeouts Using ApplicationTimeOut
565(1)
Adjusting Timeouts Using the ColdFusion Administrator
566(1)
Using onRequest()
566(3)
Working with Sessions
569(48)
Addressing the Web's Statelessness
569(3)
The Problem of Maintaining State
570(1)
Solutions Provided by ColdFusion
570(1)
Choosing Which Type of Variables to Use
571(1)
Using Cookies to Remember Preferences
572(8)
Introducing the Cookie Scope
572(1)
A Simple Cookie Exercise
572(2)
Using Cookies
574(2)
Gaining More Control with <cfcookie>
576(3)
Sharing Cookies with Other Applications
579(1)
Cookie Limitation
580(1)
Using Client Variables
580(13)
How Do Client Variables Work?
580(1)
Enabling Client Variables
581(1)
Using Client Variables
582(4)
Deleting Client Variables
586(1)
Adjusting How Client Variables Are Stored
587(4)
Using Client Variables Without Requiring Cookies
591(1)
Storing Complex Data Types in Client Variables
592(1)
Using Session Variables
593(21)
What Are Session Variables?
593(1)
Enabling Session Variables
594(1)
Using Session Variables
595(1)
Using Session Variables for Multiple-Page Data Entry
595(16)
When Does a Session End?
611(2)
Using Session Variables without Requiring Cookies
613(1)
Other Examples of Session Variables
614(1)
Locking Revisited
614(2)
Sessions and the <cflock> Tag
614(2)
Working with onSessionStart and onSessionEnd
616(1)
Securing Your Applications
617(38)
Options for Securing Your Application
617(4)
SSL Encryption
617(1)
HTTP Basic Authentication
618(1)
Application-Based Security
619(1)
ColdFusion's <cflogin> Framework
620(1)
ColdFusion Sandbox Security
620(1)
Operating System Security
621(1)
Using ColdFusion to Control Access
621(1)
Deciding What to Protect
621(1)
Using Session Variables for Authentication
622(31)
Checking and Maintaining Login Status
622(1)
Restricting Access to Your Application
623(1)
Creating a Login Page
624(3)
Verifying the Login Name and Password
627(2)
Personalizing Based on Login
629(2)
Being Careful with Passed Parameters
631(6)
Other Scenarios
637(2)
Using ColdFusion's <cflogin> Framework
639(1)
Tags and Functions Provided by the <cflogin> Framework
640(1)
Using <cflogin> and <cfloginuser>
640(5)
Using getAuthUser() in Your Application Pages
645(3)
Using Roles to Dynamically Restrict Functionality
648(5)
Using Operating System Security
653(1)
Defending against Cross-Site Scripting
654(1)
Building User-Defined Functions
655(22)
Thinking About Extending CFML
655(1)
Functions Turn Input into Output
656(1)
Building Your First UDF
656(9)
Basic Steps
657(1)
Using the Function
658(1)
UDF Tag Syntax
658(2)
Using Local Variables
660(2)
Where to Save Your UDFs
662(3)
Creating Libraries of Related UDFs
665(5)
Designing the UDF Library
665(3)
Putting the UDF Library to Use
668(2)
Creating General-Purpose UDFs
670(5)
Things to Consider
670(1)
Writing the SimpleJavaScriptFunctions Library
671(2)
Another Example Library: ColorFunctions
673(2)
Sharing UDF Libraries with Others
675(2)
Building Reusable Components
677(90)
Easy, Powerful Extensibility
677(1)
Introducing CFML Custom Tags
678(1)
The Basic Custom Tag Idea
678(1)
Why Modularity Is a Good Thing
678(1)
How to Use Custom Tags
679(8)
Finding Tags on the Developer Exchange
680(1)
How to ``Install'' a Custom Tag
681(1)
Using Custom Tags
682(3)
Changing the Custom Tag Search Path
685(2)
Placing Custom Tags in the Current Directory
687(1)
Controlling Template Locations with <cfmodule>
687(4)
Introducing the <cfmodule> Tag
687(1)
Calling Modules by Name
688(2)
Calling Modules by Template Location
690(1)
Writing Custom Tags That Display Information
691(11)
Writing Your First Custom Tag
691(1)
Introducing the attributes Scope
692(2)
Making Attributes Optional or Required
694(1)
Using <cfparam> to Establish Default Values
695(2)
Who Are You Developing For?
697(1)
Querying and Displaying Output
698(4)
Custom Tags Versus <cfinclude>
702(1)
Custom Tags That Process Data
702(8)
Introducing the Caller Scope
703(1)
Returning Variables to the Calling Template
703(3)
Variable Names as Tag Attributes
706(1)
Using <cfparam> with type=``variableName''
707(1)
Setting a Variable Dynamically
707(3)
Custom Tags That Encapsulate Business Rules
710(1)
Custom Tags for General-Purpose Use
711(4)
Sharing Your Custom Tags
714(1)
Additional Custom Tag Topics
715(4)
Paired Custom Tags
715(1)
Associating Nested Custom Tags
715(1)
Passing Attributes with attributeCollection
715(1)
The Request Scope
716(3)
Introducing ColdFusion Components
719(4)
About ColdFusion Components
720(2)
The Two Types of Components
722(1)
Your First CFC
723(11)
The Structure of a CFC File
723(3)
A Simple Example
726(1)
Using the CFC in ColdFusion Pages
727(7)
A More Complete CFC
734(16)
CFCs as Collections of Functions
734(3)
Using the FilmData CFC
737(2)
Separating Logic from Presentation
739(1)
Accessing a CFC via a URL
740(5)
Accessing a CFC via a Form
745(1)
Exploring CFCs in Dreamweaver MX
746(4)
Components that Hold Instance Data
750(14)
Introducing the This Scope
750(2)
An Instance Data CFC Example
752(5)
Storing CFCs in the Application Scope
757(2)
Storing CFCs in the Session Scope
759(1)
Instance Data as Properties
759(4)
CFCs, Shared Scopes, and Locking
763(1)
Learning More About CFCs
764(3)
Learning About Advanced CFC Concepts
764(3)
Improving the User Experience
767(36)
Usability Considerations
767(5)
Put yourself in the User's Shoes
767(2)
Easing the Browser's Burden
769(3)
Remembering Settings
772(1)
Remembering User Names and Passwords
772(1)
Other Helpful Settings to Remember
773(1)
Avoid the ``Big Brother'' Effect
773(1)
Creating Next-n Records Interfaces
773(17)
Advantages of Next-n Interfaces
773(1)
When to Create a Next-n Interface
774(1)
Creating the Basic Interface
774(5)
Alternating Row Colors for Readability
779(4)
Letting the User Browse Page by Page
783(2)
Adding Show All and Filter Options
785(5)
Returning Page Output Right Away with <cfflush>
790(13)
When to Clear the Buffer
790(1)
The Exception, Not the Rule
791(1)
Introducing the <cfflush> Tag
791(1)
Flushing the Output Buffer for Large Pages
791(1)
Flushing the Output Buffer for Long-Running Processes
792(7)
When You Can't Flush the Buffer
799(4)
Improving Performance
803(22)
Options in the ColdFusion Administrator
803(1)
Improving Query Performance with Caching
804(9)
Understanding Query Caching
804(2)
Using Cached Queries
806(4)
Refreshing Cached Queries Programmatically
810(2)
Limiting the Number of Cached Queries
812(1)
Controlling How Many Records Are Fetched at Once
812(1)
Caching Page Output
813(12)
Introducing the <cfcache> Tag
813(1)
Client-Side Page Caching
813(2)
Server-Side Page Caching
815(3)
ColdFusion-Optimized Caching
818(1)
Flushing the Page Cache
819(1)
Understanding the Issue
820(1)
Automatic White-Space Control
821(1)
Suppressing White-Space Output with <cfsilent>
822(1)
Suppressing Specific White Space with <cfsetting>
822(3)
Integrating with Macromedia Flash
825(46)
Flash Integration Concepts
825(1)
Macromedia Flash MX 2004
825(1)
The Flash 7 Player
825(1)
ColdFusion Components
826(1)
Flash Remoting
826(1)
ActionScript
826(1)
Your First Flash Movie
826(5)
What You Need to Install
826(1)
Creating a Movie
827(1)
Placing the Movie on a ColdFusion Page
828(3)
Using Flash Remoting
831(16)
ColdFusion Pages as Services
831(1)
Your First Flash Remoting Project
832(10)
Creating the ColdFusion Code
842(1)
Testing the Example
843(1)
More About Returning Data to Flash
844(3)
Working with Recordsets in Flash
847(10)
About RecordSet Objects
847(1)
RecordSet Functions
848(1)
A Complete Example
849(8)
Calling CFC Methods from Flash
857(9)
ColdFusion Components as Services
858(1)
Calling CFC Methods
859(1)
Instantiated CFCs
860(6)
Other Cool Flash Remoting Features
866(5)
Debugging Flash Remoting Projects
866(1)
The Data Glue Object
867(1)
Incrementally Loading Recordsets
868(1)
Security and Logging In from Flash
868(1)
Other Integration Methods
869(2)
Interacting with Email
871(48)
Sending Email from ColdFusion
871(24)
Introducing the <cfmail> Tag
871(2)
Specifying a Mail Server in the Administrator
873(1)
Sending Email Messages
874(8)
Sending Data-Driven Mail
882(6)
Sending HTML-Formatted Mail
888(5)
Adding Custom Mail Headers
893(1)
Adding Attachments
894(1)
Overriding the Default Mail Server Settings
894(1)
Retrieving Email with ColdFusion
895(24)
Introducing the <cfpop> Tag
896(3)
Retrieving the List of Messages
899(5)
Receiving and Deleting Messages
904(4)
Receiving Attachments
908(6)
Creating Automated POP Agents
914(5)
Online Commerce
919(48)
Building E-commerce Sites
919(2)
Common Commerce-Site Elements
919(2)
Using a Secure Server
921(1)
Creating Storefronts
921(6)
Displaying Individual Items
922(2)
Collecting Items into a Store
924(3)
Creating Shopping Carts
927(19)
Storing Cart Information
927(2)
Building a Shopping Cart
929(4)
Encapsulating the Shopping Cart in a Custom Tag
933(5)
A ColdFusion Component Version of the Shopping Cart
938(8)
Payment Processing
946(16)
Payment-Processing Solutions
946(1)
Processing a Payment
946(7)
Processing a Complete Order
953(4)
Creating the Checkout Page
957(5)
Other Commerce-Related Tasks
962(5)
Order Tracking
962(1)
Order Fulfillment
963(1)
Cancellations, Returns, and Refunds
963(1)
Inventory Tracking
963(1)
Reporting
963(4)
PART 4 Advanced ColdFusion
ColdFusion Server Configuration
The ColdFusion Administrator
The Administrator Home Page
Server Settings
The Settings Page
The Caching Page
The Client Variables Page
The Memory Variables Page
Use J2EE session variables
Timeout defaults and maximums
The Mappings Page
The Mail Server Page
The Charting Page
The Font Management Page
The Java and JVM Page
Settings Summary
Data & Services
The Data Sources Page
The Verity Collections Page
The Verity K2 Server Page
The Web Services Page
Debugging & Logging
The Debugging Settings Page
The Debugging IP Addresses Page
The Logging Settings Pages
The Log Files Page
The Scheduled Tasks Page
The System Probes Page
The Code Analyzer Page
The License Scanner Page
Extensions
The Java Applets Page
The CFX Tags Page
The Custom Tag Paths Page
The CORBA Connectors Page
Event Gateways
The Settings Page
The Gateway Types Page
The Gateway Instances Page
Security
The CF Admin Password Page
The RDS Password Page
The Sandbox Security Page
Packaging & Deployment
ColdFusion Archives (.car)
The J2EE Archives Page
More About SQL and Queries
Advanced SQL Topics
Getting Unique Records with Distinct
Summarizing Data with Aggregate Functions
Selecting Related Data with Joins
Subqueries
Combining Record Sets with Union
Working with Null Values
Working with Date Values
Understanding Views
Additional <cfquery> Topics
Query of Queries (In Memory Queries)
Parameterized Queries
Using Parameterized Queries for Database Independence
Building Query Results Programmatically
Using Database Transactions
Using the <cftransaction> Tag
Transactions and CFML Error Handling
Transactions and Stored Procedures
Working with Stored Procedures
Why Use Stored Procedures?
Advantages of Using Stored Procedures
Comparing Stored Procedures to CFML Custom Tags
Calling Stored Procedures from ColdFusion Templates
Two Ways to Execute Stored Procedures
Using the <cfstoredproc> Tag
Stored Procedures That Return Recordsets
Stored Procedures That Take Parameters and Return Status Codes
Calling Procedures with <cfquery> Instead of <cfstoredproc>
Creating Stored Procedures
Creating Stored Procedures with Microsoft SQL Server
Creating Stored Procedures with Oracle
Creating Stored Procedures with Sybase
Error Handling
Catching Errors as They Occur
What Is an Exception?
Introducing <cftry> and <cfcatch>
Basic Exception Handling
Understanding What Caused the Error
Writing Templates That Work Around Errors
Writing Templates That Recover from Errors
Nesting <cftry> Blocks
Deciding Not to Handle an Exception
Examining Exception Messages to Improve Usability
Using Exception Handling In UDFs
Throwing and Catching Your Own Errors
Introducing <cfthrow>
Exceptions and Database Transactions
Generating Non-HTML Content
About ColdFusion and Non-HTML Content
How Your Browser Handles MIME Types
Introducing the <cfcontent> Tag
Experimenting with Plain Text
Comma-Separated Text
Generating Comma-Separated Text
Adding a Content-Disposition Header for Internet Explorer
Retrieving the Comma-Separated Text with <cfhttp>
Generating Excel Files
Creating Spreadsheets with Tab-Separated Text
Creating Spreadsheets with HTML
Other Options for Creating Excel Files
Generating Word Files
Creating Documents with RTF
Other Options for Creating Word Files
Serving Media Files
Turning ColdFusion into an Image Server
Other Uses
Getting Started with Wireless Applications
Basic Wireless Concepts
Installing the Phone Simulator
A Crash Course in WML
Your First WML Card
Multiple Cards in One Deck
Creating Data-Driven Cards
Browsing Through Records
Responding to Form Input
Learning More
Interacting with the Operating System
Introduction to <cffile>
Accessing the Server's File System
Reading and Writing Files
Copying, Moving, Renaming, and Deleting Files
Uploading Files
What If the File Already Exists on the Server?
Determining the Status of a File Upload
Building an Upload Interface
Manipulating Folders on the Server with <cfdirectory>
Using <cfdirectory>
Getting the Contents of a Directory
Building a Simple File Explorer
Building an Application to Manage Files
Protecting File Access with <cflock>
Executing Programs on the Server with <cfexecute>
Interacting with the System Registry Using <cfregistry>
What Is the Registry?
Full-Text Searching
Getting to Know Verity
Searching for Different Types of Files with Verity
Integrating ColdFusion with Other Search Engines
Creating a Search Tool for Your Documents
Understanding Collections
Creating a New Collection
Indexing the Collection
Creating a Search Interface
Indexing SQL Data
Searching Without Verity
Indexing Your Table Data: Verity to the Rescue
Combining Verity Searches with SQL Queries on the Fly
Understanding Verity and Your Table's Key Values
Searching on More Than One Collection
Maintaining Collections
Repopulating Your Verity Collection
Administrating Collections with <cfcollection>
Optimizing a Verity Collection
Repairing a Collection
Deleting a Collection
Creating a Collection Programmatically
Understanding Verity's Search Syntax
Event Scheduling
ColdFusion Event Scheduling Concepts
ColdFusion Scheduling vs. Other Kinds of Scheduling
Creating, Modifying and Deleting Scheduled Tasks
Administering Scheduled Tasks
Creating Scheduled Tasks with the ColdFusion Administrator
Running, Modifying, and Deleting Scheduled Tasks
Creating, Modifying, and Deleting Tasks Using <cfschedule>
Scheduling Application Examples
Creating a Scheduled Task for a POP3 Application
Building an Automatic Promotional Email Application
Scheduling Updates to a Verity Collection
Managing Your Code
Coding Standards
Separate Processing-oriented Code from Presentation-oriented Code
Avoid Overuse of Subqueries in a Select Statement
Don't Reassign Variable Values with Each Request
Don't Use If Statements to Test for the Existence of Variables
Use <cfparam> at the Top of Your Templates
Always Scope Your Variables
Use <cfswitch> and <cfcase> in Place of <cfif>
Don't Overuse the # Sign
Avoid Overuse of the <cfoutput> Tag
Reduce White Space in Your Output
Comment, Comment, Comment
Documentation
Version Control
Planning for Version Control
Version-Control Systems
Multiple Users and Integration with Dreamweaver MX
Development Frameworks
Why Use a Development Methodology or Framework?
Fusebox
How Fusebox 3 Works
Building a Simple Contact Manager with Fusebox 3
Fusebox 4.1
The Core Files in Fusebox 4.1
Fusebox Benefits
Drawbacks
Mach-II
How Mach-II Works
Producing a Mach-II Contact Manager
Mach-II Benefits
Mach-II Drawbacks
Issues to Consider with All Development Frameworks
Conclusions
PART 5 Appendices
967(2)
APPENDIX A Installing ColdFusion MX 7, Dreamweaver MX 2004, and the Sample Files
969(8)
Dreamweaver MX 2004
969(1)
ColdFusion MX 7
970(3)
The Different Flavors of ColdFusion MX 7
970(1)
Pre-Installation Checklist
970(1)
Checking Your Hardware
971(1)
Choosing Your Hardware
971(1)
Checking Your Web Server
971(1)
Installing ColdFusion On Windows
972(1)
Installing ColdFusion On Linux and UNIX
973(1)
Installing the ColdFusion Report Builder
973(1)
Installing Dreamweaver Extensions
974(1)
Samples & Data Files
974(3)
What to Install
974(1)
Installing the OWS Files
975(2)
APPENDIX B ColdFusion Tag Reference
977(188)
Tag Groups by Function
977(6)
Database Manipulation
977(1)
Data Output
978(1)
Extensibility
978(1)
Variable Manipulation
979(1)
Flow Control
979(1)
Debugging Tools
980(1)
Internet Protocols
980(1)
File Management
981(1)
Web Application Framework
981(1)
ColdFusion Forms
981(1)
Security
982(1)
CFML Utilities
982(1)
Verity Search
983(1)
Alphabetical List of ColdFusion Tags
983(182)
<cfabort>
983(1)
<cfapplet>
984(1)
<cfapplication>
985(1)
<cfargument>
986(2)
<cfassociate>
988(1)
<cfbreak>
988(1)
<cfcache>
989(1)
<cfcalendar>
990(2)
<cfcase>
992(1)
<cfcatch>
992(2)
<cfchart>
994(4)
<cfchartdata>
998(1)
<cfchartseries>
999(2)
<cfcol>
1001(1)
<cfcollection>
1002(2)
<cfcomponent>
1004(1)
<cfcontent>
1005(1)
<cfcookie>
1006(2)
<cfdefaultcase>
1008(1)
<cfdirectory>
1009(2)
<cfdocument>
1011(3)
<cfdocumentitem>
1014(1)
<cfdocumentsection>
1014(1)
<cfdump>
1015(1)
<cfelse>
1016(1)
<cfelseif>
1016(1)
<cferror>
1017(2)
<cfexecute>
1019(2)
<cfexit>
1021(1)
<cffile>
1021(5)
<cfflush>
1026(1)
<cfform>
1027(3)
<cfformgroup>
1030(5)
<cfformitem>
1035(1)
<cfftp>
1036(6)
<cffunction>
1042(2)
<cfgraph>
1044(1)
<cfgraphdata>
1044(1)
<cfgrid>
1044(7)
<cfgridcolumn>
1051(3)
<cfgridrow>
1054(1)
<cfgridupdate>
1055(1)
<cfheader>
1056(1)
<cfhtmlhead>
1057(1)
<cfhttp>
1058(4)
<cfhttpparam>
1062(1)
<cfif>
1063(3)
<cfimpersonate>
1066(1)
<cfimport>
1066(1)
<cfinclude>
1067(1)
<cfindex>
1067(3)
<cfinput>
1070(4)
<cfinsert>
1074(2)
<cfinvoke>
1076(2)
<cfinvokeargument>
1078(1)
<cfldap>
1079(2)
<cflocation>
1081(1)
<cflock>
1082(1)
<cflog>
1083(1)
<cflogin>
1084(3)
<cfloginuser>
1087(1)
<cflogout>
1087(1)
<cfloop>
1088(3)
<cfmail>
1091(4)
<cfmailparam>
1095(1)
<cfmailpart>
1096(1)
<cfmodule>
1097(1)
<cfntauthenticate>
1098(1)
<cfobject>
1099(2)
<cfobjectcache>
1101(1)
<cfoutput>
1101(2)
<cfparam>
1103(3)
<cfpop>
1106(2)
<cfprocessingdirective>
1108(2)
<cfprocparam>
1110(1)
<cfprocresult>
1111(1)
<cfproperty>
1111(2)
<cfquery>
1113(3)
<cfqueryparam>
1116(2)
<cfregistry>
1118(2)
<cfreport>
1120(2)
<cfreportparam>
1122(1)
<cfrethrow>
1122(1)
<cfreturn>
1123(1)
<cfsavecontent>
1123(1)
<cfschedule>
1124(2)
<cfscript>
1126(1)
<cfsearch>
1126(4)
<cfselect>
1130(2)
<cfservlet>
1132(1)
<cfservletparam>
1132(1)
<cfset>
1133(1)
<cfsetting>
1134(1)
<cfsilent>
1135(1)
<cfslider>
1135(3)
<cfstoredproc>
1138(1)
<cfswitch>
1139(1)
<cftable>
1140(2)
<cftextarea>
1142(4)
<cftextinput>
1146(1)
<cfthrow>
1146(1)
<cftimer>
1147(2)
<cftrace>
1149(1)
<cftransaction>
1150(2)
<cftree>
1152(4)
<cftreeitem>
1156(1)
<cftry>
1157(2)
<cfupdate>
1159(1)
<cfwddx>
1160(2)
<cfxml>
1162(3)
APPENDIX C ColdFusion Function Reference
1165(130)
Functions by Topic
1165(20)
String-Manipulation Functions
1165(2)
Date and Time Functions
1167(3)
Data Formatting Functions
1170(1)
Mathematical Functions
1171(1)
International Functions
1172(2)
List-Manipulation Functions
1174(2)
Array-Manipulation Functions
1176(1)
Structure-Manipulation Functions
1177(1)
Query-Manipulation Functions
1178(1)
Security Functions
1178(1)
System Functions
1179(1)
Client Variable-Manipulation Functions
1180(1)
Expression Evaluation Functions
1180(1)
Bit- and Set-Manipulation Functions
1180(1)
Conversion Functions
1181(1)
XML Functions
1181(1)
Event Gateway Functions
1182(1)
SOAP Functions
1183(1)
Miscellaneous Functions
1183(2)
Alphabetical List of ColdFusion Functions
1185(110)
Abs()
1185(1)
Acos()
1185(1)
AddSoapRequestHeader
1185(1)
AddSoapResponseHeader
1186(1)
ArrayAppend()
1187(1)
ArrayAvg()
1187(1)
ArrayClear()
1188(1)
ArrayDeleteAt()
1188(1)
ArrayInsertAt()
1188(1)
ArrayIsEmpty()
1189(1)
ArrayLen()
1189(1)
ArrayMax()
1189(1)
ArrayMin()
1190(1)
ArrayNew()
1190(1)
ArrayPrepend()
1190(1)
ArrayResize()
1191(1)
ArraySet()
1191(1)
ArraySort()
1191(1)
ArraySum()
1192(1)
ArraySwap
1192(1)
ArrayToList()
1192(1)
Asc()
1193(1)
Asin()
1193(1)
Atn()
1193(1)
AuthenticatedContext()
1193(1)
AuthenticatedUser()
1194(1)
BinaryDecode
1194(1)
BinaryEncode
1194(1)
BitAnd()
1194(1)
BitMaskClear()
1195(1)
BitMaskRead()
1195(1)
BitMaskSet()
1195(1)
BitNot()
1196(1)
BitOr()
1196(1)
BitSHLN()
1196(1)
BitSHRN()
1196(1)
BitXor()
1197(1)
Ceiling()
1197(1)
CharsetDecode()
1197(1)
CharsetEncode()
1198(1)
Chr()
1198(1)
Cjustify()
1199(1)
Compare()
1199(1)
CompareNoCase()
1199(1)
Cos()
1200(1)
CreateDate()
1200(1)
CreateDateTime()
1201(1)
CreateOdbcDate()
1201(1)
CreateOdbcDateTime()
1201(1)
CreateOdbcTime()
1202(1)
CreateObject()
1202(2)
CreateTime()
1204(1)
CreateTimeSpan()
1205(1)
DateAdd()
1205(1)
DateCompare()
1206(1)
DateConvert()
1206(1)
DateDiff()
1206(1)
DateFormat()
1207(1)
DatePart()
1208(1)
Day()
1208(1)
DayOfWeek()
1209(1)
DayOfWeekAsString()
1209(1)
DayOfYear()
1209(1)
DaysInMonth()
1210(1)
DaysInYear()
1210(1)
DE()
1211(1)
DecimalFormat()
1211(1)
Decrypt()
1212(1)
DeleteClientVariable()
1213(1)
DirectoryExists()
1213(1)
DollarFormat()
1213(1)
Duplicate()
1214(1)
Encrypt()
1214(1)
Exp()
1215(1)
ExpandPath()
1215(1)
Evaluate()
1215(1)
FileExists()
1215(1)
Find()
1216(1)
FindNoCase()
1216(1)
FindOneOf()
1217(1)
FirstDayOfMonth()
1217(1)
Fix()
1218(1)
FormatBaseN()
1218(1)
GenerateSecretKey()
1218(1)
GetBaseTagData()
1219(1)
GetBaseTagList()
1219(1)
GetBaseTemplatePath()
1219(1)
GetClientVariablesList()
1220(1)
GetContextRoot()
1220(1)
GetCurrentTemplatePath()
1220(1)
GetDirectoryFromPath()
1221(1)
GetException()
1221(1)
GetFileFromPath()
1221(1)
GetFunctionList()
1221(1)
GetGatewayHelper()
1222(1)
GetHttpRequestData()
1222(1)
GetHttpTimeString()
1222(1)
GetLocale()
1223(1)
GetLocaleDisplayName()
1223(1)
GetMetaData()
1223(2)
GetMetricData()
1225(1)
GetPageContext()
1225(1)
GetProfileString()
1226(1)
GetSoapRequest()
1226(1)
GetSoapRequestHeader()
1226(1)
GetSoapResponse()
1227(1)
GetSoapResponseHeader()
1227(1)
GetTempDirectory()
1228(1)
GetTempFile()
1228(1)
GetTemplatePath()
1228(1)
GetK2ServerCollections()
1228(1)
GetK2ServerDocCount()
1228(1)
GetK2ServerDocCountLimit()
1228(1)
GetTickCount()
1229(1)
GetTimeZoneInfo()
1229(1)
GetToken()
1230(1)
Hash()
1230(1)
Hour()
1231(1)
HTMLCodeFormat()
1232(1)
HTMLEditFormat()
1232(1)
IIf()
1232(1)
IncrementValue()
1233(1)
InputBaseN()
1233(1)
Insert()
1233(1)
Int()
1234(1)
IsArray()
1234(1)
IsAuthenticated()
1234(1)
IsAuthorized()
1234(1)
IsBinary()
1235(1)
IsBoolean()
1235(1)
IsCustomFunction()
1235(1)
IsDebugMode()
1235(1)
IsDefined()
1236(1)
IsDate
1236(1)
IsK2ServerDocCountExceeded()
1237(1)
IsK2ServerOnline()
1237(1)
IsLeapYear()
1237(1)
IsNumeric()
1237(1)
IsNumericDate()
1238(1)
IsObject()
1238(1)
IsProtected()
1239(1)
IsSimpleValue()
1239(1)
IsSoapRequest()
1239(1)
IsStruct()
1239(1)
IsQuery()
1239(1)
IsUserInRole()
1240(1)
IsWDDX()
1240(1)
IsXML()
1241(1)
IsXmlAttribute()
1241(1)
IsXMLDoc()
1241(1)
IsXMLElem()
1242(1)
IsXmlNode()
1243(1)
IsXMLRoot()
1243(1)
JavaCast()
1244(1)
JSStringFormat()
1244(1)
LCase()
1244(1)
Left()
1245(1)
Len()
1245(1)
ListAppend()
1245(1)
ListChangeDelims()
1245(1)
ListContains()
1246(1)
ListContainsNoCase()
1246(1)
ListDeleteAt()
1247(1)
ListFind()
1247(1)
ListFindNoCase()
1247(1)
ListFirst()
1248(1)
ListGetAt()
1248(1)
ListInsertAt()
1248(1)
ListLast()
1249(1)
ListLen()
1249(1)
ListPrepend()
1249(1)
ListSort()
1250(1)
ListToArray()
1250(1)
ListQualify()
1250(1)
ListRest()
1251(1)
ListSetAt()
1251(1)
ListValueCount()
1251(1)
ListValueCountNoCase()
1252(1)
LJustify()
1252(1)
Log()
1252(1)
Log10()
1253(1)
LSCurrencyFormat()
1253(1)
LSDateFormat()
1253(1)
LSEuroCurrencyFormat()
1254(1)
LSIsCurrency()
1255(1)
LSIsDate()
1255(1)
LSIsNumeric()
1256(1)
LSNumberFormat()
1256(1)
LSParseCurrency()
1257(1)
LSParseDateTime()
1257(1)
LSParseEuroCurrency()
1257(1)
LSParseNumber()
1258(1)
LSTimeFormat()
1258(1)
LTrim()
1259(1)
Max()
1259(1)
Mid()
1259(1)
Min()
1260(1)
Minute()
1260(1)
Month()
1260(1)
MonthAsString()
1260(1)
Now()
1261(1)
NumberFormat()
1261(2)
ParagraphFormat()
1263(1)
ParameterExists()
1263(1)
ParseDateTime()
1263(1)
Pi()
1264(1)
PreserveSingleQuotes()
1264(1)
Quarter()
1264(1)
QueryAddColumn()
1265(1)
QueryAddRow()
1266(1)
QueryNew()
1266(1)
QuerySetCell()
1266(1)
QuotedValueList()
1267(1)
Rand()
1267(1)
Randomize()
1267(1)
RandRange()
1268(1)
REFind()
1268(1)
REFindNoCase()
1269(1)
ReleaseComObject()
1269(1)
RemoveChars()
1269(1)
RepeatString()
1270(1)
Replace()
1270(1)
ReReplace()
1271(1)
ReReplaceNoCase()
1271(1)
ReplaceList()
1271(1)
Reverse()
1272(1)
Right()
1272(1)
RJustify()
1273(1)
Round()
1273(1)
RTrim()
1273(1)
Second()
1273(1)
SendGatewayMessage()
1274(1)
SetLocale()
1274(1)
SetProfileString()
1275(1)
SetVariable()
1275(1)
Sgn()
1275(1)
Sin()
1275(1)
SpanExcluding()
1276(1)
SpanIncluding()
1276(1)
Sqr()
1276(1)
StripCR()
1277(1)
StructAppend()
1277(1)
StructClear()
1277(1)
StructCopy()
1278(1)
StructCount()
1278(1)
StructDelete()
1278(1)
StructFind()
1279(1)
StructFindKey()
1279(1)
StructFindValue()
1279(1)
StructGet()
1280(1)
StructInsert()
1280(1)
StructIsEmpty()
1280(1)
StructKeyArray()
1280(1)
StructKeyExists()
1281(1)
StructKeyList()
1281(1)
StructNew()
1281(1)
StructSort()
1282(1)
StructUpdate()
1282(1)
Tan()
1282(1)
TimeFormat()
1282(1)
ToBase64()
1283(1)
ToBinary()
1284(1)
ToScript()
1284(1)
ToString()
1285(1)
Trim()
1286(1)
UCase()
1286(1)
URLDecode()
1286(1)
URLEncodedFormat()
1286(1)
Val()
1287(1)
WriteOutput()
1287(1)
ValueList()
1287(1)
Week()
1288(1)
Wrap()
1288(1)
XMLChildPos()
1289(1)
XMLElemNew()
1289(1)
XMLFormat()
1289(1)
XMLGetNodeType()
1290(1)
XMLNew()
1291(1)
XMLParse()
1291(1)
XMLSearch()
1292(1)
XMLTransform()
1292(1)
XMLValidate()
1292(2)
Year()
1294(1)
YesNoFormat()
1294(1)
APPENDIX D Special ColdFusion Variables and Result Codes
1295(18)
Special ColdFusion Variables and Result Codes
1295(18)
Attribute Variables
1296(1)
Caller Variables
1296(1)
CGI Variables
1296(4)
<cfcatch> Variables
1300(1)
<cfcollection action=``list''> Query Columns
1300(1)
<cfdirectory action=``list''> Query Columns
1301(1)
<cffile action=``upload''> Variables
1301(1)
<cfftp> Variables
1302(1)
<cfftp action=``ListDir''> Query Columns
1303(1)
<cfhttp> Variables
1303(1)
<cfldap action=``query''> Query columns
1304(1)
<cfpop action=``GetHeaderOnly|GetAll''> Query Columns
1304(1)
<cfquery> Variables
1305(1)
<cfregistry> Query Variables
1306(1)
<cfsearch> Results Variables
1306(1)
<cfservlet> Variables
1307(1)
<cfstoredproc> Variables
1307(1)
client Variables
1308(1)
cookie Variables
1308(1)
error Variables
1308(1)
form Variables
1309(1)
Query Variables
1309(1)
request Variables
1310(1)
server Variables
1310(1)
session Variables
1310(1)
ThisTag Variables
1311(1)
url Variables
1311(2)
APPENDIX E Verity Search Language
1313(10)
Using Angle Brackets Around Operators
1313(1)
Operators Are Not Case Sensitive
1314(1)
Using Prefix Instead of Infix Notation
1314(1)
Searching for Special Characters as Literals
1314(1)
Understanding Concept Operators
1314(1)
Understanding Evidence Operators
1315(2)
Understanding Proximity Operators
1317(2)
Understanding Relational Operators
1319(1)
Understanding Search Modifiers
1320(1)
Understanding Score Operators
1321(2)
APPENDIX F ColdFusion MX 7 Directory Structure
1323(10)
bin
1323(1)
bin/connectors
1324(1)
cache
1324(1)
CFX
1324(1)
CFX/examples
1324(1)
CFX/include
1324(1)
CFX/java/distrib/examples
1324(1)
charting
1325(1)
charting/cache
1325(1)
charting/fonts
1325(1)
charting/styles
1325(1)
CustomTags
1325(1)
db
1325(1)
db/slserver55
1325(1)
jintegra/bin
1325(1)
lib
1326(1)
logs
1327(1)
Mail
1328(1)
Mail/Spool
1328(1)
Mail/Undelivr
1328(1)
Meta-Inf
1328(1)
runtime
1328(1)
runtime/bin
1328(1)
runtime/jre
1328(1)
runtime/lib
1329(1)
runtime/logs
1329(1)
runtime/servers/coldfusion/Server-Inf
1329(1)
stubs
1329(1)
verity
1329(1)
verity/collections
1329(1)
wwwroot
1330(1)
wwwroot/cfdocs
1330(1)
wwwroot/CFIDE
1330(1)
wwwroot/CFIDE/adminapi
1330(1)
wwwroot/CFIDE/gettingstarted
1330(1)
wwwroot/CFIDE/installers
1330(1)
wwwroot/CFIDE/scripts/xsl
1330(1)
wwwroot/Web-Inf
1331(1)
wwwroot/Web-Inf/cfc-skeletons
1331(1)
wwwroot/Web-Inf/cfclasses
1331(1)
wwwroot/Web-Inf/cftags
1331(1)
wwwroot/Web-Inf/classes
1331(1)
wwwroot/Web-Inf/debug
1332(1)
wwwroot/Web-Inf/exception
1332(1)
wwwroot/Web-Inf/jsp
1332(1)
wwwroot/Web-Inf/lib
1332(1)
APPENDIX G Sample Application Data Files
1333(8)
Sample Application Data Files
1333(8)
The Actors Table
1333(1)
The Contacts Table
1334(1)
The Directors Table
1335(1)
The Expenses Table
1335(1)
The Films Table
1336(1)
The FilmsActors Table
1336(1)
The FilmsDirectors Table
1337(1)
The FilmsRatings Table
1337(1)
The Merchandise Table
1338(1)
The MerchandiseOrders Table
1338(1)
The MerchandiseOrdersItems Table
1339(1)
The UserRoles Table
1340(1)
Index 1341

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program