FilePro
Encyclopedia
filePro is a proprietary DBMS and RAD
system originally developed by Howard Wolowitz as The Electric File Clerk in 1978. He licensed it to Tandy Corporation
in 1979 who first published it in 1980 as Profile II.
Although there was a Profile for the TRS-80
model I, model III and model IV, these were unrelated programs. Today's filePro started out on the Model II and was first released by Tandy as "Profile II". After passing through several owners, the code is currently the property of fPTechnologies, Inc.
, because it does not satisfy Codd's 12 rules
, although the language does allow looking up data in one file while working in another. filePro, in fact, fully satisfies only the first of Codd
's 12 laws. filePro stores data in fixed length record files. It allows for rapid prototyping of curses
-like screens, and add-on products are available for client-side read-only ODBC interoperability, Common Gateway Interface
-like functionality, and a limited form of SQL
restricted to SELECT statements only.
While filePro supports limited datatype integrity checking at the table level, these checks can be overridden by code. There is no support for triggers. Locking is done on a per-record basis, so that two users cannot update different fields in the same record simultaneously. Code is stored on a per-table basis. Manual data update/insertion/deletion follows user-defined rules based on processing written in a custom BASIC
-like language. Most interface processing involves reacting to interface events such as on an update or When-Leave-Field.
The reporting tool uses the same language. The reporting tool is also used to define non-report related processing by running reports with no defined output (eg, importing data from a CSV file).
The product no longer ships with a printed user manual; however, there is a manual available online at fpTech's website. As well, there is a single third-party full reference book available, along with a single third-party quick-reference guide.
There are several filePro resources available online including a company maintained discussion forum at http://www.fptechforum.com ; A user created free access website containing sample code, articles, tutorials and a directory of active filePro developers at http://www.fpgroups.com ; a user maintained mailing list—for more information, visit http://lists.celestial.com/mailman/listinfo/filepro-list ; and a user run chat room at http://www.valar.com/fp_room/fp_room_enter.htm
Model II.
1979 : The small Computer Company is founded.
1980 : Tandy Corporation
publishes it as Profile II.
???? : Profile II Plus is released.
1983 : Profile 16 is released for the TRS-80
Model 16 running Xenix
.
???? : Profile 16 Plus is released.
???? : filePro 16 and filePro 16 Plus are released by The small Computer Company for non-Tandy computers. (Profile was a trademark licensed by Tandy.)
1986 : Version 3.0 released for both filePro 16 and filePro 16 Plus. This was the last version for the non-Plus filePro 16. Further versions also dropped the 16 part of the name.
???? : filePro Plus Version 4.0 released.
???? : The small Computer Company is bought by another company (Athena Investment Group), and becomes a subsidiary of that company. Over the next years, the parent company itself changes hands several times.
???? : Version 4.5 released.
???? : Version 4.8 released.
1998 : fPTechnologies, Inc. is founded by the filePro employees, and buys the rights to filePro.
???? : Version 5.0 released.
2006 : Version 5.6 released.
2009 : Purchased by Henschen and Associates, Bowling Green Ohio and renamed fP Technologies of Ohio, Inc.
-based access, filePro is still primarily character-based, which some users assert makes for faster and more efficient data entry. There is, however, no support for screens larger than 24x80.
There are several people who have created XML
and SQL
bridges that allow cross-communication with legacy systems. Not even the PHP
community has provided a full featured layer with the ability to directly read/write to filePro data in real time. PHP has contributions that allow reads if record numbers are known; however, record numbers could change in a reorganization, thus eliminating the usefulness of the contribution. Writing to filePro databases is still an issue, while the internal format of the B+ tree indexes used has been officially documented, no one has adapted such a library for these indexes—any programmers wishing to write new records to a database must do that (not inconsequential) work themselves.
Rapid application development
Rapid application development is a software development methodology that uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself...
system originally developed by Howard Wolowitz as The Electric File Clerk in 1978. He licensed it to Tandy Corporation
Tandy Corporation
Tandy Corporation was a family-owned leather goods company based in Fort Worth, Texas. Tandy was founded in 1919 as a leather supply store, and acquired RadioShack in 1963. The Tandy name was dropped in May 2000, when RadioShack Corporation was made the official name.-History:Tandy began in 1919...
in 1979 who first published it in 1980 as Profile II.
Although there was a Profile for the TRS-80
TRS-80
TRS-80 was Tandy Corporation's desktop microcomputer model line, sold through Tandy's Radio Shack stores in the late 1970s and early 1980s. The first units, ordered unseen, were delivered in November 1977, and rolled out to the stores the third week of December. The line won popularity with...
model I, model III and model IV, these were unrelated programs. Today's filePro started out on the Model II and was first released by Tandy as "Profile II". After passing through several owners, the code is currently the property of fPTechnologies, Inc.
Current status
filePro is not a true relational databaseRelational database
A relational database is a database that conforms to relational model theory. The software used in a relational database is called a relational database management system . Colloquial use of the term "relational database" may refer to the RDBMS software, or the relational database itself...
, because it does not satisfy Codd's 12 rules
Codd's 12 rules
Codd's twelve rules are a set of thirteen rules proposed by Edgar F. Codd, a pioneer of the relational model for databases, designed to define what is required from a database management system in order for it to be considered relational, i.e., a relational database management system...
, although the language does allow looking up data in one file while working in another. filePro, in fact, fully satisfies only the first of Codd
Codd
Codd is a surname and may refer to:*Edgar F. Codd , British computer scientist*Frederick Codd , English Gothic revival architect*Hiram Codd , English engineer who invented and patented the Codd Bottle...
's 12 laws. filePro stores data in fixed length record files. It allows for rapid prototyping of curses
Curses (programming library)
curses is a terminal control library for Unix-like systems, enabling the construction of text user interface applications.The name is a pun on the term “cursor optimization”. It is a library of functions that manage an application's display on character-cell terminals .- Overview :The curses API...
-like screens, and add-on products are available for client-side read-only ODBC interoperability, Common Gateway Interface
Common Gateway Interface
The Common Gateway Interface is a standard method for web servers software to delegate the generation of web pages to executable files...
-like functionality, and a limited form of SQL
SQL
SQL is a programming language designed for managing data in relational database management systems ....
restricted to SELECT statements only.
While filePro supports limited datatype integrity checking at the table level, these checks can be overridden by code. There is no support for triggers. Locking is done on a per-record basis, so that two users cannot update different fields in the same record simultaneously. Code is stored on a per-table basis. Manual data update/insertion/deletion follows user-defined rules based on processing written in a custom BASIC
BASIC
BASIC is a family of general-purpose, high-level programming languages whose design philosophy emphasizes ease of use - the name is an acronym from Beginner's All-purpose Symbolic Instruction Code....
-like language. Most interface processing involves reacting to interface events such as on an update or When-Leave-Field.
The reporting tool uses the same language. The reporting tool is also used to define non-report related processing by running reports with no defined output (eg, importing data from a CSV file).
The product no longer ships with a printed user manual; however, there is a manual available online at fpTech's website. As well, there is a single third-party full reference book available, along with a single third-party quick-reference guide.
There are several filePro resources available online including a company maintained discussion forum at http://www.fptechforum.com ; A user created free access website containing sample code, articles, tutorials and a directory of active filePro developers at http://www.fpgroups.com ; a user maintained mailing list—for more information, visit http://lists.celestial.com/mailman/listinfo/filepro-list ; and a user run chat room at http://www.valar.com/fp_room/fp_room_enter.htm
History
1978 : Howard Wolowitz develops Electric File Clerk for the TRS-80TRS-80
TRS-80 was Tandy Corporation's desktop microcomputer model line, sold through Tandy's Radio Shack stores in the late 1970s and early 1980s. The first units, ordered unseen, were delivered in November 1977, and rolled out to the stores the third week of December. The line won popularity with...
Model II.
1979 : The small Computer Company is founded.
1980 : Tandy Corporation
Tandy Corporation
Tandy Corporation was a family-owned leather goods company based in Fort Worth, Texas. Tandy was founded in 1919 as a leather supply store, and acquired RadioShack in 1963. The Tandy name was dropped in May 2000, when RadioShack Corporation was made the official name.-History:Tandy began in 1919...
publishes it as Profile II.
???? : Profile II Plus is released.
1983 : Profile 16 is released for the TRS-80
TRS-80
TRS-80 was Tandy Corporation's desktop microcomputer model line, sold through Tandy's Radio Shack stores in the late 1970s and early 1980s. The first units, ordered unseen, were delivered in November 1977, and rolled out to the stores the third week of December. The line won popularity with...
Model 16 running Xenix
Xenix
Xenix is a version of the Unix operating system, licensed to Microsoft from AT&T in the late 1970s. The Santa Cruz Operation later acquired exclusive rights to the software, and eventually superseded it with SCO UNIX ....
.
???? : Profile 16 Plus is released.
???? : filePro 16 and filePro 16 Plus are released by The small Computer Company for non-Tandy computers. (Profile was a trademark licensed by Tandy.)
1986 : Version 3.0 released for both filePro 16 and filePro 16 Plus. This was the last version for the non-Plus filePro 16. Further versions also dropped the 16 part of the name.
???? : filePro Plus Version 4.0 released.
???? : The small Computer Company is bought by another company (Athena Investment Group), and becomes a subsidiary of that company. Over the next years, the parent company itself changes hands several times.
???? : Version 4.5 released.
???? : Version 4.8 released.
1998 : fPTechnologies, Inc. is founded by the filePro employees, and buys the rights to filePro.
???? : Version 5.0 released.
2006 : Version 5.6 released.
2009 : Purchased by Henschen and Associates, Bowling Green Ohio and renamed fP Technologies of Ohio, Inc.
Future
While there is an fpGUI add-on for GUIGui
Gui or guee is a generic term to refer to grilled dishes in Korean cuisine. These most commonly have meat or fish as their primary ingredient, but may in some cases also comprise grilled vegetables or other vegetarian ingredients. The term derives from the verb, "gupda" in Korean, which literally...
-based access, filePro is still primarily character-based, which some users assert makes for faster and more efficient data entry. There is, however, no support for screens larger than 24x80.
There are several people who have created XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
and SQL
SQL
SQL is a programming language designed for managing data in relational database management systems ....
bridges that allow cross-communication with legacy systems. Not even the PHP
PHP
PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...
community has provided a full featured layer with the ability to directly read/write to filePro data in real time. PHP has contributions that allow reads if record numbers are known; however, record numbers could change in a reorganization, thus eliminating the usefulness of the contribution. Writing to filePro databases is still an issue, while the internal format of the B+ tree indexes used has been officially documented, no one has adapted such a library for these indexes—any programmers wishing to write new records to a database must do that (not inconsequential) work themselves.
Strengths
- Fast data lookups
- Short learning curveLearning curveA learning curve is a graphical representation of the changing rate of learning for a given activity or tool. Typically, the increase in retention of information is sharpest after the initial attempts, and then gradually evens out, meaning that less and less new information is retained after each...
(for programmers, user experience is software dependent). NOTE: people with traditional programming experience, particularly exposure to Object Oriented methodologies challenge this statement - Data entry system allows for quick familiarity with keyboard shortcuts, and as such, typists do not have to rely on mouse acquisition
- Provides version updates and bug releases for operating systems for more than a decade
Weaknesses
- Limited ability to communicate with other DB systems
- SQLSQLSQL is a programming language designed for managing data in relational database management systems ....
support is read-only - ODBC support is client-side only and only available for MS Windows platforms
- No transactions
- No journaling
- Relationship management is manual
- Only supports 24 lines of 80 characters
- Typically programmed by nerds, and often is badly programmed, and causes issues for everyone in the company.
- Sort depth limit of 8 fields per report/index
- Data typeData typeIn computer programming, a data type is a classification identifying one of various types of data, such as floating-point, integer, or Boolean, that determines the possible values for that type; the operations that can be done on values of that type; the meaning of the data; and the way values of...
s (edits) specifications limited to 100 types globally and 100 per specific table - Coding limited to only ifConditional statementIn computer science, conditional statements, conditional expressions and conditional constructs are features of a programming language which perform different computations or actions depending on whether a programmer-specified boolean condition evaluates to true or false...
and gotoGotogoto is a statement found in many computer programming languages. It is a combination of the English words go and to. It performs a one-way transfer of control to another line of code; in contrast a function call normally returns control...
and gosubGOSUBGOSUB is a command in many versions of the BASIC computer programming language. A GOSUB statement jumps to a line elsewhere in the program. That line and the following lines up to a RETURN are used as a simple kind of a subroutine without parameters or local variables.The GOSUB command may be used...
(no else, switchSwitch statementIn computer programming, a switch, case, select or inspect statement is a type of selection control mechanism that exists in most imperative programming languages such as Pascal, Ada, C/C++, C#, Java, and so on. It is also included in several other types of languages...
, or looping statements) - No facility for passing arguments to subroutines with its gosub command.
- Design does not allow for typical low-coupling/high-cohesion code design.
- Maximum print width of 255 characters per line
Trivia
- Howard Wolowitz is one of the character's names on the TV show The Big Bang Theory, which was created by Bill PradyBill PradyBill Prady is a television writer and producer who has worked on American sitcoms and variety programs, including Married... with Children, Dream On, Star Trek: Voyager, Dharma & Greg, and The Gilmore Girls.-Career:...
, one of the founding partners of The small Computer Company.