|
|
|
|
|
Level: Intermediate |
|
Familiarity with VFP, DBC, Views |
|
|
|
|
What is Client-Server? |
|
Why Client-Server? |
|
Why NOT Client-Server? |
|
How? ODBC/SPT/Views |
|
Advanced Techniques |
|
Learning More |
|
|
|
|
Two separate processes |
|
Same or different machines |
|
|
|
|
|
Bandwidth |
|
VFP is designed for LANs |
|
Data size |
|
VFP limited to 2 Gb file size |
|
Security |
|
VFP tables can be read by anyone |
|
|
|
|
|
Resource Constraints |
|
Programmer skill & training |
|
Need for on-going DBA maintenance |
|
Infrastructure stability |
|
Performance |
|
Rushmore is still king |
|
Hardware can solve this |
|
|
|
|
|
Connectivity - DSNs & Connections |
|
Two Paths: SPT & Views |
|
SPT: Manual, full control |
|
Views: GUI, simpler, limited |
|
|
|
|
ODBC Data Set Names (DSN) |
|
SQLConnect() |
|
SQLStringConnect() |
|
|
|
|
|
DBC-defined Connections |
|
CREATE, DELETE, MODIFY, RENAME, DISPLAY
CONNECTION |
|
Beware: Share Connections |
|
Transactions are at the connection level |
|
|
|
|
Create graphically or programmatically: |
|
CREATE, DELETE, MODIFY, RENAME, DISPLAY VIEW |
|
|
|
|
Utility Functions: SQLTABLES(), SQLCOLUMNS() |
|
Connection functions, already covered |
|
SQLExec() passes commands to the server, via ODBC |
|
SQLCOMMIT(), SQLROLLBACK() completes
transactions |
|
|
|
|
|
SQLGetProp, SQLSetProp() |
|
works on Connections |
|
DBGetProp(), DBSetProp() |
|
works on DBC - persistent |
|
CursorSetProp(), CursorGetProp() |
|
works on open cursors |
|
|
|
|
|
SQL can be: |
|
Batched |
|
Fetched progressively |
|
Precompiled |
|
Requires a separate connection |
|
|
|
|
Start with ODBC against FoxPro |
|
Server “Lite” available from most vendors |
|
Use ODBC DSNs, Views |
|
Use GenDBC to see how commands & functions
work |
|
Start with automatic transactions |
|
|
|
|
|
What? Two separate processes |
|
Why? |
|
Bandwidth |
|
Data Size |
|
Security |
|
Why Not? |
|
Resource constraints |
|
How? Carefully! |
|
|