Visual Foxpro Best Practices For The Next Ten Years: Conference Proceedings Outline
Visual Foxpro Best Practices For The Next Ten Years: Conference Proceedings Outline
Errors happen
Programmer errors
Predictable errors
Unpredictable errors
User response
Application response
Address without notification
Address with notification
Try again
Avoid
Abandon
Logging errors
Who, when, where, why, adn how
Use VFP's LIST command
AERROR function array contents
Environment settings
Program call stack
Form datasessions
config.fpw contents
Tracking errors
Resources
Special thanks
Conclusion/Summary
Non-visual Classes
Conclusion
Designing Interaction
Basic principles
Consistency
Visibility
Feedback
Simplicity
Error-tolerance
Accessibility
Standards and gudinelines
Forms
Forms have title bars
Distinguish between dialogs and documents
Data entry forms are not modal
Keep dialogs to a minimum during processing
Dialogs are modal
Facilitate the most common action
Saving data
Great Lakes Great Database Workshop 2006
Outline 7
Finding data
Controls
Use the right control for the job
Use graphical buttosn in toolbars
Keep tooltips to tools
Give the user access only to options that are available
Make capitalization uniform
Supply reasonable defaults
Group related controls visually
Set navigation order correctly
Better applications
Resources
Naming conventions
Keys
Primary Keys
Candidate Keys
Foreign Keys
Indexes
Structural and Non-Structural Indexes
Should you Index on DELETED()
Updating Records
Data Buffering
What do we mean by 'buffering' anyway?
Buffering strategies
8 Visual FoxPro Best Practices for the Next Ten Years
Locking strategies
Buffering modes
What does all this mean when creating data-bound forms?
So how should we set up buffering in a form?
Using BufferModeOverride
Using CursorSetProp()
So what mode of buffering should I use in my forms?
Transactions
Restrictions and limitations
When to use a transaction?
What effect does rollback have on data?
Does that mean we can use transactions to enable SQL to see 'pending' changes?
How does a transaction impact on FoxPro's locking mechanisms?
Can multiple transactions exist simultaneously?
Getting connected
Connecting to a database server with ODBC
Connection Strings
Great Lakes Great Database Workshop 2006
Outline 9
Using SQLStringConnect()
Named Connections
Using SQLConnect()
How do I connect to a database using OLEDB
Connecting to a database that is not installed locally
Which is beter, ODBC or OLEDB
Which is better, DSNs or Connection Strings
Transactions management
Stored procedures
Conclusion/Summary
Bibliography
Biography
Sample Files
PRG files
Form file
VCX-based classes
Reports
VFP Settings
Setting REPORTBEHAVIOR
Report's Private Datasession
The Details
The Data Class
The Front End
Checkbox class
Container class
Naming convention
How things interact
The Output Class
cReportMode
cProgressMess
lCancelProcessing
lDontConfirmOutput
12 Visual FoxPro Best Practices for the Next Ten Years
cDefaultOutputFile
cOutput
lDebug
Process flow
Debugging
Bugs that trigger an error
At development time
At runtime
Bugs that give incorrect results
That doesn't add up!
Only your user knows for sure
And finally...
Error Reporting
Diagnostic Logging
Other Error Handling ideas
Subscription management
Customer Purchase
Software Activation
Subscription Renewal
Other Subscription Issues
Support Policies
Summary
Biography
16 Visual FoxPro Best Practices for the Next Ten Years
Passing Data
Conclusion
Manual builds
Semi-automatic builds
Consider installing the VFP OLE DB provider and the ODBC driver
Conclusion/Summary
* eof