SlideShare una empresa de Scribd logo
1 de 31
E-CS



Client Server Data Access
 Techniques with Visual
          FoxPro
               Mike Feltman
               F1 Technologies
Who Am I?
•   mfeltman@f1tech.com
•   F1 Technologies Partner
•   Visual FoxExpress Developer
•   Former Fox Software Employee
•   Application Programmer
Our Goals
• Provide you with an overview of each of the
  data access techniques
• Make you aware of the pros and cons of the
  various techniques
• Equip you with the information necessary to
  make an informed choice of data access
  technique.
Agenda
• Overview of Various Data Access Techniques
• Evaluation Categories
  –   Ease of Use
  –   Performance and Scalability
  –   Maintainability
  –   Flexibility
  –   Security Concerns/Issues
• Mixing and Matching Techniques
The Data Access Methods
•   Remote Views
•   Dynamic SQL Pass-Through
•   Stored Procedures
•   CursorAdapter
•   ADO
•   XML
Ease of Use
•   UI and Tool Support
•   Data Binding
•   Normalcy
•   Completeness
•   Plays Well With Others
•   Distribution Difficulties
Remote Views
• UI & Tools Support
   –   View Builder, GenDBC
   –   eView & View Editor
   –   xCase
   –   DBCX
• Data Binding
   – Full Support in Data Environment
• Normalcy
   – Most similar to tables
Remote Views
• Completeness
   –   Full Language Support in VFP
   –   Limited Access to Back-end Features
• Plays Well With Others
   – Very well, Can share connections
• Distribution
   – DBC Distribution
Dynamic SPT – Ease of Use
• UI and Tool Support
  – None Native, Some 3rd Party
• Data Binding
  – Manual or Tricks
• Normalcy
  – Requires More Code to work like a View
    (CursorSetProp())
Dynamic SPT – Ease of Use
• Completeness
  – Access to full back-end
• Plays well with others
  – Very well except for ADO
• Distribution Issues
  – None
Stored Procedures – Ease of Use
• UI and Tool Support
  –   None in VFP
  –   DataClas
  –   Enterprise Manager and QueryAnalyzer
  –   Mike Levy’s Classes from various conferences
Stored Procedures – Ease of Use
• Completeness
  –   Access to everything the back-end has to offer
  –   Great for Multiple and/or Complex Statements
• Distribution Difficulties
  – Must update stored procedures
  – Code Conflict Resolution
CursorAdapter with ODBC – Ease of
              Use
• Similar to Remote Views
• UI and Tool Support
  – CursorAdapter & DE Builder
  – 3rd Party Tools
• Normalcy
  – Just like a Table or View
CursorAdapter with ODBC – Ease of
              Use
• Completeness
  – More code than remote views, less than other
    techniques
• Plays Well With Others
  – Easiest
CursorAdapter with ADO/OLEDB –
          Ease of Use
• Similar to CursorAdapter with ODBC
• Plays Well With Others
  – Cannot share connection with other data access
    strategies
• Distribution Concerns
  – MDAC
Performance and Scalability
• The differences between various techniques are
  generally minor.
• Server, Workstation & LAN/WAN performance and
  scalability must ALL be taken into account
• Size (& Contents) Matters
• Query optimization in SQL Server is much different
  than in VFP. Syntax vs. Content-based optimization.
Performance and Scalability
• Results can vary widely for the same tests.
• Those with much more experience than me with
  large databases (million rows+) all swear Stored
  Procedures produce the best performance.
• Microsoft tends to get very angry at those who
  publish SQL Server benchmarks.
Maintainability
• Code Requirements
  – How much code?
• Maintenance Points
  – How many?
  – Easy to find and work with?
• Tools
  – Are there any?
• Schema Changes
  – What happens when schema changes?
Maintainability - Remote Views
– Code Requirements
  • Little
– Maintenance Points
  • Primarily the views themselves
  • Custom classes
Maintainability - Remote Views
– Tools
  • View Designer, eView, ViewEditor, xCase, GenDBC
– Schema Changes
  • Use xCase
  • Unit test remote views
Maintainability - Dynamic SPT
– Code Requirements
  • One good base class
  • App specific subclasses
– Maintenance Points
  • Custom Class Code
Maintainability - Dynamic SPT
– Tools
  • None
– Schema Changes
  • Maybe do nothing
  • Unit test data access code
Maintainability - Stored
          Procedures
– Code Requirements
  • VFP – One good set of classes
  • 4 or more Procedures for basically every table
– Maintenance Points
  • Custom classes
  • Actual Stored Procedures
Maintainability - Stored
          Procedures
– Tools
  • None for VFP
  • DataClas, 3rd Party
– Schema Changes
  • All Procedures
  • Unit Test all Stored Procedures
Maintainability - CursorAdapters
– Code Requirements
  • One good base class
– Maintenance Points
  • Individual subclasses
– Tools
  • 3rd party, DE and CA Builder
– Schema Changes
  • Modify CA properties
  • Unit test all cursor adapters
Flexibility
• Remote Views
  – Inflexible without other techniques
• Dynamic SPT
  – Highly flexible with custom classes, but overly
    difficult to write
Flexibility
• Stored Procedures
  – Very Flexible
  – Much like Dynamic SQL Pass-Through
• Cursor Adapter
  – Most Flexible – mix & match with all techniques
  – Native class provides appropriate locations for
    customization
Security
• Stored Procedures – Execute Rights on Stored
  Procedures Only
• All Others – Provide direct rights to update
  tables or views
• DSN Based Connection vs. Connection String
  is more important
• Use Application Roles
Mixing and Matching
• CURSORSETPROP()
    –   Make SPT Cursor Updatable
    –   Load data into remote view
•   USE … CONNSTRING (handle)
•   CursorAdapter.CursorAttach
•   SQLSTRINGCONNECT()
Summary
•   Be Informed!
•   It is Not an “All or Nothing” Situation
•   Choose the Best Approach for the Application
•   Mix and Match When Necessary.
Thank you!

Más contenido relacionado

La actualidad más candente

PHP, LAMP Stack & WordPress
PHP, LAMP Stack & WordPressPHP, LAMP Stack & WordPress
PHP, LAMP Stack & WordPressSuman Srinivasan
 
Why we love ArangoDB. The hunt for the right NosQL Database
Why we love ArangoDB. The hunt for the right NosQL DatabaseWhy we love ArangoDB. The hunt for the right NosQL Database
Why we love ArangoDB. The hunt for the right NosQL DatabaseAndreas Jung
 
Entity Framework for Cross platform apps
Entity Framework for Cross platform appsEntity Framework for Cross platform apps
Entity Framework for Cross platform appsSwaminathan Vetri
 
Scala adoption by enterprises
Scala adoption by enterprisesScala adoption by enterprises
Scala adoption by enterprisesMike Slinn
 
Bccon use notes objects in memory and other useful
Bccon   use notes objects in memory and other usefulBccon   use notes objects in memory and other useful
Bccon use notes objects in memory and other usefulFrank van der Linden
 
NoSQL Database in .NET Apps
NoSQL Database in .NET AppsNoSQL Database in .NET Apps
NoSQL Database in .NET AppsShiju Varghese
 
Multiply like rabbits with rabbit mq
Multiply like rabbits with rabbit mqMultiply like rabbits with rabbit mq
Multiply like rabbits with rabbit mqColdFusionConference
 
JSON as a SQL Datatype
JSON as a SQL DatatypeJSON as a SQL Datatype
JSON as a SQL DatatypeRobert Sell
 
NoSQL and CouchDB: the view from MOO
NoSQL and CouchDB: the view from MOONoSQL and CouchDB: the view from MOO
NoSQL and CouchDB: the view from MOOJames Hollingworth
 
Cassandra Summit 2015 - Building a multi-tenant API PaaS with DataStax Enterp...
Cassandra Summit 2015 - Building a multi-tenant API PaaS with DataStax Enterp...Cassandra Summit 2015 - Building a multi-tenant API PaaS with DataStax Enterp...
Cassandra Summit 2015 - Building a multi-tenant API PaaS with DataStax Enterp...Restlet
 
Moving to the Cloud: AWS, Zend, RightScale
Moving to the Cloud: AWS, Zend, RightScaleMoving to the Cloud: AWS, Zend, RightScale
Moving to the Cloud: AWS, Zend, RightScalemmoline
 
Wei's Self Intro
Wei's Self IntroWei's Self Intro
Wei's Self Introsunmast
 
What is a good technology stack today?
What is a good technology stack today?What is a good technology stack today?
What is a good technology stack today?Netlight Consulting
 

La actualidad más candente (18)

PHP, LAMP Stack & WordPress
PHP, LAMP Stack & WordPressPHP, LAMP Stack & WordPress
PHP, LAMP Stack & WordPress
 
Why we love ArangoDB. The hunt for the right NosQL Database
Why we love ArangoDB. The hunt for the right NosQL DatabaseWhy we love ArangoDB. The hunt for the right NosQL Database
Why we love ArangoDB. The hunt for the right NosQL Database
 
Entity Framework for Cross platform apps
Entity Framework for Cross platform appsEntity Framework for Cross platform apps
Entity Framework for Cross platform apps
 
Scala adoption by enterprises
Scala adoption by enterprisesScala adoption by enterprises
Scala adoption by enterprises
 
Bccon use notes objects in memory and other useful
Bccon   use notes objects in memory and other usefulBccon   use notes objects in memory and other useful
Bccon use notes objects in memory and other useful
 
NoSQL Database in .NET Apps
NoSQL Database in .NET AppsNoSQL Database in .NET Apps
NoSQL Database in .NET Apps
 
Laravel 4 presentation
Laravel 4 presentationLaravel 4 presentation
Laravel 4 presentation
 
.Net framework
.Net framework.Net framework
.Net framework
 
Multiply like rabbits with rabbit mq
Multiply like rabbits with rabbit mqMultiply like rabbits with rabbit mq
Multiply like rabbits with rabbit mq
 
JSON as a SQL Datatype
JSON as a SQL DatatypeJSON as a SQL Datatype
JSON as a SQL Datatype
 
Do you queue
Do you queueDo you queue
Do you queue
 
NoSQL and CouchDB: the view from MOO
NoSQL and CouchDB: the view from MOONoSQL and CouchDB: the view from MOO
NoSQL and CouchDB: the view from MOO
 
Cassandra Summit 2015 - Building a multi-tenant API PaaS with DataStax Enterp...
Cassandra Summit 2015 - Building a multi-tenant API PaaS with DataStax Enterp...Cassandra Summit 2015 - Building a multi-tenant API PaaS with DataStax Enterp...
Cassandra Summit 2015 - Building a multi-tenant API PaaS with DataStax Enterp...
 
Moving to the Cloud: AWS, Zend, RightScale
Moving to the Cloud: AWS, Zend, RightScaleMoving to the Cloud: AWS, Zend, RightScale
Moving to the Cloud: AWS, Zend, RightScale
 
Road Trip To Component
Road Trip To ComponentRoad Trip To Component
Road Trip To Component
 
Wei's Self Intro
Wei's Self IntroWei's Self Intro
Wei's Self Intro
 
Breaking data
Breaking dataBreaking data
Breaking data
 
What is a good technology stack today?
What is a good technology stack today?What is a good technology stack today?
What is a good technology stack today?
 

Destacado

What’s new in x case 8
What’s new in x case 8What’s new in x case 8
What’s new in x case 8Mike Feltman
 
Feltman collections
Feltman collectionsFeltman collections
Feltman collectionsMike Feltman
 
Introduction to afp
Introduction to afpIntroduction to afp
Introduction to afpMike Feltman
 
Html for desktop applications
Html for desktop applicationsHtml for desktop applications
Html for desktop applicationsMike Feltman
 
N tier web applications
N tier web applicationsN tier web applications
N tier web applicationsMike Feltman
 
Where do you want to go today 2007
Where do you want to go today   2007Where do you want to go today   2007
Where do you want to go today 2007Mike Feltman
 
Where do you want to go today
Where do you want to go todayWhere do you want to go today
Where do you want to go todayMike Feltman
 
Docking from a z in visual fox pro 9
Docking from a z in visual fox pro 9Docking from a z in visual fox pro 9
Docking from a z in visual fox pro 9Mike Feltman
 

Destacado (10)

What’s new in x case 8
What’s new in x case 8What’s new in x case 8
What’s new in x case 8
 
VFP & Ajax
VFP & AjaxVFP & Ajax
VFP & Ajax
 
Feltman collections
Feltman collectionsFeltman collections
Feltman collections
 
Introduction to afp
Introduction to afpIntroduction to afp
Introduction to afp
 
Html for desktop applications
Html for desktop applicationsHtml for desktop applications
Html for desktop applications
 
Feltman js4 vfp
Feltman js4 vfpFeltman js4 vfp
Feltman js4 vfp
 
N tier web applications
N tier web applicationsN tier web applications
N tier web applications
 
Where do you want to go today 2007
Where do you want to go today   2007Where do you want to go today   2007
Where do you want to go today 2007
 
Where do you want to go today
Where do you want to go todayWhere do you want to go today
Where do you want to go today
 
Docking from a z in visual fox pro 9
Docking from a z in visual fox pro 9Docking from a z in visual fox pro 9
Docking from a z in visual fox pro 9
 

Similar a Client server

Architect’s Open-Source Guide for a Data Mesh Architecture
Architect’s Open-Source Guide for a Data Mesh ArchitectureArchitect’s Open-Source Guide for a Data Mesh Architecture
Architect’s Open-Source Guide for a Data Mesh ArchitectureDatabricks
 
A machine learning and data science pipeline for real companies
A machine learning and data science pipeline for real companiesA machine learning and data science pipeline for real companies
A machine learning and data science pipeline for real companiesDataWorks Summit
 
Day 9 - PostgreSQL Application Architecture
Day 9 - PostgreSQL Application ArchitectureDay 9 - PostgreSQL Application Architecture
Day 9 - PostgreSQL Application ArchitectureBarry Jones
 
Hpc lunch and learn
Hpc lunch and learnHpc lunch and learn
Hpc lunch and learnJohn D Almon
 
Enterprise Data Integration for Microsoft Dynamics CRM
Enterprise Data Integration for Microsoft Dynamics CRMEnterprise Data Integration for Microsoft Dynamics CRM
Enterprise Data Integration for Microsoft Dynamics CRMDaniel Cai
 
FlexDeploy Product Technical Overview
FlexDeploy Product Technical OverviewFlexDeploy Product Technical Overview
FlexDeploy Product Technical OverviewDalibor Blazevic
 
Migration from Oracle to PostgreSQL: NEED vs REALITY
Migration from Oracle to PostgreSQL: NEED vs REALITYMigration from Oracle to PostgreSQL: NEED vs REALITY
Migration from Oracle to PostgreSQL: NEED vs REALITYAshnikbiz
 
SQL Server Worst Practices - EN
SQL Server Worst Practices - ENSQL Server Worst Practices - EN
SQL Server Worst Practices - ENGianluca Sartori
 
Bringing DevOps to the Database
Bringing DevOps to the DatabaseBringing DevOps to the Database
Bringing DevOps to the DatabaseMichaela Murray
 
SKILLWISE-SSIS DESIGN PATTERN FOR DATA WAREHOUSING
SKILLWISE-SSIS DESIGN PATTERN FOR DATA WAREHOUSINGSKILLWISE-SSIS DESIGN PATTERN FOR DATA WAREHOUSING
SKILLWISE-SSIS DESIGN PATTERN FOR DATA WAREHOUSINGSkillwise Group
 
PEARC17: Live Integrated Visualization Environment: An Experiment in General...
PEARC17: Live Integrated Visualization Environment: An Experiment in General...PEARC17: Live Integrated Visualization Environment: An Experiment in General...
PEARC17: Live Integrated Visualization Environment: An Experiment in General...moneyjh
 
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!Richard Robinson
 
Debugging Microservices - key challenges and techniques - Microservices Odesa...
Debugging Microservices - key challenges and techniques - Microservices Odesa...Debugging Microservices - key challenges and techniques - Microservices Odesa...
Debugging Microservices - key challenges and techniques - Microservices Odesa...Lohika_Odessa_TechTalks
 

Similar a Client server (20)

Lecture 9: Dynamic web application
Lecture 9: Dynamic web applicationLecture 9: Dynamic web application
Lecture 9: Dynamic web application
 
Architect’s Open-Source Guide for a Data Mesh Architecture
Architect’s Open-Source Guide for a Data Mesh ArchitectureArchitect’s Open-Source Guide for a Data Mesh Architecture
Architect’s Open-Source Guide for a Data Mesh Architecture
 
A machine learning and data science pipeline for real companies
A machine learning and data science pipeline for real companiesA machine learning and data science pipeline for real companies
A machine learning and data science pipeline for real companies
 
Day 9 - PostgreSQL Application Architecture
Day 9 - PostgreSQL Application ArchitectureDay 9 - PostgreSQL Application Architecture
Day 9 - PostgreSQL Application Architecture
 
Cloud Strategy
Cloud StrategyCloud Strategy
Cloud Strategy
 
Hpc lunch and learn
Hpc lunch and learnHpc lunch and learn
Hpc lunch and learn
 
Embedded
EmbeddedEmbedded
Embedded
 
Cheetah:Data Warehouse on Top of MapReduce
Cheetah:Data Warehouse on Top of MapReduceCheetah:Data Warehouse on Top of MapReduce
Cheetah:Data Warehouse on Top of MapReduce
 
Enterprise Data Integration for Microsoft Dynamics CRM
Enterprise Data Integration for Microsoft Dynamics CRMEnterprise Data Integration for Microsoft Dynamics CRM
Enterprise Data Integration for Microsoft Dynamics CRM
 
FlexDeploy Product Technical Overview
FlexDeploy Product Technical OverviewFlexDeploy Product Technical Overview
FlexDeploy Product Technical Overview
 
Migration from Oracle to PostgreSQL: NEED vs REALITY
Migration from Oracle to PostgreSQL: NEED vs REALITYMigration from Oracle to PostgreSQL: NEED vs REALITY
Migration from Oracle to PostgreSQL: NEED vs REALITY
 
SQL Server Worst Practices - EN
SQL Server Worst Practices - ENSQL Server Worst Practices - EN
SQL Server Worst Practices - EN
 
Bringing DevOps to the Database
Bringing DevOps to the DatabaseBringing DevOps to the Database
Bringing DevOps to the Database
 
SKILLWISE-SSIS DESIGN PATTERN FOR DATA WAREHOUSING
SKILLWISE-SSIS DESIGN PATTERN FOR DATA WAREHOUSINGSKILLWISE-SSIS DESIGN PATTERN FOR DATA WAREHOUSING
SKILLWISE-SSIS DESIGN PATTERN FOR DATA WAREHOUSING
 
Datastage Introduction To Data Warehousing
Datastage Introduction To Data WarehousingDatastage Introduction To Data Warehousing
Datastage Introduction To Data Warehousing
 
PEARC17: Live Integrated Visualization Environment: An Experiment in General...
PEARC17: Live Integrated Visualization Environment: An Experiment in General...PEARC17: Live Integrated Visualization Environment: An Experiment in General...
PEARC17: Live Integrated Visualization Environment: An Experiment in General...
 
OLAP
OLAPOLAP
OLAP
 
NoSql
NoSqlNoSql
NoSql
 
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
 
Debugging Microservices - key challenges and techniques - Microservices Odesa...
Debugging Microservices - key challenges and techniques - Microservices Odesa...Debugging Microservices - key challenges and techniques - Microservices Odesa...
Debugging Microservices - key challenges and techniques - Microservices Odesa...
 

Client server

  • 1. E-CS Client Server Data Access Techniques with Visual FoxPro Mike Feltman F1 Technologies
  • 2. Who Am I? • mfeltman@f1tech.com • F1 Technologies Partner • Visual FoxExpress Developer • Former Fox Software Employee • Application Programmer
  • 3. Our Goals • Provide you with an overview of each of the data access techniques • Make you aware of the pros and cons of the various techniques • Equip you with the information necessary to make an informed choice of data access technique.
  • 4. Agenda • Overview of Various Data Access Techniques • Evaluation Categories – Ease of Use – Performance and Scalability – Maintainability – Flexibility – Security Concerns/Issues • Mixing and Matching Techniques
  • 5. The Data Access Methods • Remote Views • Dynamic SQL Pass-Through • Stored Procedures • CursorAdapter • ADO • XML
  • 6. Ease of Use • UI and Tool Support • Data Binding • Normalcy • Completeness • Plays Well With Others • Distribution Difficulties
  • 7. Remote Views • UI & Tools Support – View Builder, GenDBC – eView & View Editor – xCase – DBCX • Data Binding – Full Support in Data Environment • Normalcy – Most similar to tables
  • 8. Remote Views • Completeness – Full Language Support in VFP – Limited Access to Back-end Features • Plays Well With Others – Very well, Can share connections • Distribution – DBC Distribution
  • 9. Dynamic SPT – Ease of Use • UI and Tool Support – None Native, Some 3rd Party • Data Binding – Manual or Tricks • Normalcy – Requires More Code to work like a View (CursorSetProp())
  • 10. Dynamic SPT – Ease of Use • Completeness – Access to full back-end • Plays well with others – Very well except for ADO • Distribution Issues – None
  • 11. Stored Procedures – Ease of Use • UI and Tool Support – None in VFP – DataClas – Enterprise Manager and QueryAnalyzer – Mike Levy’s Classes from various conferences
  • 12. Stored Procedures – Ease of Use • Completeness – Access to everything the back-end has to offer – Great for Multiple and/or Complex Statements • Distribution Difficulties – Must update stored procedures – Code Conflict Resolution
  • 13. CursorAdapter with ODBC – Ease of Use • Similar to Remote Views • UI and Tool Support – CursorAdapter & DE Builder – 3rd Party Tools • Normalcy – Just like a Table or View
  • 14. CursorAdapter with ODBC – Ease of Use • Completeness – More code than remote views, less than other techniques • Plays Well With Others – Easiest
  • 15. CursorAdapter with ADO/OLEDB – Ease of Use • Similar to CursorAdapter with ODBC • Plays Well With Others – Cannot share connection with other data access strategies • Distribution Concerns – MDAC
  • 16. Performance and Scalability • The differences between various techniques are generally minor. • Server, Workstation & LAN/WAN performance and scalability must ALL be taken into account • Size (& Contents) Matters • Query optimization in SQL Server is much different than in VFP. Syntax vs. Content-based optimization.
  • 17. Performance and Scalability • Results can vary widely for the same tests. • Those with much more experience than me with large databases (million rows+) all swear Stored Procedures produce the best performance. • Microsoft tends to get very angry at those who publish SQL Server benchmarks.
  • 18. Maintainability • Code Requirements – How much code? • Maintenance Points – How many? – Easy to find and work with? • Tools – Are there any? • Schema Changes – What happens when schema changes?
  • 19. Maintainability - Remote Views – Code Requirements • Little – Maintenance Points • Primarily the views themselves • Custom classes
  • 20. Maintainability - Remote Views – Tools • View Designer, eView, ViewEditor, xCase, GenDBC – Schema Changes • Use xCase • Unit test remote views
  • 21. Maintainability - Dynamic SPT – Code Requirements • One good base class • App specific subclasses – Maintenance Points • Custom Class Code
  • 22. Maintainability - Dynamic SPT – Tools • None – Schema Changes • Maybe do nothing • Unit test data access code
  • 23. Maintainability - Stored Procedures – Code Requirements • VFP – One good set of classes • 4 or more Procedures for basically every table – Maintenance Points • Custom classes • Actual Stored Procedures
  • 24. Maintainability - Stored Procedures – Tools • None for VFP • DataClas, 3rd Party – Schema Changes • All Procedures • Unit Test all Stored Procedures
  • 25. Maintainability - CursorAdapters – Code Requirements • One good base class – Maintenance Points • Individual subclasses – Tools • 3rd party, DE and CA Builder – Schema Changes • Modify CA properties • Unit test all cursor adapters
  • 26. Flexibility • Remote Views – Inflexible without other techniques • Dynamic SPT – Highly flexible with custom classes, but overly difficult to write
  • 27. Flexibility • Stored Procedures – Very Flexible – Much like Dynamic SQL Pass-Through • Cursor Adapter – Most Flexible – mix & match with all techniques – Native class provides appropriate locations for customization
  • 28. Security • Stored Procedures – Execute Rights on Stored Procedures Only • All Others – Provide direct rights to update tables or views • DSN Based Connection vs. Connection String is more important • Use Application Roles
  • 29. Mixing and Matching • CURSORSETPROP() – Make SPT Cursor Updatable – Load data into remote view • USE … CONNSTRING (handle) • CursorAdapter.CursorAttach • SQLSTRINGCONNECT()
  • 30. Summary • Be Informed! • It is Not an “All or Nothing” Situation • Choose the Best Approach for the Application • Mix and Match When Necessary.