Вы находитесь на странице: 1из 77

Introduction to Visual FoxPro

The purpose of this course is to introduce you to ways to apply FoxPro to your day to day
microcomputer work. FoxPro is a database management program for the IBM and compatible
computers. It is produced by Fox Software (a Microsoft Corporation company). FoxPro is
compatible with most of the commands, programs and files.
This course is divided into six main sections: introduction to databases, general maintenance
functions, database design, searching, indexing, and reporting. The terminology and concepts
provide a base for FoxPro "literacy". The class exercises provide "hands-on" experience.
The course is designed for the first-time FoxPro user. More than 70% of the class time is hands-
on use of FoxPro.
Objectives
• Become familiar with the terminology and major functions of a database management
system (DBMS) using the new DBC or Database Container file.
• Edit existing, add new, and delete old database records from Visual FoxPro’s new Data
Session window, as well as from the command window.
• Design and create a database system using Visual FoxPro
• Search the database for particular information using the new Query Wizard
• Index the database to view it in different orders
• Design and run a report on the database file using the Report designer.
Y [
ou Hi
ar d
e e
in ]
vit [
ed H
e
to l
vo p
te
u
on s
th
e w
i
gl t
ob h
al
t
sy r
so a
ps n
s
pr l
op
os
al.
Cl
ic
k
a
he t
re i
for o
n
m s
or !
e ]
inf
or
m
ati
on
.

Microsoft Access
From Wikipedia, the free encyclopedia
Jump to: navigation, search
This article needs additional citations for verification.
Please help improve this article by adding reliable references. Unsourced material may be challenged
and removed. (August 2006)

The neutrality of this article is disputed. Please see the discussion on the talk page.
Please do not remove this message until the dispute is resolved. (February 2009)

Microsoft Access
Office Access 2010 running on Microsoft Windows XP.

Developer(s) Microsoft

Initial release 1.0 / November 1992

12.0.6425.1000 (2007 SP2) / 2009-04-


Stable release
28; 8 months ago

Operating system Microsoft Windows

Type RDBMS

License Proprietary EULA

Website http://office.microsoft.com/access

Microsoft Office Access, previously known as Microsoft Access, is a relational database


management system from Microsoft that combines the relational Microsoft Jet Database Engine
with a graphical user interface and software development tools. It is a member of the Microsoft
Office suite of applications and is included in the Professional and higher versions for Office and
also sold separately.
Access stores data in its own format based on the Access Jet Database Engine. It can also import
or link directly to data stored in other Access databases, Excel, SharePoint lists, text, XML,
Outlook, HTML, dBase, Paradox, Lotus 1-2-3, or any ODBC-compliant data container including
Microsoft SQL Server, Oracle, MySQL and PostgreSQL. Software developers and data
architects can use it to develop application software and non-programmer "power users" can use
it to build simple applications. Like other Office applications Access is supported by Visual
Basic for Applications, an object-oriented programming language that can reference a wide
variety of objects, including DAO (Data Access Objects) and ActiveX Data Objects, and many
other ActiveX components provided by Microsoft or by third parties. Visual objects used in
forms and reports expose their methods and properties gracefully in the VBA programming
environment, and a huge selection of Windows operating system functions can be declared and
called from VBA code modules, making Access a rich programming environment.

Contents
[hide]
• 1 History
• 2 Uses
• 3 Features
• 4 Development
○ 4.1 Split Database Architecture
○ 4.2 Access to SQL Server Upsizing
• 5 Protection
• 6 File extensions
• 7 Versions
• 8 Competing software
• 9 References
• 10 External links

[edit] History
Access version 1.0 was released in 13 November 1992, quickly followed in May 1993 by an
Access 1.1 release to improve compatibility with other Microsoft products and include the
Access Basic programming language.
Microsoft specified the minimum hardware requirements for Access v2.0: Microsoft Windows
v3.1 with 4 MB of RAM required, 6 MB RAM recommended; 8 MB of available hard disk space
required, 14 MB hard disk space recommended. The product was shipped on seven 1.44 MB
diskettes. The manual shows a 1993 copyright date.
Originally, the software worked well with relatively small databases but testing showed some
circumstances caused data corruption. For example, file sizes over 10 MB were problematic
(note that most hard disks were smaller than 500 MB at the time this was in wide use), and the
Getting Started manual warns about a number of circumstances where obsolete device drivers or
incorrect configurations can cause data loss. With the phasing out of Windows 95, 98 and ME,
improved network reliability, and Microsoft having released 8 service packs for the Jet Database
Engine, the reliability of Access databases has been vastly improved in both size and number of
users.
With Office 95, Microsoft Access 95 became part of the Microsoft Office Professional Suite
joining Microsoft Excel, Word, and PowerPoint and transitioning from Access Basic to Visual
Basic for Applications (VBA). Since then, there have been releases of Microsoft Access with
each release of Office. This includes Access 97 (version 8.0), Access 2000 (version 9.0), Access
2002 (version 10.0), Access 2003 (version 11.5), and Access 2007 (version 12.0).
The native Access database format (the Jet MDB Database) has also evolved over the years.
Formats include Access 1.0, 1.1, 2.0, 95, 97, 2000, 2002, and 2007. The most significant
transition was from the Access 97 to the Access 2000 format; which is not backward compatible
with earlier versions of Access. At the time of this writing, all newer versions of Access support
the Access 2000 format. New features were added to the Access 2002 format which can be used
by Access 2002, 2003, and 2007.
In Access 2007, a new database format was introduced: ACCDB. The ACCDB supports
complex data types such as multivalue and attachment fields. These new field types are
essentially recordsets in fields and allow the storage of multiple values in one field.
Prior to the introduction of Access, the desktop database market was dominated by Borland with
their Paradox and dBase programs, and FoxPro. Microsoft Access was the first mass market
database program for Windows. With the purchase of FoxPro and incorporating its Rushmore
query optimization routines into Access, Microsoft Access quickly became the dominant
database for Windows effectively eliminating the competition which failed to transition from the
MS-DOS world.[1]
Access's initial codename was Cirrus; the forms engine was called Ruby. This was before Visual
Basic - Bill Gates saw the prototypes and decided that the BASIC language component should be
co-developed as a separate expandable application, a project called Thunder. The two projects
were developed separately as the underlying forms engines were incompatible with each other;
however, these were merged together again after VBA.
Access was also the name of a communications program from Microsoft, meant to compete with
ProComm and other programs. This proved a failure and was dropped.[2] Years later, Microsoft
reused the name for its database software.
[edit] Uses
Microsoft Access is used to create simple database solutions. Access tables support a variety of
standard field types, indices, and referential integrity. Access also includes a query interface,
forms to display and enter data, and reports for printing. The underlying Jet database, which
contains these objects, is multiuser-aware and handles record-locking and referential integrity
including cascading updates and deletes.
Simple tasks can be automated through macros with point-and-click options. Microsoft Access is
very popular among non-programmers who can create visually pleasing and relatively advanced
solutions on their own. It is also easy to place a database on a network and have multiple users
share and update data without overwriting each other’s work. Data is locked at the record level
which is significantly different from Excel which locks the entire spreadsheet.
Microsoft offers a wide range of template databases within the program and for download from
their website. These options are available upon starting Access and allow users to quickly use
and enhance a database with pre-defined tables, queries, forms, reports, and macros. Popular
templates include tracking contacts, assets, issues, events, projects, and tasks. Templates do not
include VBA code.
Microsoft Access also offers the ability for programmers to create solutions using the
programming language Visual Basic for Applications (VBA), which is similar to Visual Basic
6.0 (VB6) and used throughout the Microsoft Office programs such as Excel, Word, Outlook and
PowerPoint. Most VB6 code including the use of Windows API calls, can be used in VBA.
Power users and developers can extend basic end-user solutions to a professional solution with
advanced automation, data validation, error trapping, and multi-user support.
Database solutions created entirely in Microsoft Access are well suited for individual and
workgroup use across a network. The number of simultaneous users that can be supported
depends on the amount of data, the tasks being performed, level of use, and application design.
Generally accepted limits are solutions with 1 GB or less of data (Access supports up to 2 GB)
and 50 or fewer simultaneous users. This is appropriate for workgroup and department solutions
where the total number of users number a few hundred.
Applications that simply view data or have simple data entry can support considerably more
users. Applications that run complex queries or analysis across large datasets would naturally
require greater bandwidth and memory. Microsoft Access is designed to scale to support more
data and users by linking to multiple Access databases or using a back-end database like
Microsoft SQL Server. With the latter design, the amount of data and users can scale to
enterprise-level solutions.
Microsoft Access' role in web development is limited. User interface features of Access, such as
forms and reports, only work in Windows. The Microsoft Jet Database Engine, core to Access,
can be accessed through technologies such as ODBC or OLE DB. The data (i.e., tables and
queries) can be accessed by web-based applications developed in ASP.NET, PHP, or Java. Many
ISPs offer Microsoft Access as a data storage option.
Access 2010 will allow forms and reports to be published to web sites - but only those using
Microsoft's proprietary Sharepoint hosting software. These web based forms and reports run in
any standard browser. The resulting web forms and reports when run in the browser don't requite
any activeX nor add-ins like Silverlight. Thus, the resulting application can be used by running
FireFox on ubuntu Linux for example (windows or any add-ins are not required to consume
these web applications built with access 2010).
In enterprise environments, Microsoft Access is particularly appropriate for meeting end-user
database needs and for rapid application development. Microsoft Access is easy enough for end
users to create their own queries, forms and reports, laying out fields and groupings, setting
formats, etc. This frees up the professional developers to focus on more complex portions of the
application.
A compiled MDE or ACCDE version of an Access database can be created to prevent users from
getting to the design surfaces to modify module code, forms, and reports. This is often used in
environments where end-user modifications are discouraged or the application's code should be
kept private.
Microsoft offers a runtime version of Microsoft Access 2007 for download. This allows people
to create Access solutions and distribute it for use by non-Microsoft Access owners (similar to
the way DLLs or EXEs are distributed). Unlike the regular version of Access, the runtime
version allows users to use the Access application but they cannot use its design surfaces.
Microsoft also offers developer extensions for download to help distribute Access applications,
create database templates, and integrate source code control with Microsoft Visual SourceSafe.
[edit] Features
Users can create tables, queries, forms and reports, and connect them together with macros.
Advanced users can use VBA to write rich solutions with advanced data manipulation and user
control.
The original concept of Access was for end users to be able to “access” data from any source.
Other uses include: the import and export of data to many formats including Excel, Outlook,
ASCII, dBase, Paradox, FoxPro, SQL Server, Oracle, ODBC, etc. It also has the ability to link to
data in its existing location and use it for viewing, querying, editing, and reporting. This allows
the existing data to change and the Access platform to always use the latest data. It can perform
heterogeneous joins between data sets stored across different platforms. Access is often used by
people downloading data from enterprise level databases for manipulation, analysis, and
reporting locally.
There is also the Jet Database format (MDB or ACCDB in Access 2007) which can contain the
application and data in one file. This makes it very convenient to distribute the entire application
to another user, who can run it in disconnected environments.
One of the benefits of Access from a programmer's perspective is its relative compatibility with
SQL (structured query language) — queries can be viewed graphically or edited as SQL
statements, and SQL statements can be used directly in Macros and VBA Modules to manipulate
Access tables. Users can mix and use both VBA and "Macros" for programming forms and logic
and offers object-oriented possibilities. VBA can also be included in queries.
Microsoft Access offers parameterized queries. These queries and Access tables can be
referenced from other programs like VB6 and .NET through DAO or ADO. From Microsoft
Access, VBA can reference parameterized stored procedures via ADO.
The desktop editions of Microsoft SQL Server can be used with Access as an alternative to the
Jet Database Engine. This support started with MSDE (Microsoft SQL Server Desktop Engine),
a scaled down version of Microsoft SQL Server 2000, and continues with the SQL Server
Express versions of SQL Server 2005 and 2008.
Microsoft Access is a file server-based database. Unlike client-server relational database
management systems (RDBMS), Microsoft Access does not implement database triggers, stored
procedures, or transaction logging. Access 2010 (not released) does have table level triggers and
stored procedures built into the ACE data engine.
[edit] Development
All database tables, queries, forms, reports, macros, and modules are stored in the Access Jet
database as a single file.
For query development, Access offers a Query Designer, a graphical user interface that allows
users to create queries without knowledge of the SQL programming language. In the Query
Designer, users can "show" the datasources of the query (which can be tables or queries) and
select the fields they want returned by clicking and dragging them into the grid. Joins can be
created by clicking and dragging fields in tables to fields in other tables. Access allows users to
view and manipulate the SQL code if desired. Any Access table, including linked tables from
different data sources, can be used in a query.
Access also supports the creation of Pass-Through queries. These are queries that can be linked
to external data sources through the use of ODBC connections on the local machine. This
enables users to interact with data stored outside the Access programme without using linked
Tables. The Pass-Through queries are written using the SQL syntax supported by the external
data source.
When developing Reports that are linked to Queries placing or moving items in the design view
of the Report, Access runs the linked query in the background on any placement or movement of
an item in that Report. If the Report is linked to a Query that takes a long time to return records
this forces you to wait until the query has run before you can add/edit or move the next item in
the Report (this feature cannot be turned off).
Non-programmers can use the macro feature to automate simple tasks through a series of drop
down selections. Macros allow users to easily chain commands together such as running queries,
importing or exporting data, opening and closing forms, previewing and printing reports, etc.
Macros support basic logic (IF conditions) and the ability to call other macros. Macros can also
contain sub-macros which are similar to subroutines. In Access 2007, macros are significantly
enhanced with the inclusion of error handling and temporary variable support. Access 2007 also
introduces embedded macros that are essentially properties of an object's event. This eliminates
the need to store macros as individual objects. Macros however, are limited in their functionality
by a lack of programming loops and advanced coding logic. Most professional Access
developers use the VBA programming language for a richer and more powerful development
environment.
The programming language available in Access is, as in other products of the Microsoft Office
suite, Microsoft Visual Basic for Applications, which is nearly identical to Visual Basic 6.0
(VB6). VBA code can be stored in modules and code behind forms and reports. Modules can
also be classes.
To manipulate data in tables and queries in VBA, two database access libraries of COM
components are provided: the Data Access Objects (DAO), which is included in Access and
Windows and evolved to ACE in Microsoft Access 2007 for the ACCDE database format, and
ActiveX Data Objects ActiveX Data Objects (ADO). Beside DAO and ADO, developers can
also use OLE DB and ODBC for developing native C/C++ programs for Access.[3] For ADPs and
the direct manipulation of SQL Server data, ADO is required. DAO is most appropriate for
managing data in Access/Jet databases, and the only way to manipulate the complex field types
in ACCDB tables.
In the database container or navigation pane of Access 2007, Access automatically categorizes
each object by type. Many Access developers use the Leszynski naming convention, though this
is not universal; it is a programming convention, not a DBMS-enforced rule.[4] It is particularly
helpful in VBA where references to object names may not indicate its data type (e.g. tbl for
tables, qry for queries).
Microsoft Access is most often used for individual and workgroup projects (the Access 97 speed
characterization was done for 32 users).[5] Since Access 97, and with Access 2003 and 2007,
Microsoft Access and hardware have evolved significantly. Databases under 1 GB in size (which
can now fit entirely in RAM) and 50 simultaneous users are well within the capabilities of
Microsoft Access. Of course, performance depends on the database design and tasks. Disk
intensive work such as complex searching and querying are the most time consuming.
As data from a Microsoft Access database can be cached in RAM, processing speed may be
substantially better when there is only a single user or if the data is not changing. In the past, the
effect of packet latency on the record locking system caused Access databases to be too slow on
Virtual Private Network (VPN) or Wide Area Network (WAN) against a Jet database. This is
less of an issue now with broadband connections. Performance can also be enhanced if a
continuous connection is maintained to the back end database throughout the session rather than
opening and closing it for each table access. If Access Database performance over VPN or WAN
suffers, then Microsoft Terminal Services is an effective solution. Access databases linked to
SQL Server or Access Data Projects work great over VPN and WAN.
[edit] Split Database Architecture
Microsoft Access applications can adopt a split database architecture. The database can be
divided into a front end database that contains the application objects (queries, forms, reports,
macros, and modules), and is linked to tables stored in a back end shared database containing the
data. The 'back-end' database can be stored in a location shared by many users, such as a file
server. The 'front-end' database is distributed to each user's desktop and linked to the shared
database. Using this design, each user has a copy of Microsoft Access installed on their machine
along with their application database. This reduces network traffic since the application is not
retrieved for each use, and allows the front end database to contain tables with data that is private
to each user for storing settings or temporary data. This split database design also allows
development of the application independent of the data. When a new version is ready, the front
end database is replaced without impacting the data database. Microsoft Access has two built-in
utilities, Database Splitter and Linked Table Manager, to facilitate this architecture.
Linked tables in Access use absolute paths rather than relative paths, so the development
environment either has to have the same path as the production environment or a "dynamic-
linker" routine can be written in VBA.
[edit] Access to SQL Server Upsizing
To scale Access applications to enterprise or web solutions, a recommended technique is to
migrate to Microsoft SQL Server or equivalent server database. A client-server design
significantly reduces maintenance and increases security, availability, stability, and transaction
logging.
Access includes an Upsizing Wizard that allows users to upsize their databases to Microsoft SQL
Server an ODBC client-server database. An additional solution, the SQL Server Migration
Assistant for Access(SSMA), is also available for download from Microsoft.[6]
A variety of upsizing options are available.[7] After migrating the data and queries to SQL Server,
the MDB/ACCDB Access database can be linked to the database. This is the easiest migration
and most appropriate if the user does not have rights to create objects such as stored procedures
on SQL Server. Retrieving data from linked tables is optimized to just the records needed, but
are not as efficient for multi-table joins that may require copying the whole table across the
network.
Access databases can also be converted to an Access Data Projects (ADP) which is tied directly
to one SQL Server database. ADPs support the ability to directly create and modify SQL Server
objects such as tables, views, stored procedures, views, and SQL Server constraints. The views
and stored procedures can significantly reduce the network traffic for multi-table joins.
Unfortunately, ADPs do not support temporary tables or link to other data sources beyond the
single SQL Server database. (MDB/ACCDB databases can link to a variety of data sources and
let you perform heterogeneous queries across them).
Finally, some Access databases are completely replaced by another solution such as ASP.NET or
Java once the data is converted.
In many cases, hybrid solutions are created where web interfaces are built by developers using
ASP.NET, while administrative or reporting features that don't need to be distributed to everyone
and/or change often, are kept in Access for information workers to maintain.
While all Access data can migrate to SQL Server, it should be noted that Access queries are
richer than SQL Server queries, so some queries cannot migrate successfully. In some situations,
you may need to translate VBA functions and user defined functions into TSQL or .NET
functions / procedures. Crosstab queries can be migrated to SQL Server using the PIVOT
command.
[edit] Protection
Microsoft Access offers several ways to secure the application while allowing users to remain
productive.
The most basic is a database password. Once entered, the user has full control of all the database
objects. This is a relatively weak form of protection which can be easily cracked.
A higher level of protection is the use of workgroup security requiring a user name and
password. Users and groups can be specified along with their rights at the object type or
individual object level. This can be used to specify people with readonly or data entry rights but
may be challenging to specify. A separate workgroup security file contains the settings which
can be used to manage multiple databases. Workgroup security is not supported in the Access
2007 ACCDB database format, although Access 2007 still supports it for MDB databases.
Databases can also be encrypted. The ACCDB format offers significantly advanced encryption
from previous versions [1].
Additionally, if the database design needs to be secured to prevent changes, Access databases
can be locked/protected (and the source code compiled) by converting the database to a .MDE
file. All changes to the VBA project (modules, forms, or reports) need to be made to the original
MDB and then reconverted to MDE. In Access 2007, the ACCDB database is converted to an
ACCDE file. Some tools are available for unlocking and 'decompiling', although certain
elements including original VBA comments and formatting are normally irretrievable.
[edit] File extensions
Microsoft Access saves information under the following file formats:

File format Extension

Access Project .adp

Access Blank Project Template .adn

Access Database (2007) .accdb


Access Database Runtime (2007) .accdr

Access Database Template (2007) .accdt

Access Database (2003 and earlier) .mdb

Access Database, used for addins (2,95,97), previously used for workgroups
.mda
(2).

Access Database Template (2003 and earlier) .mdt

Access Workgroup, database for user-level security. .mdw

Access (SQL Server) detached database (2000) .mdf

Protected Access Database, with compiled VBA (2003 and earlier) .mde

Protected Access Database, with compiled VBA (2007) .accde

Windows Shortcut: Access Macro .mam

Windows Shortcut: Access Query .maq

Windows Shortcut: Access Report .mar

Windows Shortcut: Access Table .mat

Windows Shortcut: Access Form .maf

[edit] Versions
Version
Date Version Supported OS Office suite version
number

1992 Access 1.1 1 Windows 3.0

1993 Access 2.0 2.0 Windows 3.1x Office 4.3 Pro

Access for
1995 7.0 Windows 95 Office 95 Professional
Windows 95

Windows 9x, NT Office 97 Professional and


1997 Access 97 8.0
3.51/4.0 Developer

Windows 9x, NT Office 2000 Professional, Premium


1999 Access 2000 9.0
4.0, 2000 and Developer

Windows 98, Me, Office XP Professional and


2001 Access 2002 10
2000, XP Developer

Windows 2000, Office 2003 Professional and


2003 Access 2003 11
XP,Vista Professional Enterprise

Office 2007 Professional,


Microsoft Office Windows XP
2007 12 Professional Plus, Ultimate and
Access 2007 SP2, Vista
Enterprise

24-Apr- Microsoft Office Windows XP


12 Office 2007 Service Pack 2
2009 Access 2007 SP2 SP2, Vista

There are no Access versions between 2.0 and 7.0 because the Windows 95 version was
launched with Word 7. All of the Office 95 products have OLE 2 capabilities, and Access 7
shows that it was compatible with Word 7.
[edit] Competing software
• Alpha Five
• Borland Paradox
• DataEase
• dBase
• FileMaker Pro (formerly Claris Filemaker)
• Kexi
• Lotus Approach
• NeoOffice
• OpenOffice.org Base
• Oracle XE (Express Edition)
• Sun StarBase
• Foxpro (later acquired by Microsoft)
• SQLite
• Sybase PowerBuilder
• MySQL
• nuBuilder
• PostgreSQL
• Omnis Studio
• Microsoft SQL Server Express
[edit] References
1. ^ Microsoft Access History
2. ^ Where did the name for Microsoft Access come from?
3. ^ Aleksandar Jakšić (08 2008). "Developing Access 2007 Solutions with Native C or C++".
Microsoft Corporation. http://msdn.microsoft.com/en-us/library/cc811599.aspx. Retrieved 2008-
09-22.
4. ^ Naming Conventions for Microsoft Access
5. ^ Kevin Collins (Microsoft Jet Program Management), "Microsoft Jet 3.5 Performance Overview
and Optimization Techniques", MSDN. Retrieved July 19, 2005.
6. ^ http://www.microsoft.com/sqlserver/2005/en/us/migration-access.aspx
7. ^ http://www.fmsinc.com/FMSUpsize/docs/EvolvingMicrosoftAccessApplications.pdf

[edit] External links


• Access Team Blog
• Microsoft Access Home Page
• Microsoft Access Newsgroups
• Microsoft Access 3rd Party Tools
• FAQ site about Microsoft Access
• Microsoft Access within an Organization's Database Strategy
• Microsoft Access Performance Tips
• Microsoft Access Error Numbers and Description Reference
• Microsoft Access for Beginners
• AccessBlog.net - Tips and tricks on Microsoft Access
• MS Access Tutorials and Examples

This article was originally based on material from the Free On-line Dictionary of Computing,
which is licensed under the GFDL.
[show]
v•d•e
Microsoft Office

O For Office 95 · Office 97 · Office 2000 · Office XP · Office 2003 · Office


f Windows 2007 · Office 2010 (upcoming)
f
i For Mac OS Office 98 · Office 2001 · Office X · Office 2004 · Office 2008
c
e

s
u
i
t
e
s

A Accounting · Access · Communicator · Entourage · Excel · Groove ·


p InfoPath · InterConnect · OneNote · Outlook (Outlook Connector · Add-
p Desktop
ins) · PowerPoint · Project · Publisher · SharePoint Designer · Visio ·
l Word
i
c Communications Server · Forms Server · Groove Server ·
a Server PerformancePoint Server · Project Server (Project Portfolio Server) ·
t Office SharePoint Server (Excel Services · InfoPath Forms Services)
i
o Live Meeting · Office Live · Office Online · Office Web Apps · Outlook
n Online
Web Access
s
Mobile Office Mobile

Binder · Data Analyzer · FrontPage · Liquid Motion · Mail · Office


Discontinue
Assistants · PhotoDraw · Photo Editor · Schedule+ · Vizact · Web
d
Components

Office tools Clip Organizer · Graph · Document Imaging · Document Scanning ·


Equation Editor · Picture Manager · WordArt

Related Windows SharePoint Server · Microsoft Works · MapPoint

T
e
c
h
n
o Information Bridge Framework · Object Linking and Embedding · Office Open XML ·
l Office XML formats · Smart tags · Visual Basic for Applications
o
g
i
e
s

History of Microsoft Office

[show]
v•d•e
Database management systems

Database models · Database normalization · Database storage · Distributed DBMS ·


Federated database system · Referential integrity · Relational algebra · Relational calculus ·
Relational database · Relational DBMS · Relational model · Object-relational database ·
Transaction processing

C
o
n
c Database · ACID · CRUD · Null · Candidate key · Foreign key · Primary key · Superkey ·
e Surrogate key · Armstrong's axioms
p
t
s

O
b
j
Relation (Table) · View · Transaction · Log · Trigger · Index · Stored procedure · Cursor ·
e
Partition
c
t
s

S Select · Insert · Update · Merge · Delete · From · Join · Union · Create · Drop · Start
Q Transaction · Commit · Rollback · Truncate · Alter · Where
L

C
o
m
p
o Concurrency control · Data dictionary · JDBC · ODBC · Query language · Query
n optimizer · Query plan
e
n
t
s

Database products: Object-oriented (comparison) · Relational (comparison) · Document-


oriented
Retrieved from "http://en.wikipedia.org/wiki/Microsoft_Access"
Categories: Database management systems | Proprietary database management systems | Data-
centric programming languages | Microsoft Office | Microsoft database software | Programming
languages created in the 1990s
Hidden categories: Articles needing additional references from August 2006 | All articles
needing additional references | NPOV disputes from February 2009 | All NPOV disputes |
Wikipedia articles incorporating text from FOLDOC
Views
• Article
• Discussion
• Edit this page
• History
Personal tools
• Try Beta
• Log in / create account
Navigation
• Main page
• Contents
• Featured content
• Current events
• Random article
Search
Top of Form

Special:Search Go Search

Bottom of Form
Interaction
• About Wikipedia
• Community portal
• Recent changes
• Contact Wikipedia
• Donate to Wikipedia
• Help
Toolbox
• What links here
• Related changes
• Upload file
• Special pages
• Printable version
• Permanent link
• Cite this page
Languages
• ‫العربية‬
• Azərbaycan
• Bosanski
• Català
• Česky
• Deutsch
• Español
• Esperanto
• ‫فارسی‬
• Français
• Gaeilge
• Galego
• 한국어
• Hrvatski
• Bahasa Indonesia
• Italiano
• ‫עברית‬
• Nederlands
• 日本語
• Polski
• Português
• Română
• Русский
• Simple English
• Српски / Srpski
• Suomi
• Svenska
• ไทย
• Türkçe
• Українська
• Tiếng Việt
• ‫יִידיש‬
• 中文

• This page was last modified on 10 January 2010 at 22:23.


• Text is available under the Creative Commons Attribution-ShareAlike License;
additional terms may apply. See Terms of Use for details.
Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit
organization.
• Contact us
• Privacy policy
• About Wikipedia
• Disclaimers

You are invited to vote on the global sysops proposal. Click [Hide]
here for more information. [Help us with
translations!]
Visual FoxPro

From Wikipedia, the free encyclopedia

Jump to: navigation, search

"VFP" redirects here. For the floating-point extension of ARM processors, see ARM
architecture#VFP.
Microsoft Visual FoxPro

Typical VFP9 editing session


Original
Microsoft Corporation
author(s)
Visual FoxPro 9.0 Service
Stable release Pack 2 (SP2) / 2007-10-11; 2
years ago
Operating
Microsoft Windows
system
Platform x86 and greater
IDE: English, German,
Spanish
Available in Runtime: Above, French,
Chinese, Russian, Czech,
Korean
Development
Maintenance mode
status
Database Programming
Type
language
License Microsoft EULA
Website msdn.microsoft.com/vfoxpro
Visual FoxPro is a data-centric object-oriented and procedural programming
language produced by Microsoft. It is derived from FoxPro (originally known as
FoxBASE) which was developed by Fox Software beginning in 1984. Fox
Technologies merged with Microsoft in 1992, after which the software acquired
further features and the prefix "Visual". The last version of FoxPro (2.6) worked
under Mac OS, DOS, Windows, and Unix: Visual FoxPro 3.0, the first "Visual" version,
dropped the platform support to only Mac and Windows, and later versions were
Windows-only. The current version of Visual FoxPro is COM-based and Microsoft has
stated that they do not intend to create a Microsoft .NET version.

FoxPro originated as a member of the class of languages commonly referred to as


"xBase" languages, which have syntax based on the dBase programming language.
Other members of the xBase language family include Clipper and Recital. (A history
of the early years of xBase can be found in the dBase entry.)

Visual FoxPro, commonly abbreviated as VFP, is tightly integrated with its own
relational database engine, which extends FoxPro's xBase capabilities to support
SQL query and data manipulation. Unlike most database management systems,
Visual FoxPro is a full-featured, dynamic programming language that does not
require the use of an additional general-purpose programming environment. It can
be used to write not just traditional "fat client" applications, but also middleware
and web applications.

Contents
[hide]
1 Recent history
2 Version information
2.1 Operating system
compatibility
2.2 Information on executable
files
3 Code samples
3.1 Object
3.2 Data handling
3.3 ODBC access using SQL
passthrough
4 Beta code names
5 References
6 External links
6.1 Microsoft pages
6.2 Other pages
[edit] Recent history

In late 2002, it was demonstrated that Visual FoxPro can run on Linux under the
Wine Windows compatibility suite. In 2003, this led to complaints by Microsoft: it
was claimed that the deployment of runtime FoxPro code on non-Windows
machines violates the End User License Agreement.[1]

In December 2005, VFP broke into the top 20 on Tiobe index[2] for the first time. In
March 2007 it was at position 19, making it a "B" language, and as of December,
2008 it dropped into position 23.

In March 2007, Microsoft announced that there will be no VFP 10[3], thus making
VFP9 (released to manufacturing on December 17, 2004) the last commercial VFP
release from Microsoft. The support of Version 9 is ongoing with service packs that
were released December 8, 2005 and October 11, 2007.
At the time of the end of life announcement, work on the next release codenamed
Sedna (named after a recently discovered dwarf planet) which was built on top of
the VFP9 codebase had already begun. "Sedna" is a set of add-ons to VFP 9.0 of
XBase components to support a number of interoperability scenarios with various
Microsoft technologies including SQL Server 2005, .NET Framework, Windows Vista,
Office 2007, Windows Search and Team Foundation Server (TFS). Microsoft released
Sedna under the Shared source license on the CodePlex site. Microsoft has clarified
that the VFP core will still remain closed source. Sedna was released on January 25,
2008[4]. As of March 2008, all XBase components of the VFP 9 SP2 (including
Sedna) were available for community-development on the CodePlex.

In late March 2007 a grassroots campaign was started by the Spanish-speaking


FoxPro community at MasFoxPro[5] (MoreFoxPro in English) to sign a petition to
Microsoft to continue updating Visual FoxPro or release it to the community as Open
Source. On April 3, 2007 the movement was noted by the technical press[6]

Also on April 3, 2007 Microsoft responded to the petitioner's requests with this
statement from Alan Griver:

"We're very aware of the FoxPro community and that played a large part in what we
announced on March 13th. It's never an easy decision to announce that we're not
going to release another version of a product and it's one that we consider very
carefully.

"We're not announcing the end of FoxPro: Obviously, FoxPro applications will
continue to work. By some of our internal estimates, there are more applications
running in FoxPro 2.6 than there are in VFP and FoxPro 2.6 hasn't been supported in
many years. Visual FoxPro 9 will be supported by Microsoft through 2015.

"For Microsoft to continue to evolve the FoxPro base, we would need to look at
creating a 64-bit development environment and that would involve an almost
complete rewrite of the core product. We've also invested in creating a scalable
database with SQL Server, including the freely available SQL Server Express Edition.
As far as forming a partnership with a third-party is concerned, we've heard from a
number of large FoxPro customers that this would make it impossible for them to
continue to use FoxPro since it would no longer be from an approved vendor. We
felt that putting the environment into open source on CodePlex, which balances the
needs of both the community and the large customers, was the best path forward."

[edit] Version information

[edit] Operating system compatibility

Supported Windows Versions


VFP VFP
Version VFP 3.0 VFP 7.0 VFP 8.0 VFP 9.0
5.0 6.0
Windows 3.x Yes No No No No No
Windows NT 4.0 Yes Yes Yes Yes No No [7]
Runtime
Windows 95 Yes Yes Yes No No
only
Runtime Runtime
Windows 98 Yes Yes Yes Yes
only only
Runtime Runtime
Windows Me Yes Yes Yes Yes
only only
Windows 2000 Yes Yes Yes Yes Yes Yes
Windows XP Yes Yes Yes Yes Yes Yes
Windows Server
? ? Yes Yes Yes Yes
2003
Compatibility
Windows Vista Yes Yes Yes Yes Yes
Mode
Windows 7 (Build
? ? Yes Yes Yes Yes
7000)
[edit] Information on executable files

EXE DLL
Version VERSION() returns EXE Date DLL Name
Size Size
Visual FoxPro
VFP 9 SP2 5,648 4,624
09.00.0000.7423 for April 3, 2009 VFP9R.DLL
with Hotfixes kb kb
Windows
Visual FoxPro
5,648 September 4,624
VFP 9 SP2 09.00.0000.5721 for VFP9R.DLL
kb 21, 2007 kb
Windows
Visual FoxPro
5,620 December 4,600
VFP 9 09.00.0000.2412 for VFP9R.DLL
kb 13, 2004 kb
Windows
Visual FoxPro
5,236 September 4,200
VFP 8 08.00.0000.3117 for VFP8R.DLL
kb 25, 2003 kb
Windows
Visual FoxPro
4,260 January 4, 3,344
VFP 7 07.00.0000.9465 for VFP7R.DLL
kb 2002 kb
Windows
Visual FoxPro 4,091 August 18, 3,295
VFP 6 VFP6R.DLL
06.00.8961.00 for Windows kb 2000 kb
Visual FoxPro 5.0.0.415 for 4,065 January 24, 3,148
VFP 5 VFP500.DLL
Windows kb 1997 kb
Visual FoxPro 4,374 December 3,657
VFP 3 VFP300.ESL
03.00.00.0711 for Windows kb 16, 1995 kb
2,444 September 2,946 FOXW2600.
FPW 2.6a FoxPro 2.6a for Windows
kb 28, 1994 kb ESL
[edit] Code samples

Hello World example:

MESSAGEBOX("Hello World")

[edit] Object

Output of the Hello World program.

loForm = CREATEOBJECT("HiForm")

loForm.Show(1)

DEFINE CLASS HiForm AS Form

AutoCenter = .T.

Caption = "Hello, World"

ADD OBJECT lblHi as Label WITH ;

Caption = "Hello, World!"

ENDDEFINE

loMine = CREATEOBJECT("MyClass")

? loMine.cProp1 && This will work. (Double-ampersand marks an end-of-line


comment)
? loMine.cProp2 && Program Error: Property CPROP2 is not found.

? loMine.MyMethod1() && This will work.

? loMine.MyMethod2() && Program Error: Property MYMETHOD2 is not found.

DEFINE CLASS MyClass AS Custom

cProp1 = "My Property" && This is a public property

HIDDEN cProp2 && This is a private (hidden) property

PROCEDURE Init() && Class constructor

This.cProp2 = "This is a hidden property."

ENDPROC

PROCEDURE MyMethod1()

* This is a public method, calling a hidden method that returns

* the value of a hidden property.

RETURN This.MyMethod2()

ENDPROC

HIDDEN PROCEDURE MyMethod2() && This is a private (hidden) method

RETURN This.cProp2

ENDPROC

ENDDEFINE

[edit] Data handling


Output of the Data handling program.

&& Create a table

CREATE TABLE randData (iData I)

&& Populate with random data using xBase and SQL DML commands

FOR i = 1 TO 50

APPEND BLANK

REPLACE iData WITH (RAND() * 100)

INSERT INTO randData (iData) VALUES (RAND() * 100)

ENDFOR

&& Place a structural index on the data

INDEX ON iData TAG iData

CLOSE ALL

&& Display ordered data using xBase-style commands

USE randData

SET ORDER TO iData

GO TOP
LIST NEXT 10 && First 10

SKIP 81

LIST NEXT 10 && Last 10

CLOSE ALL

&& Browse ordered data using SQL DML commands

SELECT * ;

FROM randData ;

ORDER BY iData DESCENDING

[edit] ODBC access using SQL passthrough

&& Connect to an ODBC data source

LOCAL nHnd

nHnd = SQLCONNECT ("ODBCDSN", "user", "pwd")

&& Execute a SQL command

LOCAL nResult

nResult = SQLEXEC (nHnd, "USE master")

IF nResult < 0

MESSAGEBOX ("MASTER database does not exist!")

RETURN

ENDIF

&& Retrieve data from the remote server and stores it in

&& a local data cursor

nResult = SQLEXEC (nHnd, "SELECT * FROM authors", "QAUTHORS")


&& Update a record in a remote table using parameters

LOCAL cAuthorID, cAuthorName

cAuthorID = "1001"

cAuthorName = "New name"

nResult = SQLEXEC (nHnd, "UPDATE authors SET auth_name = ?cAuthorName


WHERE auth_id = ?cAuthorID")

&& Close the connection

SQLDISCONNECT(nHnd)

[edit] Beta code names

VFP 3 - Taz

VFP 5 - RoadRunner

VFP 6 - Tahoe

VFP 7 - Sedona

VFP 8 - Toledo

VFP 9 - Europa

VFP Next - Sedna

[edit] References

^ VFP and Linux - Visual FoxPro Wiki

^ Programming Community Index

^ A Message to the Community

^ Microsoft SEDNA download

^ MasFoxPro

^ Developers petition Microsoft to reconsider FoxPro phase out Posted by Mary Jo


Foley (April 3rd, 2007) - All about Microsoft - ZDNet.com

^ - The free patch for VFP 9.0 has been created by the German FoxPro User Group
(dFPUG) and is available at the dFPUG document portal in the directory
http://portal.dfpug.de/dFPUG/Dokumente/Freeware/. It allows you to run VFP 9.0
applications on NT 4.0. Microsoft has indicated that this will be addressed in VFP 9.0
SP1.

[edit] External links

[edit] Microsoft pages

Main Visual FoxPro Microsoft page

MSDN FoxPro support board

VFP's online help

Microsoft VFP 9 support

Visual FoxPro Downloads page

[edit] Other pages

Visual FoxPro Wiki A repository of FoxPro information (written in VFP)

A site devoted to the history of FoxPro

VFPx A Visual FoxPro Community effort to create open source add-ons for VFP 9.0

[show]
v•d•e
Programming languages

Comparison | Timeline | Categorical list | Generational list | Alphabetical list | Non-


English-based

[show]
v•d•e
Microsoft development tools

Visual Studio (Team System · Express) · Visual Studio Tools for


Development
Office · Visual Studio Tools for Applications · Expression Web ·
environments
Expression Blend · Microsoft Office SharePoint Designer

Languages and Visual Basic (VB.NET) · Visual C++ · Visual C# · Visual J# ·


compilers Visual FoxPro · IronPython · IronRuby · PowerShell · XAML · F#

Windows API / SDK · .NET Framework · Managed code


Major APIs and frameworks (Presentation · Communication · Workflow ·
frameworks CardSpace) · Silverlight · XNA · ASP.NET (ASP.NET AJAX) · LINQ ·
ADO.NET · DirectX · Robotics Developer Studio
SQL Express · Compact · Management Studio · Business
Server Intelligence Development Studio · MSDE

Database tools SQL


Analysis · Reporting · Integration · Notification
and languages services

Visual FoxPro · Microsoft Access · Extensible Storage


Other
Engine

Source control Team Foundation Server · Visual SourceSafe

Driver Windows Driver Model · Windows Driver Foundation (KMDF ·


development UMDF) · Windows Driver Kit · Windows Logo Kit
Retrieved from "http://en.wikipedia.org/wiki/Visual_FoxPro"

Categories: 4GL | Data-centric programming languages | Object-oriented


programming languages | XBase programming language family | Procedural
programming languages | Database management systems | Microsoft development
tools | Microsoft database software | Programming languages created in 1984

Views

Article

Discussion

Edit this page

History

Personal tools

Try Beta

Log in / create account

Navigation

Main page

Contents

Featured content

Current events

Random article
Search

Top of Form

Special:Search Go Search

Bottom of Form

Interaction

About Wikipedia

Community portal

Recent changes

Contact Wikipedia

Donate to Wikipedia

Help

Toolbox

What links here

Related changes

Upload file

Special pages

Printable version

Permanent link

Cite this page

Languages

Català

Česky

Deutsch

Eesti

Español
‫فارسی‬

Français

Galego

Hrvatski

Bahasa Indonesia

Italiano

Bahasa Melayu

Nederlands

日本語

Polski

Português

Русский

Тоҷикӣ

Türkçe

Tiếng Việt

中文

This page was last modified on 6 January 2010 at 01:25.

Text is available under the Creative Commons Attribution-ShareAlike License;


additional terms may apply. See Terms of Use for details.
Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-
profit organization.

Contact us

Privacy policy

About Wikipedia
Disclaimers

Y
ou
ar
e
in
vit [
ed H
to i
vo de
te ]
on
th [H
e e
gl l
ob p
al u
sy s
so w
ps i
pr t
op h
os t
al. r
Cl an
ic s
k l
he at
re i
for o
m ns
or !
e ]
inf
or
m
ati
on
.
Data
From Wikipedia, the free encyclopedia
Jump to: navigation, search
For data in a computer science context, see Data (computing). For other uses, see Data
(disambiguation).
The term data means groups of information that represent the qualitative or quantitative
attributes of a variable or set of variables. Data (plural of "datum", which is seldom used) are
typically the results of measurements and can be the basis of graphs, images, or observations of a
set of variables. Data are often viewed as the lowest level of abstraction from which information
and knowledge are derived.

Contents
[hide]
• 1 Etymology
• 2 Usage in English
• 3 Meaning of data, information and knowledge
• 4 See also
• 5 References
• 6 External links

[edit] Etymology
The word data (pronounced /ˈdeɪtə/, /ˈdætə/, or /ˈdɑːtə/) is the Latin plural of datum, neuter
past participle of dare, "to give", hence "something given". The past participle of "to give" has
been used for millennia, in the sense of a statement accepted at fn, Data). In discussions of
problems in geometry, mathematics, engineering, and so on, the terms givens and data are used
interchangeably.Also, data is a representation of a fact, figure, and idea. Such usage is the origin
of data as a concept in computer science: data are numbers, words, images, etc., accepted as they
stand.
[edit] Usage in English
In English, the word datum is still used in the general sense of "something given". In
cartography, geography, nuclear magnetic resonance and technical drawing it is often used to
refer to a single specific reference datum from which distances to all other data are measured.
Any measurement or result is a datum, but data point is more common,[1] albeit tautological.
Both datums (see usage in datum article) and the originally Latin plural data are used as the
plural of datum in English, but data is more commonly treated as a mass noun and used with a
verb in the singular form, especially in day-to-day usage. For example, This is all the data from
the experiment. This usage is inconsistent with the rules of Latin grammar and traditional
English (These are all the data from the experiment).
Some British and international academic, scientific and professional style guides[2] require that
authors treat data as a plural noun. Other international organizations, such as the IEEE Computer
Society,[3] allow its usage as either a mass noun or plural based on author preference. The Air
Force Flight Test Center on the other hand, specifically states that the word data is always plural,
never singular.[4]
Data is now often treated as a singular mass noun in informal usage, but usage in scientific
publications shows a divide between the United States and United Kingdom. In the United States
the word data is sometimes used in the singular, though scientists and science writers more often
maintain the traditional plural usage. Some major newspapers such as the New York Times use it
alternately in the singular or plural. In the New York Times the phrases "the survey data are still
being analyzed" and "the first year for which data is available" have appeared on the same day.
In scientific writing data is often treated as a plural, as in These data do not support the
conclusions, but many people now think of data as a singular mass entity like information and
use the singular in general usage. British usage now widely accepts treating data as singular in
standard English,[5] including everyday newspaper usage[6] at least in non-scientific use.[7] UK
scientific publishing still prefers treating it as a plural.[8] Some UK university style guides
recommend using data for both singular and plural use[9] and some recommend treating it only as
a singular in connection with computers.[10]
Raw data refers to a collection of numbers, characters, images or other outputs from devices to
convert physical quantities into symbols, that are unprocessed. Such data is typically further
processed by a human or input into a computer, stored and processed there, or transmitted
(output) to another human or computer (possibly through a data cable). Raw data is a relative
term; data processing commonly occurs by stages, and the "processed data" from one stage may
be considered the "raw data" of the next.
Mechanical computing devices are classified according to the means by which they represent
data. An analog computer represents a datum as a voltage, distance, position, or other physical
quantity. A digital computer represents a datum as a sequence of symbols drawn from a fixed
alphabet. The most common digital computers use a binary alphabet, that is, an alphabet of two
characters, typically denoted "0" and "1". More familiar representations, such as numbers or
letters, are then constructed from the binary alphabet.
Some special forms of data are distinguished. A computer program is a collection of data, which
can be interpreted as instructions. Most computer languages make a distinction between
programs and the other data on which programs operate, but in some languages, notably Lisp and
similar languages, programs are essentially indistinguishable from other data. It is also useful to
distinguish metadata, that is, a description of other data. A similar yet earlier term for metadata is
"ancillary data." The prototypical example of metadata is the library catalog, which is a
description of the contents of books.
Experimental data refers to data generated within the context of a scientific investigation by
observation and recording.
[edit] Meaning of data, information and knowledge
The terms information and knowledge are frequently used for overlapping concepts. The main
difference is in the level of abstraction being considered. Data is the lowest level of abstraction,
information is the next level, and finally, knowledge is the highest level among all three.[citation
needed]
Data on its own carries no meaning. In order for data to become information, it must be
interpreted and take on a meaning. For example, the height of Mt. Everest is generally
considered as "data", a book on Mt. Everest geological characteristics may be considered as
"information", and a report containing practical information on the best way to reach Mt.
Everest's peak may be considered as "knowledge".
Information as a concept bears a diversity of meanings, from everyday usage to technical
settings. Generally speaking, the concept of information is closely related to notions of
constraint, communication, control, data, form, instruction, knowledge, meaning, mental
stimulus, pattern, perception, and representation.
Beynon-Davies uses the concept of a sign to distinguish between data and information; data are
symbols while information occurs when symbols are used to refer to something. [11] [12]
It is people and computers who collect data and impose patterns on it. These patterns are seen as
information which can used to enhance knowledge. These patterns can be interpreted as truth,
and are authorized as aesthetic and ethical criteria. Events that leave behind perceivable physical
or virtual remains can be traced back through data. Marks are no longer considered data once the
link between the mark and observation is broken. [13]
[edit] See also
Look up data in Wiktionary, the free dictionary.

• Biological data
• Data acquisition
• Data analysis
• Data cable
• Data domain
• Data element
• Data farming
• Data governance
• Data integrity
• Data maintenance
• Data management
• Data mining
• Data modeling
• Computer data processing
• Data recovery
• Data remanence
• Data set
• Data warehouse
• Database
• Datasheet
• Environmental data rescue
• Metadata
• Scientific data archiving
• Statistics
• Datastructure
[edit] References
1. ^ Matt Dye (2001). "Writing Reports". University of Bristol.
http://www.bris.ac.uk/Depts/DeafStudiesTeaching/dissert/Writing%20Reports.htm.
2. ^ "WHO Style Guide". Geneva: World Health Organization. 2004. p. 43.
http://whqlibdoc.who.int/hq/2004/WHO_IMD_PUB_04.1.pdf.
3. ^ "IEEE Computer Society Style Guide, DEF". IEEE Computer Society.
http://www.computer.org/portal/site/ieeecs/menuitem.c5efb9b8ade9096b8a9ca0108bcd45f3/inde
x.jsp?
&pName=ieeecs_level1&path=ieeecs/publications/author/style&file=def.xml&xsl=generic.xsl&.
4. ^ The Author's Guide to Writing Air Force Flight Test Center Technical Reports. Air Force
Flight Center.
5. ^ New Oxford Dictionary of English. 1999.
6. ^ Tim Johns (1997). "Data: singular or plural?".
http://www.eisu2.bham.ac.uk/johnstf/revis006.htm. "...in educated everyday usage as represented
by The Guardian newspaper, it is nowadays most often used as a singular."
7. ^ "Data". Compact Oxford Dictionnary. http://www.askoxford.com/concise_oed/data?view=uk.
8. ^ "Data: singular or plural?". Blair Wisconsin International University.
http://www.eisu2.bham.ac.uk/johnstf/revis006.htm.
9. ^ "Singular or plural". University of Nottingham Style Book. University of Nottingham.
http://www.nottingham.ac.uk/public-affairs/uon-style-book/singular-plural.htm.
10.^ "Computers and computer systems". OpenLearn.
http://openlearn.open.ac.uk/mod/resource/view.php?id=182902.
11.^ P. Beynon-Davies (2002). Information Systems: An introduction to informatics in
organisations. Basingstoke, UK: Palgrave. ISBN 0-333-96390-3.
12.^ P. Beynon-Davies (2009). Business information systems. Basingstoke, UK: Palgrave. ISBN
978-0-230-20368-6.
13.^ Sharon Daniel. The Database: An Aesthetics of Dignity.

[edit] External links


• data is a singular noun (a detailed assessment)
This article was originally based on material from the Free On-line Dictionary of Computing,
which is licensed under the GFDL.
[hide]
v•d•e
Statistics

Descriptive Continuous Mean (Arithmetic, Geometric,


statistics data LocationHarmonic) · Median · Mode
Range · Standard deviation · Coefficient
Dispersion
of variation · Percentile

Variance · Semivariance · Skewness ·


Moments
Kurtosis

Categorical
Frequency · Contingency table
data

Bar chart · Biplot · Box plot · Control chart · Correlogram · Forest


Statistical graphics
plot · Histogram · Q-Q plot · Run chart · Scatter plot · Stemplot

Confidence interval (Frequentist inference) ·


InferenceCredible interval (Bayesian inference) ·
Significance · Meta-analysis

Population · Sampling · Stratified sampling ·


Design of experimentsReplication · Blocking · Sensitivity and
specificity · Optimal design

Sample size
Statistical power · Effect size · Standard error
estimation
Inferential statistics
and Bayesian estimator · Maximum likelihood ·
hypothesis testing General estimationMethod of moments · Minimum distance ·
Maximum spacing

Z-test (normal) · Student's t-test · F-test · Chi-


square test · Pearson's chi-square test · Wald
Specific tests
test · Mann–Whitney U · Wilcoxon signed-
rank test

Survival function · Kaplan–Meier · Logrank


Survival analysistest · Failure rate · Proportional hazards
models

Correlation Pearson product-moment correlation · Rank


and Correlationcorrelation (Spearman's rho, Kendall's tau) ·
regression analysis Confounding variable

Simple linear regression · Ordinary least squares ·


Linear regressionGeneral linear model · Analysis of variance ·
Analysis of covariance

Nonlinear regression · Nonparametric ·


Non-standard
Semiparametric · Robust
Non-normalGeneralized linear model · Binomial · Poisson ·
errorsLogistic

Category · Portal · Outline · Index


Retrieved from "http://en.wikipedia.org/wiki/Data"
Categories: Data | Computer data | Data management
Hidden categories: Wikipedia indefinitely move-protected pages | All articles with unsourced
statements | Articles with unsourced statements from July 2008 | Wikipedia articles incorporating
text from FOLDOC | Statistics articles with navigational template
Views
• Article
• Discussion
• Edit this page
• History
Personal tools
• Try Beta
• Log in / create account
Navigation
• Main page
• Contents
• Featured content
• Current events
• Random article
Search
Top of Form

Special:Search Go Search

Bottom of Form
Interaction
• About Wikipedia
• Community portal
• Recent changes
• Contact Wikipedia
• Donate to Wikipedia
• Help
Toolbox
• What links here
• Related changes
• Upload file
• Special pages
• Printable version
• Permanent link
• Cite this page
Languages
• Afrikaans
• ‫العربية‬
• Azərbaycan
• Беларуская
• Bosanski
• Български
• Česky
• Dansk
• Deutsch
• Ελληνικά
• Español
• Esperanto
• ‫فارسی‬
• Français
• 한국어
• Hrvatski
• Bahasa Indonesia
• Íslenska
• Italiano
• ‫עברית‬
• Kiswahili
• Lietuvių
• Magyar
• Македонски
• मराठी
• Nederlands
• 日本語
• Polski
• Português
• Русский
• සිංහල
• Slovenščina
• Soranî / ‫کوردی‬
• Српски / Srpski
• Basa Sunda
• Suomi
• Svenska
• Tagalog
• தமிழ்
• ไทย
• ‫اردو‬
• Tiếng Việt
• 吴语
• ‫יִידיש‬
• 中文

• This page was last modified on 2 January 2010 at 08:08.


• Text is available under the Creative Commons Attribution-ShareAlike License;
additional terms may apply. See Terms of Use for details.
Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit
organization.
• Contact us
• Privacy policy
• About Wikipedia
• Disclaimers

Y [
ou Hi
ar d
e e
]
in
vit [
ed
to
vo
te
on
th H
e e
gl l
ob p
al u
sy s
so w
ps i
pr t
op h
os t
al. r
Cl an
ic s
k l
he at
re i
for o
m ns
or !
e ]
inf
or
m
ati
on
.

Record (computer science)


From Wikipedia, the free encyclopedia
Jump to: navigation, search
This article does not cite any references or sources.
Please help improve this article by adding citations to reliable sources. Unsourced material may be
challenged and removed. (September 2009)
In computer science, a record (also called tuple or struct) is one of the simplest data structures,
consisting of two or more values or variables stored in consecutive memory positions; so that
each component (called a field or member of the record) can be accessed by applying different
offsets to the starting address.
For example, a date may be stored as a record containing a 16-bit numeric field for the year, a
three-letter field for the month, and an 8-bit numeric field for the day-of-month. As this example
shows, the fields of a record need not all have the same size and encoding; therefore, in general
one cannot easily obtain the field which has a run-time computed index in the field sequence, as
one can do in an array.
A record type is a data type that describes such values and variables. Most modern computer
languages allow the programmer to define new record types. The definition includes specifying
the data type of each field, its position in the record, and an identifier (name or label) by which it
can be accessed. In type theory, product types are generally preferred due to their simplicty, but
proper record types are studied in languages such as System F-sub. Since type-theoretical records
may contain first-class function-typed fields in addition to data, they can express many features
of object-oriented programming.
Records can exist in any storage medium, including main memory and mass storage devices such
as magnetic tapes or hard disks. Records are a fundamental component of most data structures,
especially linked data structures. Many computer files are organized as arrays of logical records,
often grouped into larger physical records or blocks for efficiency.
The parameters of a function or procedure can often be viewed as the fields of a record variable;
and the arguments passed to that function can be viewed as a record value that gets assigned to
that variable at the time of the call. Also, in the call stack that is often used to implement
procedure calls, each entry is an activation record or call frame, containing the procedure
parameters and local variables, the return address, and other internal fields.
An object in object-oriented language is essentially a record that contains procedures specialized
to handle that record; and object data types (often called object classes) are an elaboration of
record types. Indeed, in most object-oriented languages, records are just special cases of objects.
A record can be viewed as the computer analog of a mathematical tuple. In the same vein, a
record type can be viewed as the computer language analog of the Cartesian product of two or
more mathematical sets, or the implementation of an abstract product type in a specific language.

Contents
[hide]
• 1 History
• 2 Operations
○ 2.1 Assignment and comparison
○ 2.2 Algol 68's distributive field selection
○ 2.3 Pascal's "with" statement
• 3 Representation in memory
• 4 See also
[edit] History
The concept of record can be traced to various types of tables and ledgers used in accounting
since remote times. The modern notion of records in computer science, with fields of well-
defined type and size, was already implicit in 19th century mechanical calculators, such as
Babbage's Analytical Engine.[citation needed]
Records were well established in the first half of the 20th century, when most data processing
was done using punched cards. Typically each records of a data file would be recorded in one
punched card, with specific columns assigned to specific fields.
Most machine language implementations and early assembly languages did not have special
syntax for records, but the concept was available (and extensively used) through the use of index
registers, indirect addressing, and self-modifying code. Some early computers, such as the IBM
1620, had hardware support for delimiting records and fields, and special instructions for
copying such records.
The concept of records and fields was central in some early file sorting and tabulating utilities,
such as IBM's Report Program Generator (RPG).
COBOL was the first widespread programming language to support record types,[citation needed] and
indeed its record definition facilities were quite complex for the times. The language allowed the
definition of nested records with alphanumeric, integer, and fractional fields of arbitrary size and
precision, as well as fields that would automatically format any value assigned to them (such as
inserting a dollar sign and a decimal period). Each file had to be associated with a record variable
where data was read into or written from. COBOL also provided a MOVE CORRESPONDING
command that would assign corresponding fields of two record, paired by their names.
The early languages developed for numeric computing, such as FORTRAN (up to FORTRAN
IV) and Algol 60, did not have support for record types; but latter versions of those languages,
such as Fortran 77 and Algol 68 did add them. The original Lisp programming language too was
lacking records (except for the built-in cons cell), but its S-expressions provided an adequate
surrogate. The Pascal programming language was one of the first languages to fully integrate
record types with other basic types into a logically consistent type system. IBM's PL/1
programming language provided for COBOL-style records. The C programming language
initially provided the record concept as a kind of template (struct) that could be laid on top of a
memory area, rather than a true record data type. The latter were provided eventually (by the
typedef declaration), but the two concepts are still distinct in the language. Most languages
designed after Pascal (such as Ada, Modula, and Java) also supported records.
[edit] Operations
A programming language that supports record types usually provides special syntax for some or
all of the following:
• Declaring a new record type, including the position, type, and (possibly) name of each
field;
• Declaring variables and values as having a given record type;
• Constructing a record value from given field values and (sometimes) with given field
names;
• Selecting a field of a record with an explicit name;
• Assigning a record value to a record variable;
• Comparing two records for equality;
• Computing a standard hash value for the record.
Some languages may provide facilities that enumerate all fields of a record, or at least the fields
that are references. This facility is needed to implement certain services such as debuggers,
garbage collectors, and serialization. It requires some degree of type polymorphism.
The selection of a field from a record value yields a value. The selection of a field from a record
variable usually yields a variable. This variable has the field's data type, and usually can be
assigned to and otherwise handled as any ordinary variable of that type.
[edit] Assignment and comparison
Most languages allow assignment between records that have exactly the same record type
(including same field types and names, in the same order). Depending on the language, however,
two record data types defined separately may be regarded as distinct types even if they have
exactly the same fields.
Some languages may also allow assignment between records whose fields have different names,
matching each field value with the corresponding field variable by their positions within the
record; so that, for example, a complex number with fields called real and imag can be assigned
to a 2D point record variable with fields X and Y. In this alternative, the two operands are still
required to have the same sequence of field types. Some languages may also require that
corresponding types have the same size and encoding as well, so that the whole record can be
assigned as an uninterpreted bit string. Other languages may be more flexible in this regard, and
require only that each value field can be legally assigned to the corresponding variable field; so
that, for eaxmple, a short integer field can be assigned to a long integer field, or vice-versa.
Other languages (such as COBOL) may match fields and values by their names, rather than
positions.
These same possibilities apply to the comparison of two record values for equality. Some
languages may also allow order comparisons ('<'and '>'), using the lexicographic order based on
the comparison of individual fields.[citation needed]
[edit] Algol 68's distributive field selection
In Algol 68, if Pts was an array of records, each with integer fields X and Y, one could write
Pts.Y to obtain an array of integers, consisting of the Y fields of all the elements of Pts. As a
result, the statements Pts[3].Y := 7 and Pts.Y[3] := 7 would have the same effect.
[edit] Pascal's "with" statement
In the Pascal programming language, the command with R do S end would execute the
command sequence S as if all the fields of record R had been declared as variables. So, instead of
writing Pt.X := 5; Pt.Y := Pt.X + 3 one could write with Pt do X := 5; Y := X + 3
end.

[edit] Representation in memory


The representation of records in memory varies depending on the programming languages.
Usually the fields are stored in consecutive positions in memory, in the same order as they are
declared in the record type. This may result in two or more fields stored into the same word of
memory; indeed, this feature is often used in systems programming to access specific bits of a
word. On the other hand, most compilers will add padding fields, mostly invisible to the
programmer, in order to comply with alignment constraints imposed by the machine—say, that a
floating point field must occupy a single word.
Some languages may implement a record as an array of addresses pointing to the fields (and,
possibly, to their names and/or types). Objects in object-oriented languages are often
implemented in rather complicated ways, especially in languages that allow multiple class
inheritance.
[edit] See also
• struct (C programming language)
• Composite data type
• Object composition
• Cons cell
• Storage record
• Block (data storage)
• Hashed linking
• Data structure alignment
• Data hierarchy
[hide]
v•d•e
Data types

Uninterprete
Bit · Byte · Word
d

Integer · Fixed-point · Floating-point · Rational · Complex · Bignum ·


Numeric
Interval

Text Character · String

Pointer Address · Reference

Product · Record · Class · Object · Union (tagged) · Array · Associative


Composite
array · Set · List · Algebraic data type (generalized)

Bottom type · Void · Unit type · Top type · Boolean · Enumerated type ·
Other First-class function · Opaque data type · Stream · Exception · Collection ·
Recursive data type · Type class

Data structure · Subtyping · Primitive data type · Abstract data type ·


Related topics Template · Interface · Parametric polymorphism · Type constructor · Kind
(type theory)
Retrieved from "http://en.wikipedia.org/wiki/Record_(computer_science)"
Categories: Data types | Composite data types
Hidden categories: Articles lacking sources from September 2009 | All articles lacking sources |
All articles with unsourced statements | Articles with unsourced statements from May 2009
Views
• Article
• Discussion
• Edit this page
• History
Personal tools
• Try Beta
• Log in / create account
Navigation
• Main page
• Contents
• Featured content
• Current events
• Random article
Search
Top of Form

Special:Search Go Search

Bottom of Form
Interaction
• About Wikipedia
• Community portal
• Recent changes
• Contact Wikipedia
• Donate to Wikipedia
• Help
Toolbox
• What links here
• Related changes
• Upload file
• Special pages
• Printable version
• Permanent link
• Cite this page
Languages
• Українська

• This page was last modified on 3 December 2009 at 22:14.


• Text is available under the Creative Commons Attribution-ShareAlike License;
additional terms may apply. See Terms of Use for details.
Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit
organization.
• Contact us
• Privacy policy
• About Wikipedia
• Disclaimers
Y [
ou Hi
ar d
e e
in ]
vit [
ed H
e
to l
vo p
te
u
on s
th
e w
i
gl t
ob h
al
t
sy r
so a
ps n
s
pr l
op a
os t
i
al. o
Cl n
ic
k
he
re
for
m s
or !
e ]
inf
or
m
ati
on
.

Database management system


From Wikipedia, the free encyclopedia
Jump to: navigation, search
This article may contain original research. Please improve it by verifying the claims
made and adding references. Statements consisting only of original research may be
removed. More details may be available on the talk page. (December 2009)

This article may require cleanup to meet Wikipedia's quality standards. Please
improve this article if you can. (July 2009)

This article needs additional citations for verification.


Please help improve this article by adding reliable references. Unsourced material may be challenged
and removed. (October 2008)

A Database Management System (DBMS) is a set of computer programs that controls the
creation, maintenance, and the use of the database with computer as a platform or of an
organization and its end users. It allows organizations to place control of organization-wide
database development in the hands of database administrators (DBAs) and other specialists. A
DBMS is a system software package that helps the use of integrated collection of data records
and files known as databases. It allows different user application programs to easily access the
same database. DBMSs may use any of a variety of database models, such as the network model
or relational model. In large systems, a DBMS allows users and other software to store and
retrieve data in a structured way. Instead of having to write computer programs to extract
information, user can ask simple questions in a query language. Thus, many DBMS packages
provide Fourth-generation programming language (4GLs) and other application development
features. It helps to specify the logical organization for a database and access and use the
information within a database. It provides facilities for controlling data access, enforcing data
integrity, managing concurrency controlled, restoring database.

Contents
[hide]
• 1 Overview
• 2 History
○ 2.1 1960s Navigational DBMS
○ 2.2 1970s Relational DBMS
○ 2.3 End 1970s SQL DBMS
• 3 DBMS building blocks
○ 3.1 Components of DBMS
○ 3.2 Modeling language
○ 3.3 Data structure
○ 3.4 Database query language
○ 3.5 Transaction mechanism
• 4 DBMS topics
○ 4.1 Logical and physical view
○ 4.2 DBMS features and capabilities
○ 4.3 Meta-data repository
○ 4.4 Current trends
• 5 Examples
• 6 See also
• 7 References

[edit] Overview
A DBMS is a set of software programs that controls the organization, storage, management, and
retrieval of data in a database. DBMSs are categorized according to their data structures or types.
The DBMS accepts requests for data from an application program and instructs the operating
system to transfer the appropriate data. The queries and responses must be submitted and
received according to a format that conforms to one or more applicable protocols. When a
DBMS is used, information systems can be changed much more easily as the organization's
information requirements change. New categories of data can be added to the database without
disruption to the existing system.
Database servers are computers that hold the actual databases and run only the DBMS and
related software. Database servers are usually multiprocessor computers, with generous memory
and RAID disk arrays used for stable storage. Hardware database accelerators, connected to one
or more servers via a high-speed channel, are also used in large volume transaction processing
environments. DBMSs are found at the heart of most database applications. Sometimes DBMSs
are built around a private multitasking kernel with built-in networking support although
nowadays these functions are left to the operating system.
[edit] History
This article may need to be updated. Please update this article to reflect recent events
or newly available information, and remove this template when finished. Please see the
talk page for more information. (July 2009)
Databases have been in use since the earliest days of electronic computing. Unlike modern
systems which can be applied to widely different databases and needs, the vast majority of older
systems were tightly linked to the custom databases in order to gain speed at the expense of
flexibility. Originally DBMSs were found only in large organizations with the computer
hardware needed to support large data sets.
[edit] 1960s Navigational DBMS
As computers grew in speed and capability, a number of general-purpose database systems
emerged; by the mid-1960s there were a number of such systems in commercial use. Interest in a
standard began to grow, and Charles Bachman, author of one such product, Integrated Data Store
(IDS), founded the "Database Task Group" within CODASYL, the group responsible for the
creation and standardization of COBOL. In 1971 they delivered their standard, which generally
became known as the "Codasyl approach", and soon there were a number of commercial
products based on it available.
The Codasyl approach was based on the "manual" navigation of a linked data set which was
formed into a large network. When the database was first opened, the program was handed back
a link to the first record in the database, which also contained pointers to other pieces of data. To
find any particular record the programmer had to step through these pointers one at a time until
the required record was returned. Simple queries like "find all the people in India" required the
program to walk the entire data set and collect the matching results. There was, essentially, no
concept of "find" or "search". This might sound like a serious limitation today, but in an era
when the data was most often stored on magnetic tape such operations were too expensive to
contemplate anyway.
IBM also had their own DBMS system in 1968, known as IMS. IMS was a development of
software written for the Apollo program on the System/360. IMS was generally similar in
concept to Codasyl, but used a strict hierarchy for its model of data navigation instead of
Codasyl's network model. Both concepts later became known as navigational databases due to
the way data was accessed, and Bachman's 1973 Turing Award award presentation was The
Programmer as Navigator. IMS is classified as a hierarchical database. IDS and IDMS, both
CODASYL databases, as well as CINCOMs TOTAL database are classified as network
databases.
[edit] 1970s Relational DBMS
Edgar Codd worked at IBM in San Jose, California, in one of their offshoot offices that was
primarily involved in the development of hard disk systems. He was unhappy with the
navigational model of the Codasyl approach, notably the lack of a "search" facility which was
becoming increasingly useful. In 1970, he wrote a number of papers that outlined a new
approach to database construction that eventually culminated in the groundbreaking A Relational
Model of Data for Large Shared Data Banks.[1]
In this paper, he described a new system for storing and working with large databases. Instead of
records being stored in some sort of linked list of free-form records as in Codasyl, Codd's idea
was to use a "table" of fixed-length records. A linked-list system would be very inefficient when
storing "sparse" databases where some of the data for any one record could be left empty. The
relational model solved this by splitting the data into a series of normalized tables, with optional
elements being moved out of the main table to where they would take up room only if needed.

In the relational model, related records are linked together with a "key".
For instance, a common use of a database system is to track information about users, their name,
login information, various addresses and phone numbers. In the navigational approach all of
these data would be placed in a single record, and unused items would simply not be placed in
the database. In the relational approach, the data would be normalized into a user table, an
address table and a phone number table (for instance). Records would be created in these
optional tables only if the address or phone numbers were actually provided.
Linking the information back together is the key to this system. In the relational model, some bit
of information was used as a "key", uniquely defining a particular record. When information was
being collected about a user, information stored in the optional (or related) tables would be
found by searching for this key. For instance, if the login name of a user is unique, addresses and
phone numbers for that user would be recorded with the login name as its key. This "re-linking"
of related data back into a single collection is something that traditional computer languages are
not designed for.
Just as the navigational approach would require programs to loop in order to collect records, the
relational approach would require loops to collect information about any one record. Codd's
solution to the necessary looping was a set-oriented language, a suggestion that would later
spawn the ubiquitous SQL. Using a branch of mathematics known as tuple calculus, he
demonstrated that such a system could support all the operations of normal databases (inserting,
updating etc.) as well as providing a simple system for finding and returning sets of data in a
single operation.
Codd's paper was picked up by two people at the Berkeley, Eugene Wong and Michael
Stonebraker. They started a project known as INGRES using funding that had already been
allocated for a geographical database project, using student programmers to produce code.
Beginning in 1973, INGRES delivered its first test products which were generally ready for
widespread use in 1979. During this time, a number of people had moved "through" the group —
perhaps as many as 30 people worked on the project, about five at a time. INGRES was similar
to System R in a number of ways, including the use of a "language" for data access, known as
QUEL — QUEL was in fact relational, having been based on Codd's own Alpha language, but
has since been corrupted to follow SQL, thus violating much the same concepts of the relational
model as SQL itself.
IBM itself did only one test implementation of the relational model, PRTV, and a production
one, Business System 12, both now discontinued. Honeywell did MRDS for Multics, and now
there are two new implementations: Alphora Dataphor and Rel. All other DBMS
implementations usually called relational are actually SQL DBMSs. In 1968, the University of
Michigan began development of the Micro DBMS relational database management system. It
was used to manage very large data sets by the US Department of Labor, the Environmental
Protection Agency and researchers from University of Alberta, the University of Michigan and
Wayne State University. It ran on mainframe computers using Michigan Terminal System. The
system remained in production until 1996.
[edit] End 1970s SQL DBMS
IBM started working on a prototype system loosely based on Codd's concepts as System R in the
early 1970s. The first version was ready in 1974/5, and work then started on multi-table systems
in which the data could be split so that all of the data for a record (much of which is often
optional) did not have to be stored in a single large "chunk". Subsequent multi-user versions
were tested by customers in 1978 and 1979, by which time a standardized query language, SQL,
had been added. Codd's ideas were establishing themselves as both workable and superior to
Codasyl, pushing IBM to develop a true production version of System R, known as SQL/DS,
and, later, Database 2 (DB2).
Many of the people involved with INGRES became convinced of the future commercial success
of such systems, and formed their own companies to commercialize the work but with an SQL
interface. Sybase, Informix, NonStop SQL and eventually Ingres itself were all being sold as
offshoots to the original INGRES product in the 1980s. Even Microsoft SQL Server is actually a
re-built version of Sybase, and thus, INGRES. Only Larry Ellison's Oracle started from a
different chain, based on IBM's papers on System R, and beat IBM to market when the first
version was released in 1978.
Stonebraker went on to apply the lessons from INGRES to develop a new database, Postgres,
which is now known as PostgreSQL. PostgreSQL is primarily used for global mission critical
applications (the .org and .info domain name registries use it as their primary data store, as do
many large companies and financial institutions).
In Sweden, Codd's paper was also read and Mimer SQL was developed from the mid-70s at
Uppsala University. In 1984, this project was consolidated into an independent enterprise. In the
early 1980s, Mimer introduced transaction handling for high robustness in applications, an idea
that was subsequently implemented on most other DBMS.
[edit] DBMS building blocks
A DBMS includes four main parts: modeling language, data structure, database query language,
and transaction mechanisms:
[edit] Components of DBMS
• DBMS Engine accepts logical request from the various other DBMS subsystems,
converts them into physical equivalent, and actually accesses the database and data
dictionary as they exist on a storage device.
• Data Definition Subsystem helps user to create and maintain the data dictionary and
define the structure of the files in a database.
• Data Manipulation Subsystem helps user to add, change, and delete information in a
database and query it for valuable information. Software tools within the data
manipulation subsystem are most often the primary interface between user and the
information contained in a database. It allows user to specify its logical information
requirements.
• Application Generation Subsystem contains facilities to help users to develop
transactions-intensive applications. It usually requires that user perform a detailed series
of tasks to process a transaction. It facilities easy-to-use data entry screens, programming
languages, and interfaces.
• Data Administration Subsystem helps users to manage the overall database
environment by providing facilities for backup and recovery, security management, query
optimization, concurrency control, and change management.
[edit] Modeling language
A data modeling language to define the schema of each database hosted in the DBMS, according
to the DBMS database model. The four most common types of models are the:
• hierarchical model,
• network model,
• relational model, and
• object model.
Inverted lists and other methods are also used. A given database management system may
provide one or more of the four models. The optimal structure depends on the natural
organization of the application's data, and on the application's requirements (which include
transaction rate (speed), reliability, maintainability, scalability, and cost).
The dominant model in use today is the ad hoc one embedded in SQL, despite the objections of
purists who believe this model is a corruption of the relational model, since it violates several of
its fundamental principles for the sake of practicality and performance. Many DBMSs also
support the Open Database Connectivity API that supports a standard way for programmers to
access the DBMS.
Before the database management approach, organizations relied on file processing systems to
organize, store, and process data files. End users became aggravated with file processing because
data is stored in many different files and each organized in a different way. Each file was
specialized to be used with a specific application. Needless to say, file processing was bulky,
costly and nonflexible when it came to supplying needed data accurately and promptly. Data
redundancy is an issue with the file processing system because the independent data files
produce duplicate data so when updates were needed each separate file would need to be
updated. Another issue is the lack of data integration. The data is dependent on other data to
organize and store it. Lastly, there was not any consistency or standardization of the data in a file
processing system which makes maintenance difficult. For all these reasons, the database
management approach was produced. Database management systems (DBMS) are designed to
use one of five database structures to provide simplistic access to information stored in
databases. The five database structures are hierarchical, network, relational, multidimensional
and object-oriented models.
The hierarchical structure was used in early mainframe DBMS. Records’ relationships form a
treelike model. This structure is simple but nonflexible because the relationship is confined to a
one-to-many relationship. IBM’s IMS system and the RDM Mobile are examples of a
hierarchical database system with multiple hierarchies over the same data. RDM Mobile is a
newly designed embedded database for a mobile computer system. The hierarchical structure is
used primary today for storing geographic information and file systems.
The network structure consists of more complex relationships. Unlike the hierarchical structure,
it can relate to many records and accesses them by following one of several paths. In other
words, this structure allows for many-to-many relationships.
The relational structure is the most commonly used today. It is used by mainframe, midrange and
microcomputer systems. It uses two-dimensional rows and columns to store data. The tables of
records can be connected by common key values. While working for IBM, E.F. Codd designed
this structure in 1970. The model is not easy for the end user to run queries with because it may
require a complex combination of many tables.
The multidimensional structure is similar to the relational model. The dimensions of the cube
looking model have data relating to elements in each cell. This structure gives a spreadsheet like
view of data. This structure is easy to maintain because records are stored as fundamental
attributes, the same way they’re viewed and the structure is easy to understand. Its high
performance has made it the most popular database structure when it comes to enabling online
analytical processing (OLAP).
The object oriented structure has the ability to handle graphics, pictures, voice and text, types of
data, without difficultly unlike the other database structures. This structure is popular for
multimedia Web-based applications. It was designed to work with object-oriented programming
languages such as Java.
[edit] Data structure
Data structures (fields, records, files and objects) optimized to deal with very large amounts of
data stored on a permanent data storage device (which implies relatively slow access compared
to volatile main memory).
[edit] Database query language
A database query language and report writer allows users to interactively interrogate the
database, analyze its data and update it according to the users privileges on data. It also controls
the security of the database. Data security prevents unauthorized users from viewing or updating
the database. Using passwords, users are allowed access to the entire database or subsets of it
called subschemas. For example, an employee database can contain all the data about an
individual employee, but one group of users may be authorized to view only payroll data, while
others are allowed access to only work history and medical data.
If the DBMS provides a way to interactively enter and update the database, as well as interrogate
it, this capability allows for managing personal databases. However, it may not leave an audit
trail of actions or provide the kinds of controls necessary in a multi-user organization. These
controls are only available when a set of application programs are customized for each data entry
and updating function.
[edit] Transaction mechanism
A database transaction mechanism ideally guarantees ACID properties in order to ensure data
integrity despite concurrent user accesses (concurrency control), and faults (fault tolerance). It
also maintains the integrity of the data in the database. The DBMS can maintain the integrity of
the database by not allowing more than one user to update the same record at the same time. The
DBMS can help prevent duplicate records via unique index constraints; for example, no two
customers with the same customer numbers (key fields) can be entered into the database. See
ACID properties for more information (Redundancy avoidance).
[edit] DBMS topics
[edit] Logical and physical view

Traditional View of Data[2]


A database management system provides the ability for many different users to share data and
process resources. But as there can be many different users, there are many different database
needs. The question now is: How can a single, unified database meet the differing requirement of
so many users?
A DBMS minimizes these problems by providing two views of the database data: a logical
(external) view and physical (internal) view. The logical view/user’s view, of a database program
represents data in a format that is meaningful to a user and to the software programs that process
those data. That is, the logical view tells the user, in user terms, what is in the database. The
physical view deals with the actual, physical arrangement and location of data in the direct
access storage devices(DASDs). Database specialists use the physical view to make efficient use
of storage and processing resources. With the logical view users can see data differently from
how they are stored, and they do not want to know all the technical details of physical storage.
After all, a business user is primarily interested in using the information, not in how it is stored.
One strength of a DBMS is that while there is typically only one physical view of the data, there
can be an endless number of different logical views. This feature allows users to see database
information in a more business-related way rather than from a technical, processing viewpoint.
Thus the logical view refers to the way user views data, and the physical view to the way the data
are physically stored and processed...
[edit] DBMS features and capabilities
Alternatively, and especially in connection with the relational model of database management,
the relation between attributes drawn from a specified set of domains can be seen as being
primary. For instance, the database might indicate that a car that was originally "red" might fade
to "pink" in time, provided it was of some particular "make" with an inferior paint job. Such
higher arity relationships provide information on all of the underlying domains at the same time,
with none of them being privileged above the others.
Throughout recent history specialized databases have existed for scientific, geospatial, imaging,
document storage and like uses. Functionality drawn from such applications has lately begun
appearing in mainstream DBMSs as well. However, the main focus there, at least when aimed at
the commercial data processing market, is still on descriptive attributes on repetitive record
structures.
Thus, the DBMSs of today roll together frequently-needed services or features of attribute
management. By externalizing such functionality to the DBMS, applications effectively share
code with each other and are relieved of much internal complexity. Features commonly offered
by database management systems include:
Query ability
Querying is the process of requesting attribute information from various perspectives and
combinations of factors. Example: "How many 2-door cars in Texas are green?" A
database query language and report writer allow users to interactively interrogate the
database, analyze its data and update it according to the users privileges on data.
Backup and replication
Copies of attributes need to be made regularly in case primary disks or other equipment
fails. A periodic copy of attributes may also be created for a distant organization that
cannot readily access the original. DBMS usually provide utilities to facilitate the process
of extracting and disseminating attribute sets. When data is replicated between database
servers, so that the information remains consistent throughout the database system and
users cannot tell or even know which server in the DBMS they are using, the system is
said to exhibit replication transparency.
Rule enforcement
Often one wants to apply rules to attributes so that the attributes are clean and reliable.
For example, we may have a rule that says each car can have only one engine associated
with it (identified by Engine Number). If somebody tries to associate a second engine
with a given car, we want the DBMS to deny such a request and display an error
message. However, with changes in the model specification such as, in this example,
hybrid gas-electric cars, rules may need to change. Ideally such rules should be able to be
added and removed as needed without significant data layout redesign.
Security
Often it is desirable to limit who can see or change which attributes or groups of
attributes. This may be managed directly by individual, or by the assignment of
individuals and privileges to groups, or (in the most elaborate models) through the
assignment of individuals and groups to roles which are then granted entitlements.
Computation
There are common computations requested on attributes such as counting, summing,
averaging, sorting, grouping, cross-referencing, etc. Rather than have each computer
application implement these from scratch, they can rely on the DBMS to supply such
calculations.
Change and access logging
Often one wants to know who accessed what attributes, what was changed, and when it
was changed. Logging services allow this by keeping a record of access occurrences and
changes.
Automated optimization
If there are frequently occurring usage patterns or requests, some DBMS can adjust
themselves to improve the speed of those interactions. In some cases the DBMS will
merely provide tools to monitor performance, allowing a human expert to make the
necessary adjustments after reviewing the statistics collected.
[edit] Meta-data repository
Metadata is data describing data. For example, a listing that describes what attributes are allowed
to be in data sets is called "meta-information". The meta-data is also known as data about data.
[edit] Current trends
In 1998, database management was in need of new style databases to solve current database
management problems. Researchers realized that the old trends of database management were
becoming too complex and there was a need for automated configuration and management [3].
Surajit Chaudhuri, Gerhard Weikum and Michael Stonebraker, were the pioneers that
dramatically affected the thought of database management systems [3]. They believed that
database management needed a more modular approach and that there are so many specifications
needs for various users [3]. Since this new development process of database management we
currently have endless possibilities. Database management is no longer limited to “monolithic
entities” [3]. Many solutions have developed to satisfy individual needs of users. Development of
numerous database options has created flexible solutions in database management. Today there
are several ways database management has affected the technology world as we know it.
Organizations demand for directory services has become an extreme necessity as organizations
grow. Businesses are now able to use directory services that provided prompt searches for their
company information [3]. Mobile devices are not only able to store contact information of users
but have grown to bigger capabilities. Mobile technology is able to cache large information that
is used for computers and is able to display it on smaller devices [3]. Web searches have even
been affected with database management. Search engine queries are able to locate data within the
World Wide Web [3]. Retailers have also benefited from the developments with data
warehousing. These companies are able to record customer transactions made within their
business [3]. Online transactions have become tremendously popular with the e-business world.
Consumers and businesses are able to make payments securely on company websites. None of
these current developments would have been possible without the evolution of database
management. Even with all the progress and current trends of database management, there will
always be a need for new development as specifications and needs grow.
[edit] Examples
• Adabas • Linter SQL RDBMS
• Adaptive Server Enterprise • Lotus Approach
• Alpha Five • Mark Logic
• BlackRay • Microsoft Access
• Cassandra • Microsoft SQL Server
• Computhink's ViewWise • Microsoft Visual FoxPro
• CSQL • MonetDB
• Daffodil DB • MySQL
• DataEase • OpenLink Virtuoso
• dBase • Omnis 7
• db4o • OpenOffice.org Base
• FileMaker • Oracle Database
• Firebird • ParAccel
• IBM DB2 • PostgreSQL
• IBM IMS • Progress
• IBM UniVerse • SQL Anywhere
• Ingres • SQLite
• Infobright • Teradata
• Informix • Unisys OS 2200 databases
• InterSystems Caché • Vertica Analytic Database
• Kexi
• WX2

[edit] See also


• Column-oriented DBMS • Navigational • Relational model
• Data warehouse database • Relational database
• Database-centric • Network model management system
architecture • Object model • Run Book Automation
• Directory service • Object database • Comparison of relational
• Distributed database • Object-relational database management
management system database systems
• Document management • Real time database • SQL
system • Associative model
• Hierarchical model of data
[edit] References
1. ^ Codd, E.F. (1970)."A Relational Model of Data for Large Shared Data Banks". In:
Communications of the ACM 13 (6): 377–387.
2. ^ itl.nist.gov (1993) Integration Definition for Information Modeling (IDEFIX). 21
December 1993.
3. ^ a b c d e f g h Seltzer, M. (2008, July). Beyond Relational Databases. Communications of
the ACM, 51(7), 52-58. Retrieved July 6, 2009, from Business Source Complete
database.
This article was originally based on material from the Free On-line Dictionary of Computing,
which is licensed under the GFDL.
[show]
v•d•e
Database management systems

Database models · Database normalization · Database storage · Distributed DBMS ·


Federated database system · Referential integrity · Relational algebra · Relational calculus ·
Relational database · Relational DBMS · Relational model · Object-relational database ·
Transaction processing

C
o
n
c Database · ACID · CRUD · Null · Candidate key · Foreign key · Primary key · Superkey ·
e Surrogate key · Armstrong's axioms
p
t
s

O
b
j
Relation (Table) · View · Transaction · Log · Trigger · Index · Stored procedure · Cursor ·
e
Partition
c
t
s

S
Select · Insert · Update · Merge · Delete · From · Join · Union · Create · Drop · Start
Q
Transaction · Commit · Rollback · Truncate · Alter · Where
L

C Concurrency control · Data dictionary · JDBC · ODBC · Query language · Query


o optimizer · Query plan
m
p
o
n
e
n
t
s

Database products: Object-oriented (comparison) · Relational (comparison) · Document-


oriented

[show]
v•d•e
Systems and systems science

S
y
s
t
e
m
s

c
Systems theory · Systems science · Systems scientists (Conceptual · Physical · Social)
a
t
e
g
o
r
i
e
s

S
Biological · Complex · Complex adaptive · Conceptual · Database management ·
y
Dynamical · Economical ·
s
t Ecosystem · Formal · Global Positioning System · Human anatomy · Information systems ·
e Legal systems of the world · Systems of measurement · Metric system · Multi-agent
m system · Nervous system · Nonlinearity · Operating system · Physical system · Political
s system · Sensory system · Social structure · Solar System · Systems art

T Chaos theory · Complex systems · Control theory · Cybernetics · Living systems ·


h Sociotechnical systems theory · Systems biology · System dynamics · Systems ecology ·
e Systems engineering · Systems psychology · Systems science · Systems theory
o
r
e
t
i
c
a
l

f
i
e
l
d
s

S
y
s
t
e
m
Russell L. Ackoff · William Ross Ashby · Béla H. Bánáthy · Gregory Bateson · Richard E.
s
Bellman · Stafford Beer · Ludwig von Bertalanffy · Murray Bowen · Kenneth E. Boulding ·
C. West Churchman · George Dantzig · Heinz von Foerster · Jay Wright Forrester · George
s
Klir · Edward Lorenz · Niklas Luhmann · Humberto Maturana · Margaret Mead · Donella
c
Meadows · Mihajlo D. Mesarovic · James Grier Miller · Howard T. Odum · Talcott
i
Parsons · Ilya Prigogine · Anatol Rapoport · Claude Shannon · Francisco Varela · Kevin
e
Warwick · Norbert Wiener
n
t
i
s
t
s
Retrieved from "http://en.wikipedia.org/wiki/Database_management_system"
Categories: Database management systems | Databases
Hidden categories: Articles that may contain original research from December 2009 | All articles
that may contain original research | Articles needing cleanup from July 2009 | All pages needing
cleanup | Articles needing additional references from October 2008 | All articles needing
additional references | Wikipedia articles in need of updating | Wikipedia articles incorporating
text from FOLDOC
Views
• Article
• Discussion
• Edit this page
• History
Personal tools
• Try Beta
• Log in / create account
Navigation
• Main page
• Contents
• Featured content
• Current events
• Random article
Search
Top of Form

Special:Search Go Search

Bottom of Form
Interaction
• About Wikipedia
• Community portal
• Recent changes
• Contact Wikipedia
• Donate to Wikipedia
• Help
Toolbox
• What links here
• Related changes
• Upload file
• Special pages
• Printable version
• Permanent link
• Cite this page
Languages
• Afrikaans
• ‫العربية‬
• Беларуская (тарашкевіца)
• Bosanski
• Български
• Català
• Česky
• Deutsch
• Español
• Euskara
• ‫فارسی‬
• Français
• Gaeilge
• 한국어
• िहनदी
• Hrvatski
• Bahasa Indonesia
• Italiano
• Lietuvių
• Magyar
• Mìng-dĕ̤ng-ngṳ̄
• Nederlands
• 日本語
• Norsk (bokmål)
• Polski
• Português
• Qaraqalpaqsha
• Română
• Русский
• Slovenčina
• Slovenščina
• Српски / Srpski
• Suomi
• Svenska
• ไทย
• Türkçe
• Українська
• Tiếng Việt
• 中文

• This page was last modified on 29 December 2009 at 23:28.


• Text is available under the Creative Commons Attribution-ShareAlike License;
additional terms may apply. See Terms of Use for details.
Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit
organization.
• Contact us
• Privacy policy
• About Wikipedia
• Disclaimers

You are invited to vote on the global sysops proposal. Click [Hide]
here for more information. [Help us with
translations!]
Visual FoxPro

From Wikipedia, the free encyclopedia

Jump to: navigation, search

"VFP" redirects here. For the floating-point extension of ARM processors, see ARM
architecture#VFP.

Microsoft Visual FoxPro

Typical VFP9 editing session


Original
Microsoft Corporation
author(s)
Visual FoxPro 9.0 Service
Stable release Pack 2 (SP2) / 2007-10-11; 2
years ago
Operating
Microsoft Windows
system
Platform x86 and greater
Available in IDE: English, German,
Spanish
Runtime: Above, French,
Chinese, Russian, Czech,
Korean
Development
Maintenance mode
status
Database Programming
Type
language
License Microsoft EULA
Website msdn.microsoft.com/vfoxpro
Visual FoxPro is a data-centric object-oriented and procedural programming
language produced by Microsoft. It is derived from FoxPro (originally known as
FoxBASE) which was developed by Fox Software beginning in 1984. Fox
Technologies merged with Microsoft in 1992, after which the software acquired
further features and the prefix "Visual". The last version of FoxPro (2.6) worked
under Mac OS, DOS, Windows, and Unix: Visual FoxPro 3.0, the first "Visual" version,
dropped the platform support to only Mac and Windows, and later versions were
Windows-only. The current version of Visual FoxPro is COM-based and Microsoft has
stated that they do not intend to create a Microsoft .NET version.

FoxPro originated as a member of the class of languages commonly referred to as


"xBase" languages, which have syntax based on the dBase programming language.
Other members of the xBase language family include Clipper and Recital. (A history
of the early years of xBase can be found in the dBase entry.)

Visual FoxPro, commonly abbreviated as VFP, is tightly integrated with its own
relational database engine, which extends FoxPro's xBase capabilities to support
SQL query and data manipulation. Unlike most database management systems,
Visual FoxPro is a full-featured, dynamic programming language that does not
require the use of an additional general-purpose programming environment. It can
be used to write not just traditional "fat client" applications, but also middleware
and web applications.

Contents
[hide]
1 Recent history
2 Version information
2.1 Operating system
compatibility
2.2 Information on executable
files
3 Code samples
3.1 Object
3.2 Data handling
3.3 ODBC access using SQL
passthrough
4 Beta code names
5 References
6 External links
6.1 Microsoft pages
6.2 Other pages
[edit] Recent history

In late 2002, it was demonstrated that Visual FoxPro can run on Linux under the
Wine Windows compatibility suite. In 2003, this led to complaints by Microsoft: it
was claimed that the deployment of runtime FoxPro code on non-Windows
machines violates the End User License Agreement.[1]

In December 2005, VFP broke into the top 20 on Tiobe index[2] for the first time. In
March 2007 it was at position 19, making it a "B" language, and as of December,
2008 it dropped into position 23.

In March 2007, Microsoft announced that there will be no VFP 10[3], thus making
VFP9 (released to manufacturing on December 17, 2004) the last commercial VFP
release from Microsoft. The support of Version 9 is ongoing with service packs that
were released December 8, 2005 and October 11, 2007.

At the time of the end of life announcement, work on the next release codenamed
Sedna (named after a recently discovered dwarf planet) which was built on top of
the VFP9 codebase had already begun. "Sedna" is a set of add-ons to VFP 9.0 of
XBase components to support a number of interoperability scenarios with various
Microsoft technologies including SQL Server 2005, .NET Framework, Windows Vista,
Office 2007, Windows Search and Team Foundation Server (TFS). Microsoft released
Sedna under the Shared source license on the CodePlex site. Microsoft has clarified
that the VFP core will still remain closed source. Sedna was released on January 25,
2008[4]. As of March 2008, all XBase components of the VFP 9 SP2 (including
Sedna) were available for community-development on the CodePlex.

In late March 2007 a grassroots campaign was started by the Spanish-speaking


FoxPro community at MasFoxPro[5] (MoreFoxPro in English) to sign a petition to
Microsoft to continue updating Visual FoxPro or release it to the community as Open
Source. On April 3, 2007 the movement was noted by the technical press[6]

Also on April 3, 2007 Microsoft responded to the petitioner's requests with this
statement from Alan Griver:

"We're very aware of the FoxPro community and that played a large part in what we
announced on March 13th. It's never an easy decision to announce that we're not
going to release another version of a product and it's one that we consider very
carefully.
"We're not announcing the end of FoxPro: Obviously, FoxPro applications will
continue to work. By some of our internal estimates, there are more applications
running in FoxPro 2.6 than there are in VFP and FoxPro 2.6 hasn't been supported in
many years. Visual FoxPro 9 will be supported by Microsoft through 2015.

"For Microsoft to continue to evolve the FoxPro base, we would need to look at
creating a 64-bit development environment and that would involve an almost
complete rewrite of the core product. We've also invested in creating a scalable
database with SQL Server, including the freely available SQL Server Express Edition.
As far as forming a partnership with a third-party is concerned, we've heard from a
number of large FoxPro customers that this would make it impossible for them to
continue to use FoxPro since it would no longer be from an approved vendor. We
felt that putting the environment into open source on CodePlex, which balances the
needs of both the community and the large customers, was the best path forward."

[edit] Version information

[edit] Operating system compatibility

Supported Windows Versions


VFP VFP
Version VFP 3.0 VFP 7.0 VFP 8.0 VFP 9.0
5.0 6.0
Windows 3.x Yes No No No No No
Windows NT 4.0 Yes Yes Yes Yes No No [7]
Runtime
Windows 95 Yes Yes Yes No No
only
Runtime Runtime
Windows 98 Yes Yes Yes Yes
only only
Runtime Runtime
Windows Me Yes Yes Yes Yes
only only
Windows 2000 Yes Yes Yes Yes Yes Yes
Windows XP Yes Yes Yes Yes Yes Yes
Windows Server
? ? Yes Yes Yes Yes
2003
Compatibility
Windows Vista Yes Yes Yes Yes Yes
Mode
Windows 7 (Build
? ? Yes Yes Yes Yes
7000)
[edit] Information on executable files

EXE DLL
Version VERSION() returns EXE Date DLL Name
Size Size
Visual FoxPro
VFP 9 SP2 5,648 4,624
09.00.0000.7423 for April 3, 2009 VFP9R.DLL
with Hotfixes kb kb
Windows
Visual FoxPro
5,648 September 4,624
VFP 9 SP2 09.00.0000.5721 for VFP9R.DLL
kb 21, 2007 kb
Windows
Visual FoxPro
5,620 December 4,600
VFP 9 09.00.0000.2412 for VFP9R.DLL
kb 13, 2004 kb
Windows
Visual FoxPro
5,236 September 4,200
VFP 8 08.00.0000.3117 for VFP8R.DLL
kb 25, 2003 kb
Windows
Visual FoxPro
4,260 January 4, 3,344
VFP 7 07.00.0000.9465 for VFP7R.DLL
kb 2002 kb
Windows
Visual FoxPro 4,091 August 18, 3,295
VFP 6 VFP6R.DLL
06.00.8961.00 for Windows kb 2000 kb
Visual FoxPro 5.0.0.415 for 4,065 January 24, 3,148
VFP 5 VFP500.DLL
Windows kb 1997 kb
Visual FoxPro 4,374 December 3,657
VFP 3 VFP300.ESL
03.00.00.0711 for Windows kb 16, 1995 kb
2,444 September 2,946 FOXW2600.
FPW 2.6a FoxPro 2.6a for Windows
kb 28, 1994 kb ESL
[edit] Code samples

Hello World example:

MESSAGEBOX("Hello World")

[edit] Object

Output of the Hello World program.


loForm = CREATEOBJECT("HiForm")

loForm.Show(1)

DEFINE CLASS HiForm AS Form

AutoCenter = .T.

Caption = "Hello, World"

ADD OBJECT lblHi as Label WITH ;

Caption = "Hello, World!"

ENDDEFINE

loMine = CREATEOBJECT("MyClass")

? loMine.cProp1 && This will work. (Double-ampersand marks an end-of-line


comment)

? loMine.cProp2 && Program Error: Property CPROP2 is not found.

? loMine.MyMethod1() && This will work.

? loMine.MyMethod2() && Program Error: Property MYMETHOD2 is not found.

DEFINE CLASS MyClass AS Custom

cProp1 = "My Property" && This is a public property

HIDDEN cProp2 && This is a private (hidden) property

PROCEDURE Init() && Class constructor

This.cProp2 = "This is a hidden property."

ENDPROC

PROCEDURE MyMethod1()
* This is a public method, calling a hidden method that returns

* the value of a hidden property.

RETURN This.MyMethod2()

ENDPROC

HIDDEN PROCEDURE MyMethod2() && This is a private (hidden) method

RETURN This.cProp2

ENDPROC

ENDDEFINE

[edit] Data handling

Output of the Data handling program.

&& Create a table

CREATE TABLE randData (iData I)

&& Populate with random data using xBase and SQL DML commands

FOR i = 1 TO 50

APPEND BLANK

REPLACE iData WITH (RAND() * 100)

INSERT INTO randData (iData) VALUES (RAND() * 100)


ENDFOR

&& Place a structural index on the data

INDEX ON iData TAG iData

CLOSE ALL

&& Display ordered data using xBase-style commands

USE randData

SET ORDER TO iData

GO TOP

LIST NEXT 10 && First 10

SKIP 81

LIST NEXT 10 && Last 10

CLOSE ALL

&& Browse ordered data using SQL DML commands

SELECT * ;

FROM randData ;

ORDER BY iData DESCENDING

[edit] ODBC access using SQL passthrough

&& Connect to an ODBC data source

LOCAL nHnd

nHnd = SQLCONNECT ("ODBCDSN", "user", "pwd")

&& Execute a SQL command

LOCAL nResult
nResult = SQLEXEC (nHnd, "USE master")

IF nResult < 0

MESSAGEBOX ("MASTER database does not exist!")

RETURN

ENDIF

&& Retrieve data from the remote server and stores it in

&& a local data cursor

nResult = SQLEXEC (nHnd, "SELECT * FROM authors", "QAUTHORS")

&& Update a record in a remote table using parameters

LOCAL cAuthorID, cAuthorName

cAuthorID = "1001"

cAuthorName = "New name"

nResult = SQLEXEC (nHnd, "UPDATE authors SET auth_name = ?cAuthorName


WHERE auth_id = ?cAuthorID")

&& Close the connection

SQLDISCONNECT(nHnd)

[edit] Beta code names

VFP 3 - Taz

VFP 5 - RoadRunner

VFP 6 - Tahoe

VFP 7 - Sedona

VFP 8 - Toledo

VFP 9 - Europa

VFP Next - Sedna


[edit] References

^ VFP and Linux - Visual FoxPro Wiki

^ Programming Community Index

^ A Message to the Community

^ Microsoft SEDNA download

^ MasFoxPro

^ Developers petition Microsoft to reconsider FoxPro phase out Posted by Mary Jo


Foley (April 3rd, 2007) - All about Microsoft - ZDNet.com

^ - The free patch for VFP 9.0 has been created by the German FoxPro User Group
(dFPUG) and is available at the dFPUG document portal in the directory
http://portal.dfpug.de/dFPUG/Dokumente/Freeware/. It allows you to run VFP 9.0
applications on NT 4.0. Microsoft has indicated that this will be addressed in VFP 9.0
SP1.

[edit] External links

[edit] Microsoft pages

Main Visual FoxPro Microsoft page

MSDN FoxPro support board

VFP's online help

Microsoft VFP 9 support

Visual FoxPro Downloads page

[edit] Other pages

Visual FoxPro Wiki A repository of FoxPro information (written in VFP)

A site devoted to the history of FoxPro

VFPx A Visual FoxPro Community effort to create open source add-ons for VFP 9.0

[show]
v•d•e
Programming languages

Comparison | Timeline | Categorical list | Generational list | Alphabetical list | Non-


English-based
[show]
v•d•e
Microsoft development tools

Visual Studio (Team System · Express) · Visual Studio Tools for


Development
Office · Visual Studio Tools for Applications · Expression Web ·
environments
Expression Blend · Microsoft Office SharePoint Designer

Languages and Visual Basic (VB.NET) · Visual C++ · Visual C# · Visual J# ·


compilers Visual FoxPro · IronPython · IronRuby · PowerShell · XAML · F#

Windows API / SDK · .NET Framework · Managed code


Major APIs and frameworks (Presentation · Communication · Workflow ·
frameworks CardSpace) · Silverlight · XNA · ASP.NET (ASP.NET AJAX) · LINQ ·
ADO.NET · DirectX · Robotics Developer Studio

SQL Express · Compact · Management Studio · Business


Server Intelligence Development Studio · MSDE

Database tools SQL


Analysis · Reporting · Integration · Notification
and languages services

Visual FoxPro · Microsoft Access · Extensible Storage


Other
Engine

Source control Team Foundation Server · Visual SourceSafe

Driver Windows Driver Model · Windows Driver Foundation (KMDF ·


development UMDF) · Windows Driver Kit · Windows Logo Kit
Retrieved from "http://en.wikipedia.org/wiki/Visual_FoxPro"

Categories: 4GL | Data-centric programming languages | Object-oriented


programming languages | XBase programming language family | Procedural
programming languages | Database management systems | Microsoft development
tools | Microsoft database software | Programming languages created in 1984

Views

Article

Discussion

Edit this page

History
Personal tools

Try Beta

Log in / create account

Navigation

Main page

Contents

Featured content

Current events

Random article

Search

Top of Form

Special:Search Go Search

Bottom of Form

Interaction

About Wikipedia

Community portal

Recent changes

Contact Wikipedia

Donate to Wikipedia

Help

Toolbox

What links here

Related changes

Upload file

Special pages
Printable version

Permanent link

Cite this page

Languages

Català

Česky

Deutsch

Eesti

Español

‫فارسی‬

Français

Galego

Hrvatski

Bahasa Indonesia

Italiano

Bahasa Melayu

Nederlands

日本語

Polski

Português

Русский

Тоҷикӣ

Türkçe

Tiếng Việt

中文
This page was last modified on 6 January 2010 at 01:25.

Text is available under the Creative Commons Attribution-ShareAlike License;


additional terms may apply. See Terms of Use for details.
Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-
profit organization.

Contact us

Privacy policy

About Wikipedia

Disclaimers

Вам также может понравиться